一、安装 Nginx

1.1 安装 Nginx 相关依赖

# 安装gcc
yum install gcc-c++
# 安装 pcre-devel 
yum install -y pcre pcre-devel
# 安装zlib  
yum install -y zlib zlib-devel
# 安装OpenSSL  
yum install -y openssl openssl-devel 

nginx 的一些模块依赖一些 lib 库,在安装 nginx 之前,须先安装这些 lib 库,依赖库主要有 g++gccopenssl-develpcre-develzlib-devel。nginx 编译依赖需要 `gcc’, gzip 模块需要 zlib 库,rewrite 模块需要 pcre 库, ssl 功能需要 openssl 库。

1.2 安装 Nginx

# 创建 nginx.repo文件
vi /etc/yum.repos.d/nginx.repo   
# 然后写入配置:
[nginx]  
name=nginx repo  
baseurl=http://nginx.org/packages/OS/OSRELEASE/$basearch/  
gpgcheck=0  
enabled=1 

这里手动添加 Nginx 的 配置库源,把 baseurl=http://nginx.org/packages/OS/OSRELEASE/$basearch/ 中的 OS 换为 centos(取决于你的系统),用 7(取决于你的版本)替换 OSRELEASE,即 baseurl=http://nginx.org/packages/centos/7/$basearch/ , 然后 :wq 保存退出。
运行:

yum install nginx

1.3 启动 Nginx 并通过浏览器访问

# 启动 nginx
cd /usr/sbin
./nginx
# 打开防火墙 80 端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
# 重启防火墙  
firewall-cmd --reload

浏览器访问服务器IP, 显示
Centos7 Nginx+Mysql+Php搭建 WordPress站点-DESTLIVE

1.4 Nginx 操作常用命令

# 启动nginx
 /usr/sbin/nginx    
# 停止 nginx    
 /usr/sbin/nginx -s stop    
# 从容停止 nginx
 /usr/sbin/nginx -s quit   
# 重启 nginx
 /usr/sbin/nginx -s reload  
# 查看nginx进程
ps aux | grep nginx

1.5 firewall 常规操作

Centos7 自带 firewall 防火墙

systemctl start firewalld # 启动
systemctl enable firewalld # 开机启动
systemctl stop firewalld # 关闭
systemctl disable firewalld # 取消开机启动

firewall 通过 firewall-cmd 管理具体规则:

$ firewall-cmd --help
1. 查看规则
# 查看运行状态
firewall-cmd --state
# 查看已被激活的 Zone 信息
firewall-cmd --get-active-zones
# 查看指定接口的 Zone 信息
firewall-cmd --get-zone-of-interface=eth0
# 查看指定级别的接口
firewall-cmd --zone=public --list-interfaces
# 查看指定级别的所有信息,譬如 public
firewall-cmd --zone=public --list-all
# 查看所有级别被允许的信息
firewall-cmd --get-service
# 查看重启后所有 Zones 级别中被允许的服务,即永久放行的服务
firewall-cmd --get-service --permanent
firewall-cmd --panic-on # 丢弃
firewall-cmd --panic-off # 取消丢弃
firewall-cmd --query-panic # 查看丢弃状态
firewall-cmd --reload # 更新规则,不重启服务
firewall-cmd --complete-reload # 更新规则,重启服务
# 添加某接口至某信任等级,譬如添加 eth0 至 public,再永久生效
firewall-cmd --zone=public --add-interface=eth0 --permanent
# 设置 public 为默认的信任级别
firewall-cmd --set-default-zone=public

2. 管理端口
# 列出 dmz 级别的被允许的进入端口
firewall-cmd --zome=dmz --list-ports
# 允许 tcp 端口 8080 至 dmz 级别
firewall-cmd --zone=dmz --add-port=8080/tcp
# 允许某范围的 udp 端口至 public 级别,并永久生效
firewall-cmd --zome=public --add-port=5060-5059/udp --permanent

3. 管理服务
# 添加 smtp 服务至 work zone
firewall-cmd --zone=work --add-service=smtp
# 移除 work zone 中的 smtp 服务
firewall-cmd --zone=work --remove-service=smtp

4. 配置 ip 地址伪装
# 查看
firewall-cmd --zone=external --query-masquerade
# 打开伪装
firewall-cmd --zone=external --add-masquerade
# 关闭伪装
firewall-cmd --zone=external --remove-masquerade

5. 端口转发
# 要打开端口转发,则需要先
# firewall-cmd --zone=external --add-masquerade
# 然后转发 tcp 22 端口至 3753
firewall-cmd --zone=external --add-forward-port=port=22:proto=tcp:toport=3753
-----------------------------------
# 转发 22 端口数据至另一个 ip 的相同端口上
firewall-cmd --zone=external --add-forward-port=port=22:proto=tcp:toaddr=192.168.1.100
# 转发 22 端口数据至另一 ip 的 2055 端口上
firewall-cmd --zone=external --add-forward-port=port=22:proto=tcp:toport=2055:toaddr=192.168.1.100

二、MySQL 安装与配置

2.1 安装 Mysql

centos7 下没有 yum install mysql-server 的安装方法,由此,使用以下的安装方法:

wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm
yum update
yum install mysql-server
# 启动mysql
systemctl start mysqld

2.2 MySQL 初始化设置

# 运行下面命令进入初始化设置
mysql_secure_installation
2.2.1 修改 Mysq 默认密码

首先是设置root密码,初次登录时默认为空,直接点回车,然后输入两次root新密码

Centos7 Nginx+Mysql+Php搭建 WordPress站点-DESTLIVE
2.2.2 删除匿名用户

随后,会选择是否删除匿名用户(不需要账户就可以登入mysql),选择 y,如图
Centos7 Nginx+Mysql+Php搭建 WordPress站点-DESTLIVE

2.3.4 允许远程连接

默认情况下,root 用户只允许连接 localhost,这可以防止其他用户通过远程登录到 root,这里依据自己的情况选择,在项目中,需要通过远程登录 root 用户,这里选了 n,如图:
Centos7 Nginx+Mysql+Php搭建 WordPress站点-DESTLIVE

2.3.5 删除测试数据库

删除测试数据库, 选y:

Centos7 Nginx+Mysql+Php搭建 WordPress站点-DESTLIVE
2.3.6 数据库计时实时更新

最后,选择数据库计时更新,选择 y
Centos7 Nginx+Mysql+Php搭建 WordPress站点-DESTLIVE

2.4 创建 Mysql 用户

# root用户登录
mysql -u root -p
create database wordpress charset utf8;
# 列出数据库(如下图)
show databases;
# 退出数据库
exit;
# 重启数据库
systemctl restart mysqld 

Centos7 Nginx+Mysql+Php搭建 WordPress站点-DESTLIVE

三、PHP、Vsftpd 安装配置

3.1 配置 PHP

#  先安装 php-mysql 和 php-fpm,如果已有,则跳过
yum –y install php-mysql
yum –y install php-fpm
# 运行
yum -y install php* --skip-broken
# 编辑 php 配置文件
vim /etc/php.ini
# 添加
extension=mysql.so
# 找到 extension_dir  并设为
extension_dir = "/usr/lib64/php/modules"
# 重启 php 服务
systemctl restart php-fpmmv

3.2 Vsftpd 安装与配置

# 安装
yum -y install vsftpd
# 启动服务
systemctl start vsftpd 
# 新建 ftp home 目录
mkdir  /ftpuserdata
# 为 ftp 创建用户 ftpuser,指定目录 /ftpuserdata/www/
useradd ftpuser -d /ftpuserdata/www/ -s /sbin/nologin
# 设置密码
passwd ftpuser
# 编辑 FTP 配置文件
vim /etc/vsftpd/vsftpd.conf
# 将匿名登录禁用
anonymous_enable=NO
# 保存退出后,给 www 目录设置读写权限
chmod -R 777 /ftpuserdata/www/
# 重启
systemctl restart vsftpd

四、Wordpress 安装及相关配置

4.1 安装 wordpress

# 安装
# 进入目录
cd /ftpuserdata/www/
#下载
wget https://wordpress.org/latest.zip
# 解压
unzip latest.zip

4.2 配置 WordPress

修改 WordPress 的配置文件

 vim /ftpuserdata/www/wordpress/wp-config-sample.php 
Centos7 Nginx+Mysql+Php搭建 WordPress站点-DESTLIVE

保存退出,重命名 WordPress 配置文件

mv /ftpuserdata/www/wordpress/wp-config-sample.php /ftpuserdata/www/wordpress/wp-config.php 

4.3 修改 wp 相关配置

根据 WordPress 目录修改 nginx 配置,以及 php 的 cgi 设置:

vim /etc/nginx/conf.d/default.conf
Centos7 Nginx+Mysql+Php搭建 WordPress站点-DESTLIVE

修改完之后,重启相关服务。

systemctl restart vsftpd
systemctl restart php-fpm
systemctl restrat nginx

浏览器打开 IP 地址,既可以到 WordPress 的初始化界面。这样一个 WordPress 网站就搭好了。
Centos7 Nginx+Mysql+Php搭建 WordPress站点-DESTLIVE

五. 相关问题及解决

更换主题时, 出现没有上级目录的写权限

WordPress create directory wp-content/uploads/2018/11.

解决

cd /ftpuserdata/www 
mkdir wordpress/wp-content/
chmod 777 wordpress/wp-content/uploads/

【相关链接】