LNMP环境搭建
环境介绍:
192.168.203.101服务器:nginx、php、mysql(双主从)、wordpress网站
192.168.203.102服务器:mysql、mysql(双主从)
-
部署101:nginx服务
-
部署101:mysq服务(主从)
-
部署102:mysql服务(主从)
-
部署101:php服务
-
配置nginx和php链接
-
部署wordpress网站
没有缓存服务,配置上redis服务就更好了,有兴趣的可以自己试试,回头我吧配置redis服务内容发上来
1、部署nginx服务
Nginx官网提供了三个类型的版本
- Mainline version:Main line 是 Nginx 主力做的版本,可以说是开发版
- Stable version:最新稳定版,生产环境上建议使用的版本
- Legacy versions:遗留的老版本的稳定版
nginx服务安装
- 官方http://nginx.org/下载程序包
- 上传到/opt目录下并解压
[root@localhost opt]# tar -xf nginx-1.6.3.tar.gz- [root@localhost opt]# cd nginx-1.6.3/
- 编译nginx前安装依赖包
[root@localhost nginx-1.6.3]# yum install -y gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel- 预编译并指定openssl,否则提示openssl找不到(openssl version -a查看目录)
[root@localhost nginx-1.6.3]# ./configure --prefix=usr/local/nginx --user=nginx --group=nginx --with-openssl=/etc/pki/tls- 编译安装 [root@localhost nginx-1.6.3]# make && make install
- 启动服务 [root@localhost ~]# /usr/local/nginx/sbin/nginx
2、部署MYSQL服务+主从
①、mysql服务搭建(101、102安装方法相同)
- 官网下载指定mysql软件包
- [root@localhost opt]# tar -xf mysql-5.5.60.tar.gz
- [root@localhost opt]# cd mysql-5.5.60/
- 安装依赖包
[root@localhost opt]#yum install gcc c ncurses ncurses-devel bision gcc-c++ git cmake -y- 预编译并检测系统环境
[root@localhost opt]#cmake .
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql55/
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock
-DMYSQL_DATADIR=/data/mysql
-DSYSCONFDIR=/usr/local/mysql55/
-DMYSQL_USER=mysql
-DMYSQL_TCP_PORT=3306
-DWITH_XTRADB_STORAGE_ENGINE=1
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_PARTITION_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
-DWITH_MYISAM_STORAGE_ENGINE=1
-DWITH_READLINE=1
-DENABLED_LOCAL_INFILE=1
-DWITH_EXTRA_CHARSETS=1
-DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci
-DEXTRA_CHARSETS=all
-DWITH_BIG_TABLES=1
-DWITH_DEBUG=0- 编译及安装
[root@localhost opt]# make && make install- 复制medium中等的配置文件到配置中
[root@localhost opt]# cp support-files/my-medium.cnf /usr/local/mysql55/my.cnf- 复制启动脚本到启动目录中
[root@localhost opt]# cp support-files/mysql.server /etc/init.d/mysqld- 给启动目录中的mysql启动脚本授予执行权限
[root@localhost opt]# chmod +x /etc/init.d/mysqld- 创建mysql用户并禁止登录
[root@localhost opt]# useradd -s /sbin/nologin mysql- 创建数据目录
[root@localhost opt]# mkdir -p /data/mysql- 更改数据目录的所属者和组给mysql及mysql组
[root@localhost opt]# chown -R mysql. /data/mysql- 初始化mysql数据库
[root@localhost opt]# /usr/local/mysql55/scripts/mysql_install_db --user=mysql --datadir=/data/mysql --basedir=/usr/local/mysql55- 启动mysql数据库
[ root@localhost opt]# /etc/init.d/mysqld start- 登录mysql必须拷贝脚本到/usr/local/bin并赋予执行权
[root@localhost bin]# cp /usr/local/mysql55/bin/mysql /usr/local/bin/
[root@localhost bin]# chmod +x /usr/local/bin/mysql
[root@localhost bin]# mysql -uroot -p
②、主从配置
101服务器配置:
修改配置文件my.cnf,在[mysqld]字段下填写一下内容
log-bin=wordpress101-bin
server-id=101修改配置后重启服务器(/etc/init.d/mysqld中的服务可以通过service mysqld restart重启) [root@localhost mysql55]# service mysqld restart
进入数据库进行配置主从
[root@localhost mysql55]# mysql -uroot -p查看二进制功能状态
mysql> show variables like “%log_bin”;
±--------------±------+ | Variable_name | Value |
±--------------±------+ | log_bin | ON | | sql_log_bin | ON |
±--------------±------+ 2 rows in set (0.00 sec)配置102为从库,授权从库
mysql> grant replication slave on . to “wordpress”@“192.168.203.102” identified by “123456”;刷新
mysql> flush privileges;查看从库slave状态
show slave status\G;
Slave_IO_Running: Yes
Slave_SQL_Running: Yes指定主库(从主,指定102服务器的数据库的主库,指定101为102的主库)
MariaDB [(none)]> change master to master_host=“192.168.203.102”, master_user=“wordpress”,
master_password=“123456”, master_log_file=“wordpress101-bin. 000001”,
master_log_pos=340;tip:从库的server-id不能和主库相同
102服务器配置
与101配置相同,注意配置时的IP以及server_id即可
③、配置wordpress数据库(可在部署完wordpress后在创建)
- 启动数据库服务:
/etc/init.d/mysqld start - 进入数据库创建数据库
mysql> create database wordpress charset utf8;
Query OK, 1 row affected (0.00 sec) - 授权
mysql> grant all on wordpress.* to “wordpress”@localhost identified
by “123456”;
Query OK, 0 rows affected (0.10 sec) - 刷新
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
④、部署数据库常见错误
错误一:
ERROR! The server quit without updating PID file (/var/lib/mysql/localhost.localdomain.pid).
mysql在启动时没有指定配置文件时会使用/etc/my.cnf配置文件,请打开这个文件查看在[mysqld]节下有没有指定数据目录(datadir)。
解决方法:在[mysqld]下设置这一行:datadir = /data/mysql错误二:
mysqld_safe error: log-error set to ‘/var/log/mariadb/mariadb.log’, however file don’t exists. Create writable for user ‘mysql’.
解决方法:
[root@localhost mysql-5.5.60]# mkdir -p /var/log/mariadb
[root@localhost mysql-5.5.60]# touch /var/log/mariadb/mariadb.log
[root@localhost mysql-5.5.60]# chown -R mysql. /var/log/mariadb/mariadb.log
3、部署PHP服务
- 官网下载所需包 https://www.php.net/downloads.php
- 解压到/opt中 [root@localhost opt]# tar -xf php-5.6.31.tar.bz2
- [root@localhost opt]# cd php-5.6.31/
- 安装依赖包 [root@localhost php-5.6.31]# yum install -y gd curl curl-devel
libjpeg libjpeg-devel libpng lilibpng-devel freetype freetype-devel
libxml2 libxml2-devel- 预编译并检测安装环境 ./configure --prefix=/usr/local/php
–enable-fpm
–enable-debug
–with-gd
–with-jpeg-dir
–with-png-dir
–with-freetype-dir
–enable-mbstring
–with-curl
–with-mysql=mysqlnd
–with-mysqli=mysqlnd
–with-pdo-mysql=mysqlnd
–with-config-file-path=/usr/local/php/etc
–with-zlib-dir- 编译及安装 [root@localhost php-5.6.31]# make && make install
- 复制配置文件到安装目录 [root@localhost php-5.6.31]# cp php.ini-development /usr/local/php/etc/php.ini
- 复制安装目录中的php-fpm目录更改为php-fpm配置文件 [root@localhost php-5.6.31]# cp
/usr/local/php/etc/php-fpm.conf.default
/usr/local/php/etc/php-fpm.conf- 复制php启动文件到启动目录 [root@localhost php-5.6.31]# cp sapi/fpm/init.d.php-fpm
/etc/init.d/php-fpm- 给启动脚本赋予执行权限 [root@localhost php-5.6.31]# chmod +x /etc/init.d/php-fpm
- 更改php用户及组 [root@localhost php-5.6.31]# egrep “^(user|group)”
/usr/local/php/etc/php-fpm.conf user = nobody group = nobody [root@localhost php-5.6.31]# vim /usr/local/php/etc/php-fpm.conf user
= nginx group = nginx- 添加nginx用户,方便运行,如果有nginx则无需添加 [root@localhost php-5.6.31]# useradd nginx
- 启动php程序 [root@localhost php-5.6.31]# /etc/init.d/php-fpm start
4、配置nginx与PHP链接并加载wordpress网站代码
①、加载wordpress网站代码
- 上传wordpress代码
- 解压包到nginx发布目录 [root@localhost opt]# tar xf wordpress-5.7.1-zh_CN.tar.gz -C /usr/local/nginx/html/
- 更改wordpress目录所属者和组 [root@localhost opt]# chown -R nginx. /usr/local/nginx/html/wordpress/
②、配置nginx与php链接
[root@localhost opt]# cd /usr/local/nginx/conf/
[root@localhost conf]# vim nginx.conf
#在http中输入 include vhost/*.conf;[root@localhost conf]# mkdir -p /usr/local/nginx/conf/vhost
[root@localhost conf]# vim wordpress.conf
server {
listen 8088;
server_name blog.wordpress.com;location / { root html/wordpress; index index.php index.html index.htm; } # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 #
location ~ .php$ {
root html/wordpress;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME d o c u m e n t r o o t document_root documentrootfastcgi_script_name;
include fastcgi_params;
}
}[root@localhost conf]# systemctl stop firewalld
[root@localhost conf]# /usr/local/nginx/sbin/nginx -s reload
网站登录192.168.203.101:8088测试
wordpress网站部署测试
按提示填写即可