一、安装 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++
、gcc
、openssl-devel
、pcre-devel
和 zlib-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, 显示
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新密码
2.2.2 删除匿名用户
随后,会选择是否删除匿名用户(不需要账户就可以登入mysql),选择 y
,如图
2.3.4 允许远程连接
默认情况下,root 用户只允许连接 localhost
,这可以防止其他用户通过远程登录到 root,这里依据自己的情况选择,在项目中,需要通过远程登录 root 用户,这里选了 n
,如图:
2.3.5 删除测试数据库
删除测试数据库, 选y
:
2.3.6 数据库计时实时更新
最后,选择数据库计时更新,选择 y
:
2.4 创建 Mysql 用户
# root用户登录
mysql -u root -p
create database wordpress charset utf8;
# 列出数据库(如下图)
show databases;
# 退出数据库
exit;
# 重启数据库
systemctl restart mysqld
三、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
保存退出,重命名 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
修改完之后,重启相关服务。
systemctl restart vsftpd
systemctl restart php-fpm
systemctl restrat nginx
浏览器打开 IP 地址,既可以到 WordPress 的初始化界面。这样一个 WordPress 网站就搭好了。
五. 相关问题及解决
更换主题时, 出现没有上级目录的写权限
WordPress create directory wp-content/uploads/2018/11.
解决
cd /ftpuserdata/www
mkdir wordpress/wp-content/
chmod 777 wordpress/wp-content/uploads/
【相关链接】