大家好今天给大家带来分离部署LNMP环境的构建及运行wordpress实例!
很多人在搭建的时候都是使用的一台机器来部署LNMP环境,但是我们在实际的工作中一般都是分离部署的。也就是说MySQL是MySQL;它是一台单机,分离部署自己跑自己的服务,提高效率!
今天我的实例是三台机器来部署LNMP环境,如下:
OS:Centos7.2x86_64
Nginx-1.12.2 IP地址:192.168.1.10
PHP-5.6 IP地址:192.168.1.20
MySQL5.7 IP地址:192.168.1.30
一、首先安装Nginx(1.10主机操作)
1)安装相关的依赖包
[root@nginx ~]# yum install gcc gcc-c++ openssl-devel zlib-devel zlib pcre-devel -y
2)建立Nginx用户指定id
[root@nginx ~]# groupadd -g 1001 nginx
[root@nginx ~]#useradd -u 900 nginx -g nginx -s /sbin/nologin
[root@nginx ~]# tail -1 /etc/passwd
nginx:x:900:1001::/home/nginx:/sbin/nologin
3)下载Nginx源码安装包并安装
[root@nginx src]# wget http://nginx.org/download/nginx-1.12.2.tar.gz
[root@nginx src]# tar zxf nginx-1.12.2.tar.gz
[root@nginx src]# cd nginx-1.12.2/
[[email protected]]#./configure --prefix=/usr/local/nginx --with-http_dav_module --with-http_stub_status_module --with-http_addition_module --with-http_sub_module --with-http_flv_module --with-http_mp4_module --with-http_ssl_module --with-http_gzip_static_module --user=nginx --group=nginx && make && make install
4)创建软连接并启动Nginx访问测试
[root@nginx nginx-1.12.2]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
[root@nginx nginx-1.12.2]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@nginx nginx-1.12.2]# nginx
[root@nginx nginx-1.12.2]# netstat -anput | grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 27185/nginx: master
二、安装PHP(1.20主机操作)
1)安装相关的依赖包
[root@php ~]# yum -y install gcc gcc-c++ libxml2-devel libcurl-devel openssl-devel bzip2-devel
2)安装libmcrypt
[root@php src]# wget ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/libmcrypt-2.5.7.tar.gz
[root@php src]# tar zxf libmcrypt-2.5.7.tar.gz
[root@php src]# cd libmcrypt-2.5.7/
[root@php libmcrypt-2.5.7]# ./configure --prefix=/usr/local/libmcrypt && make && make install
3)正式安装php
下载php安装源码包
[root@php src]# wget http://cn2.php.net/distributions/php-5.6.27.tar.gz
[root@php src]# tar zxf php-5.6.27.tar.gz
[root@php src]# cd php-5.6.27/
[root@php php-5.6.27]#./configure --prefix=/usr/local/php5.6 --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-openssl --enable-fpm --enable-sockets --enable-sysvshm --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --with-mhash --with-mcrypt=/usr/local/libmcrypt --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2 --enable-maintainer-zts && make && make install
编译安装完后我们创建Nginx用户,要求UID和GID和Nginx机器上的一致!
[root@php php-5.6.27]# groupadd -g 1001 nginx
[root@php php-5.6.27]# useradd -u 900 nginx -g nginx -s /sbin/nologin
[root@php php-5.6.27]# tail -1 /etc/passwd
nginx:x:900:1001::/home/nginx:/sbin/nologin
提供PHP的配置文件及提供脚本
[root@php php-5.6.27]# cp php.ini-production /etc/php.ini
[root@php php-5.6.27]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
[root@php php-5.6.27]# chmod +x /etc/init.d/php-fpm
[root@php php-5.6.27]# chkconfig --add php-fpm
[root@php php-5.6.27]# chkconfig php-fpm on
修改php主配置,并编辑如下:
[root@php php-5.6.27]# cp /usr/local/php5.6/etc/php-fpm.conf.default /usr/local/php5.6/etc/php-fpm.conf
[root@php php-5.6.27]# vim /usr/local/php5.6/etc/php-fpm.conf
修改内容如下:
pid = run/php-fpm.pid
user = nginx
group = nginx
listen = 192.168.1.20:9000 //PHP主机的IP地址
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
修改完成后启动php服务
到这里我们的php完成!接下来安装MySQL
三、安装MySQL(1.30主机操作)
在centos7中默认自带了mariadb需要卸载
[root@mysql ~]# rpm -qa | grep mariadb
mariadb-libs-5.5.44-2.el7.centos.x86_64
[root@mysql ~]# rpm -e mariadb-libs-5.5.44-2.el7.centos.x86_64 --nodeps
1)下载MySQL二进制安装包
[root@mysql src]# wget http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz
2)解压MySQL二进制包把解压的文件拷贝到/usr/local/mysql下,然后进入mysql目录查看
[root@mysql src]# tar zxf mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz
[root@mysql src]# mv mysql-5.7.18-linux-glibc2.5-x86_64 /usr/local/mysql
[root@mysql src]# cd /usr/local/mysql/
[root@mysql mysql]# ll
总用量 40
drwxr-xr-x. 2 root root 4096 1月 21 16:05 bin
-rw-r--r--. 1 7161 31415 17987 3月 18 2017 COPYING
drwxr-xr-x. 2 root root 52 1月 21 16:05 docs
drwxr-xr-x. 3 root root 4096 1月 21 16:05 include
drwxr-xr-x. 5 root root 4096 1月 21 16:05 lib
drwxr-xr-x. 4 root root 28 1月 21 16:05 man
-rw-r--r--. 1 7161 31415 2478 3月 18 2017 README
drwxr-xr-x. 28 root root 4096 1月 21 16:05 share
drwxr-xr-x. 2 root root 86 1月 21 16:05 support-files
3)优化执行路径
[root@mysql mysql]# echo "export PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
[root@mysql mysql]# source /etc/profile
4)创建data以及log目录如下:
[root@mysql mysql]# cd /usr/local/mysql/
[root@mysql mysql]# mkdir data
[root@mysql mysql]# mkdir log
5)创建mysql用户和组
[root@mysql mysql]# groupadd mysql && useradd -r -g mysql -s /bin/false mysql
6)建立MySQL主配置文件
[root@mysql mysql]# vim /etc/my.cnf
[root@mysql mysql]# cat /etc/my.cnf
[client]
socket=/usr/local/mysql/mysql.sock
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
pid-file=/usr/local/mysql/data/mysqld.pid
socket=/usr/local/mysql/mysql.sock
log_error=/usr/local/mysql/log/mysql.err
7)设置相应的权限并初始化MySQL
[root@mysql mysql]# chmod 750 data/ && chown -R mysql . && chgrp -R mysql . && bin/mysqld --initialize --user=mysql
8)复制启动脚本并启动MySQL数据库
[root@mysql mysql]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld && service mysqld start
查看mysql是否启动成功(Mysql密码存放在:/usr/local/mysql/log/mysql.err文件中)
四、配置Nginx支持PHP环境(1.10主机操作)
[root@nginx ~]#vim /usr/local/nginx/conf/nginx.conf
location / {
root /www; 更改网页目录
index index.php index.html index.htm; 添加index.phpZ
}
location ~ \.php$ {
root /www; 更改目录
fastcgi_pass 192.168.1.20:9000; 注意:在这里添加PHP主机IP地址
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi_params;
}
[root@nginx ~]# vim /usr/local/nginx/conf/fastcgi_params添加如下:
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
添加完成后创建/www目录并创建测试页如下:
[root@nginx ~]# mkdir /www
[root@nginx ~]# chown nginx:nginx /www/
[root@nginx ~]# cd /www/
[root@nginx www]# vim index.php
[root@nginx www]# cat index.php
到这里我们先别重启Nginx接下来在PHP主机操作(1.20)
[root@php ~]# mkdir /www
[root@php ~]# chown -R nginx:nginx /www/
[root@php ~]# cd /www/
[root@php www]# vim index.php
[root@php www]# cat index.php
创建完成后接下来我们重启nginx以及php,访问测试页(1.10&1.20操作)
[root@nginx www]# nginx -s reload
[root@php www]# service php-fpm restart
访问到如上图那么证明我们的nginx支持PHP了接下来我们部署wordpress个人站点
在部署前我们在数据库服务器上创建wordpress数据库及授权帐户(Mysql服务器操作1.30)
mysql> create database wordpress;
Query OK, 1 row affected (0.00 sec)
mysql> grant all on wordpress.* to yankerp@'%' identified by '123456';
Query OK, 0 rows affected, 1 warning (0.00 sec)
解压wordpress压缩包(Nginx1.10操作)
[root@nginx ~]# tar zxf wordpress-4.9.1-zh_CN.tar.gz
[root@nginx ~]# mv wordpress/* /www/
在php主机上同样的操作
[root@php ~]# tar zxf wordpress-4.9.1-zh_CN.tar.gz
[root@php ~]# mv wordpress/* /www
访问测试:http://192.168.1.10/
当我们创建了yankai的用户我们查看数据库
这里就是我们的用户~~~
到这里整个分离部署LNMP环境已经完成了,希望对您有所帮助,再见!