Centos安装以及Alisql,LNMP架构安装



意尔康股份有限公司网络工程师Centos7操作指导说明书

  1. 完成Centos7的基础安装(根据功能需求选择安装模块,但是一定要安装开发环境,因为后面要用GCC编译其他源码文件)

    1.1设置系统固定IP

    命令 cd /etc/sysconfig/network-scripts进入网卡配置文件目录

    1.2查看目录中网卡配置的文件,centos7的网卡名字很长很怪,一般本地网卡是第一个,命令:ls示例:

    第一个就是本地物理网卡的名字ifcfg-enp0s25

    编辑该网卡配置文件:命令vi ifcfg-enp0s25

    1.3进入详细的配置文件,进入修改前,按下键盘上右上角的insert键进入修改模式。

    1.4详细配置文件如图

    1.5修改相关参数,禁用IPV6,修改内容如下:

1.5.1 修改本行为: BOOTPROTO=static

关于IPV6全部禁用,如图

增加内容如下

IPADDR=192.168.1.103
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=218.74.122.66
NM_CONTROLLED=NO  
#(如果你的局域网开启了DHCP,此行必须添加,否则你的配置文件的内容会自动失效)

如图:

1.5.2修改NAMEDEVICE(主要为下一步修改网卡名称做准备)

NAME=eth0

DEVICE=eth0

HWADDR=00:0c:29:e5:00:45绑定你的网卡硬件地址,否则配置无效

1.6按下键盘Esc键,键入冒号(英文输入),输入wq,回车保存,

1.7修改网卡名称:

命令:mv ifcfg-enp0s25 ifcfg-eth0

1.7.1

禁用该可预测命名规则,在启动时传递net.ifnames=0biosdevname=0的内核参数。首先进入/etc/default/目录,命令:cd /etc/default/,编辑grub文件

命令vi grub,进入编辑界面,如图:

加入“net.ifnames=0biosdevname=0 ”GRUBCMDLINELINUX变量。(同样要按下insert键才能进入编辑模式,如果这个再不记得,请学习Linux基础知识)

如下图:

1.7.2 按下ESC键,命令: 输入冒号,键入wq进入保存。

1.7.3 运行命令grub2-mkconfig-o /boot/grub2/grub.cfg 来重新生成GRUB配置并更新内核参数。

1.7.4重新启动完成网卡的配置。命令reboot

  1. 修改主机名称

2.1首先查看主机名,命令:hostnamectl status

2.2实际工作中都需要规范服务器主机名,按照实际需求进行修改,本次主要为数据库服务群集,先命名为dbserver

命令:hostnamectl set-hostname dbserver

查看修改后的主机名:

  1. 升级操作系统内核

    3.1首先导入 elrepo key

    命令:rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

    3.2安装 elrepo

    命令:rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm

    如图:

    3.3yumELRepo源中,mainline 为最新版本的内核,命令:

    yum --enablerepo=elrepo-kernel install  kernel-ml-devel kernel-ml -y

    然后就慢慢等待更新内核。

3.4、设置更新厚的内核为默认启动项。命令:grub2-set-default 0

4、升级所有模块.

4.1命令:yum -y update

然后慢慢等升级完成。

升级完成后还要删除多余的一个启动项。(可以先升级再一起删除,删除boot/grub2/grub.cfg中对应的多余的启动选项,但是内核依然在,如果你硬盘不够,可以删除).

5升级Openssh7.5p1

 5.1下载相关文件

wget https://openbsd.hk/pub/OpenBSD/OpenSSH/portable/openssh-7.5p1.tar.gz

wget http://openssl.skazkaforyou.com/source/openssl-1.0.2k.tar.gz

安装依赖包:

安装gcc: yum -y install gcc

安装g++: yum -y install gcc-c++

安装gccgo: yum -y install gcc-go

安装小工具:

yum -y install lrzsz screen

yum -y installsocat nc nmap

yum -y install tree

下载cmake-3.8.1.tar.gz

cd cmake-3.8.1
./bootstrap && gmake && gmake install

yum install zlib-devel
yum install pam-devel.x86_64 -y

5.2、线编译和安装依赖文件

tar zxvf openssl-1.0.2k.tar.gz

cd openssl-1.0.2k

./config --prefix=/usr--openssldir=/etc/ssl --shared zlib

make && make install

openssl version

5.3、编译安装openssh-7.5p1

tar zxvf openssh-7.5p1.tar.gz

cd openssh-7.5p1

./configure --prefix=/usr  --sysconfdir=/etc/ssh--with-md5-passwords  --with-pam   --with-tcp-wrappers  --with-ssl-dir=/etc/ssl  --without-hardening

make && make install

替换原有文件:

1)备份sshd文件,重命名为sshd_old

mv /etc/init.d/sshd  /etc/init.d/sshd_old

2)复制配置文件、赋权、添加到开机启动项

cd /root/openssh-7.5p1/contrib/redhat

cp sshd.init  /etc/init.d/sshd

chmod u+x /etc/init.d/sshd

chkconfig --add sshd

systemctl enable sshd.service
#
备份原文件

mv /etc/ssh/ssh_config /etc/ssh/ssh_config_old

mv /etc/ssh/sshd_config /etc/ssh/sshd_config_old

cd /root/openssh-7.5p1

cp ssh_config/etc/ssh/ssh_config          #根据提示,输入y进行覆盖(若对原文件重命名,则无需覆盖)

cp -p sshd_config /etc/ssh/sshd_config

估计有各种KEY不能正常使用,实例如下:

生成找不到的KEYssh-keygen -t dsa -f /etc/ssh/ssh_host_ed25519_key

修改权限开放过大的keychmod 600 /etc/ssh/ssh_host_ed25519_key

关闭selinux不关闭会被拒绝登录

vi /etc/sysconfig/selinux

把里边的一行改为

SELINUX=disabled

修改/etc/ssh/sshd_config 目录下sshd_config文件,允许root登录。

打开vi/etc/ssh/sshd_config文件,将PermitRootLogin设置为yes(该栏原有后面的删除掉。)

6、升级Openssl1.1.0f

6.1、下载安装文件包wgethttp://www.openssl.org/source/openssl-1.1.0f.tar.gz

1、下载地址:http://www.openssl.org/source/ 下一个新版本的OpenSSL,我下的版本是:openssl-1.1.0e.tar.gz

1.1、这个地方:如果服务器可上网,也可以使用在线下载:(因为我使用的服务器,无法上网,所以直接去官网下载tar包)

wget http://www.openssl.org/source/openssl-1.1.0f.tar.gz

2、将下载的tar包,上传到服务器根目录下,用解压命令执行:tar -zxvf   openssl-1.1.0f.tar.gz

3、进入解压的目录:

cd  /openssl-1.1.0f

[root@localhost openssl-1.1.0f]#

1 ./config --prefix=/usr --openssldir=/etc/ssl --shared zlib

  make && make install  

2. openssl version

OpenSSL 1.1.0f  16 Feb 2017

这样便升级完成了Openssh 7.5sp1Openssl1.1.0f

7、安装web管理工具webmin

rpm -Uvh https://ncu.dl.sourceforge.net/project/webadmin/webmin/1.840/webmin-1.840-1.noarch.rpm

6.2关闭防火墙

sudo systemctl stop firewalld.service

是否需要永远禁止防火墙,如果需要,输入sudo systemctl disable firewalld.service

这样便可以通过webmin进行服务器管理

7、设置文本启动方式:

ln -sf /lib/systemd/system/runlevel3.target/etc/systemd/system/default.target

以免消耗服务器宝贵的内存资源。

8、如果不能进入图形界面可以执行:

yum groupinstall "GNOME Desktop" "GraphicalAdministration Tools"

9、安装Alisql

 卸载原有自带的Mysql

yum remove mysql-libs

安装依赖包

yum install centos-release-scldevtoolset-4-gcc-c++ devtoolset-4-gcc cmake git ncurses-devel openssl-develbison -y

创建账号

groupadd mysql

useradd -r -g mysql mysql

安装步骤

wget -c https://github.com/alibaba/AliSQL/archive/AliSQL-5.6.32-4.tar.gz

tar zxvf AliSQL-5.6.32-4.tar.gz

cdAliSQL-AliSQL-5.6.32-4/

scl enable devtoolset-4 bash

cmake .  \

-DCMAKE_BUILD_TYPE="Release"        \

-DCMAKE_INSTALL_PREFIX="/opt/alisql"\

-DWITH_EMBEDDED_SERVER=0            \

-DWITH_EXTRA_CHARSETS=all           \

-DWITH_MYISAM_STORAGE_ENGINE=1      \

-DWITH_INNOBASE_STORAGE_ENGINE=1    \

-DWITH_PARTITION_STORAGE_ENGINE=1   \

-DWITH_CSV_STORAGE_ENGINE=1         \

-DWITH_ARCHIVE_STORAGE_ENGINE=1     \

-DWITH_BLACKHOLE_STORAGE_ENGINE=1   \

-DWITH_FEDERATED_STORAGE_ENGINE=1   \

-DWITH_PERFSCHEMA_STORAGE_ENGINE=1  \

-DWITH_TOKUDB_STORAGE_ENGINE=1 

make或多线程生成 make -j4

make install

授权

cd /opt/alisql

chown -R mysql:mysql .

初始化

cd /opt/alisql

echo never >/sys/kernel/mm/transparent_hugepage/enabled ##开启TokuDB,不执行会提示:[ERROR] TokuDB: Huge pages are enabled, disable them beforecontinuing

scripts/mysql_install_db --user=mysql  --datadir=/opt/alisql/data --basedir=/opt/alisql

cp support-files/my-default.cnf /etc/my.cnf

cp  support-files/mysql.server /etc/init.d/mysqld

运行下面语句:

if test -f /sys/kernel/mm/transparent_hugepage/enabled;then

   echo never >/sys/kernel/mm/transparent_hugepage/enabled

fi

if test -f /sys/kernel/mm/transparent_hugepage/defrag;then

   echo never >/sys/kernel/mm/transparent_hugepage/defrag

fi

环境变量配置

echo"PATH=/opt/alisql/bin:/opt/alisql/lib:$PATH" >> /etc/profile

source /etc/profile

启动并加入开机自启

service mysqld start

永久关闭并自动启动Mysqld服务:

vi /etc/rc.local在文件里面加入以下命令:

echo never > /sys/kernel/mm/transparent_hugepage/enabled  

echo never> /sys/kernel/mm/transparent_hugepage/defrag

service mysqld start

允许root远程登录并修改密码:

允许远程root登录

mysql-uroot -p

uses mysql

GRANT ALLPRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '' WITH GRANT OPTION;

flush privileges;

修改root密码:

update userset password=passworD("新密码") where user='root';

flush privileges;

安装nginx

1.下载对应当前系统版本的nginx(package)

 rpm -ivh  http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

2.建立nginxyum仓库(默认yum是没有nginx的)

 rpm -ivh nginx-release-centos-7-0.el7.ngx.noarch.rpm

3.下载并安装nginx

 yum install nginx

4.nginx启动(nginx安装目录下-/usr/sbin/

systemctl start nginx.service

sudosystemctl enable nginx.service

安装php最新版

1.查看当前安装的php版本(yum list installed | grep php

 如果存在php安装包先删除之前版本  yum remove 移除 php相关的包

2.rpm 安装 Php7 相应的 yum

rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm

rpm -Uvhhttps://mirror.webtatic.com/yum/el7/webtatic-release.rpm

3.安装php7.0

yum install php70w.x86_64 php70w-cli.x86_64php70w-common.x86_64 php70w-gd.x86_64 php70w-ldap.x86_64 php70w-mbstring.x86_64php70w-mcrypt.x86_64 php70w-mysql.x86_64 php70w-pdo.x86_64

4.安装php扩展

 php70w-mysql.x8664  mysql扩展(作为依赖同时安装 php70w-pdo.x8664

 php70w-gd.x86_64  GD库,是php处理图形的扩展库,GD库提供了一系列用来处理图片的API,使用GD库可以处理图片,或者生成图片。

 php70w-ldap.x86_64 "轻量级目录访问协议",是一个用于访问"目录服务器"(Directory Servers)的协议;

php70w-mbstring.x86_64 mbstring扩展库用于处理多字节字符串,PHP内置的字符串长度函数strlen无法正确处理中文字符串,它得到的只是字符串所占的字节数。对于GB2312的中文编码,strlen得到的值是汉字个数的2倍,而对于UTF-8编码的中文,就是1~3倍的差异了。采用mb_strlen函数可以较好地解决这个问题。

php70w-mcrypt.x86_64 Mcrypt扩展库可以实现加密解密功能,就是既能将明文加密,也可以密文还原。

yum install  php70w-mysql.x8664 php70w-gd.x86_64 php70w-ldap.x86_64 php70w-mbstring.x86_64

5.安装PHP FPM

 yum install php70w-fpm

systemctlstart php-fpm.service

sudosystemctl enable php-fpm.service

修改 vi /etc/php-fpm.d/www.conf

user =nginx(必须要和nginx的用户一致,如果nginx的用户的www,这里应该也写www)

 group=nginx

修改scripts/usr/share/nginx/html

然后在/usr/share/nginx/html下创建一个phpinfo.php查看。

安装phpmyadmin

cd /usr/share/nginx/html

wget https://files.phpmyadmin.net/phpMyAdmin/4.7.0/phpMyAdmin-4.7.0-all-languages.zip

unzip phpMyAdmin-4.7.0-all-languages.zip

mv phpMyAdmin-4.7.0-all-languagesphpmyadmin

编辑nginx配置文件

vi /etc/nginx/conf.d/ default.conf

添加index.php项,保存退出

需要更改实际的nginxwww路径,也可在此更改,更改后记得对改路径的文件夹授权访问

然后输入http://192.168.1.103/phpmyadmin/setup/

进入设置界面,在配置界面输入Alisql的数据库参数,注意主机用127.0.0.1填入,即可使用phpmyadmin

当然最后记得在rc.local添加需要随机启动的nginxphp-fpm服务。

命令:

vi /etc/rc.d/rc.local

在里面添加nginxphp-fpm的启动这两行

/usr/local/php/sbin/php-fpm

systemctl status nginx.service

 

0, 先决条件
Nginx
依赖 pcre-devel, openssl, openssl-devel
安装命令:

yum -y install pcre-devel openssl openssl-devel

1,安装
1.1,
下载 Nginx,下载地址:http://nginx.org/download/nginx-1.13.0.tar.gz
[root@bogon src]# wget http://nginx.org/download/nginx-1.13.0.tar.gz
1.2,
解压安装包

[root@bogon src]# tar -zxvf nginx-1.13.0.tar.gz
1.3,
进入安装包目录
[root@bogon src]# cd nginx-1.13.0
1.4,
编译安装
[root@bogon nginx-1.13.0]# ./configure --prefix=/usr/local/webserver/nginx--with-http_stub_status_module --with-http_ssl_module--with-pcre=/usr/local/src/pcre-8.35
[root@bogon nginx-1.13.0]# make
[root@bogon nginx-1.13.0]# make install
1.5,
查看nginx版本
[root@bogon nginx-1.13.0]# /usr/local/webserver/nginx/sbin/nginx -v
到此,nginx安装完成。

2,  配置
2.1,
创建 Nginx 运行使用的用户 www(可选)
[root@bogon conf]# /usr/sbin/groupadd www
[root@bogon conf]# /usr/sbin/useradd -g www www
2.2,
配置nginx.conf 默认路径:
/usr/local/webserver/nginx/conf/nginx.conf
[root@bogon conf]# cat /usr/local/webserver/nginx/conf/nginx.conf
#
用户和组

#user www www;
#
设置值和CPU核心数一致
worker_processes 2;
#
日志位置和日志级别
error_log /usr/local/webserver/nginx/logs/nginx_error.log crit;
pid /usr/local/webserver/nginx/nginx.pid;
#Specifies the value for maximum file descriptors that can be opened by thisprocess.
worker_rlimit_nofile 65535;
events
{
use epoll;
worker_connections 65535;
}
http
{
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request"'
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" $http_x_forwarded_for';

#charset UTF-8;

server_names_hash_bucket_size 128;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
client_max_body_size 8m;

sendfile on;
tcp_nopush on;
keepalive_timeout 60;
tcp_nodelay on;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml;
gzip_vary on;

#limit_zone crawler $binary_remote_addr10m;
#
下面是server虚拟主机的配置

server
{
listen 80;#
监听端口
server_name localhost;#
域名
index index.html index.htm index.php;
root /usr/local/webserver/nginx/html;#
站点目录
location ~ .*\.(php|php5)?$
{
#fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|ico)$
{
expires 30d;
# access_log off;
}
location ~ .*\.(js|css)?$
{
expires 15d;
# access_log off;
}
access_log off;
}

}

2.3,检查配置文件ngnix.conf的正确性命令:
[root@bogon conf]# /usr/local/webserver/nginx/sbin/nginx -t

3, 启动
3.1
启动命令如下:
[root@bogon conf]# /usr/local/webserver/nginx/sbin/nginx
3.2
访问站点
从浏览器访问我们配置的站点iphttp://127.0.0.1:9090

4, 其它
4.1
常用命令:
#
重新载入配置文件
/usr/local/webserver/nginx/sbin/nginx -s reload
#
重启 Nginx
/usr/local/webserver/nginx/sbin/nginx -s reopen
#
停止
Nginx
/usr/local/webserver/nginx/sbin/nginx -s stop

4.2 location配置语法规则:location [=|^~|~|~*] /uri/ { … }
=
开头表示普通字符开头,匹配规则:精确匹配;

^~
开头表示普通字符开头,匹配规则:uri 最长路径匹配;
~
开头表示特殊字符开头,匹配规则:正则匹配(区分大小写)
~*
开头表示特殊字符开头,匹配规则:正则匹配(不区分大小写)
!~
匹配规则:区分大小写不匹配的正则;
!~*
匹配规则:不区分大小写不匹配的正则;
/
通用匹配,任何请求都会匹配到。

注意:nginx不对url做编码。例如:请求:/static/20%/aa,可以被规则^~ /static/ /aa匹配到(注意是空格)。

4.3 rewrite 重写规则语法:rewrite 正则 替换 标志位
4.3.1
正则表达式
^/images/([a-z]{2})/([a-z0-9]{5})/(.*)\.(png|jpg|gif)$---->http://xxxx.com/images/aa/abc01/test.gif
#
其中
$1=([a-z]{2}) #$1=aa
$2=([a-z0-9]{5}) #$2=abc01
$3=(.*) #$3=test
$4=(png|jpg|gif) #$4=gif
4.3.2 URI
重写
/data?file=$3.$4 # rewrite
之后的queryhttp://data?file=test.gif
4.3.3
尾部的标记
last return break
last
标记之后会从新loaction ,继续rewrite最多10
;
break
标记是直接跳槽rewritelocaltion 进行query的处理

return
标记停止rewrite 处理指令,进而控制主HTTP模块处理请求,也就是HTTP请求也不处理了,直接给client返回(结合error0page)

 

5, FAQ
5.1 NGINX
启动时提示错误

/usr/local/nginx/sbin/nginx: error while loading shared libraries:libpcre.so.1: cannot open shared object file: No such file or directory
解决方法:
#64
OS
ln -s /usr/local/lib/libpcre.so.1 /lib64
#32
OS
ln -s /usr/local/lib/libpcre.so.1 /lib

 

你可能感兴趣的:(Centos安装以及Alisql,LNMP架构安装)