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

xiaoxiao2021-02-28  112



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

完成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

修改主机名称

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

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

命令:hostnamectl set-hostname dbserver

查看修改后的主机名:

升级操作系统内核

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 解决方法: #64OS ln -s /usr/local/lib/libpcre.so.1 /lib64 #32OS ln -s /usr/local/lib/libpcre.so.1 /lib

 

转载请注明原文地址: https://www.6miu.com/read-23179.html

最新回复(0)