您的位置:首页 > 数据库 > SQL

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

2017-06-06 19:36 295 查看


意尔康股份有限公司网络工程师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修改NAME和DEVICE(主要为下一步修改网卡名称做准备)

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.3在yum的ELRepo源中,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、升级Openssh到7.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不能正常使用,实例如下:

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

修改权限开放过大的key:chmod 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、升级Openssl至1.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.5sp1和Openssl1.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.建立nginx的yum仓库(默认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[/code] 
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项,保存退出

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

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

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

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

命令:

vi /etc/rc.d/rc.local

在里面添加nginx和php-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 访问站点
从浏览器访问我们配置的站点ip:http://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标记是直接跳槽rewrite和localtion
进行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

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  工程师