一、安装 Nginx
1.1 安装 Nginx 相关依赖
# 安装gccyum install gcc-c++# 安装 pcre-devel yum install -y pcre pcre-devel# 安装zlibyum install -y zlib zlib-devel# 安装OpenSSLyum 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 repobaseurl=http://nginx.org/packages/OS/OSRELEASE/$basearch/gpgcheck=0enabled=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 并通过浏览器访问
# 启动 nginxcd /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 --help1. 查看规则# 查看运行状态firewall-cmd --state# 查看已被激活的 Zone 信息firewall-cmd --get-active-zones# 查看指定接口的 Zone 信息firewall-cmd --get-zone-of-interface=eth0# 查看指定级别的接口firewall-cmd --zone=public --list-interfaces# 查看指定级别的所有信息,譬如 publicfirewall-cmd --zone=public --list-all# 查看所有级别被允许的信息firewall-cmd --get-service# 查看重启后所有 Zones 级别中被允许的服务,即永久放行的服务firewall-cmd --get-service --permanentfirewall-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=public2. 管理端口# 列出 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 --permanent3. 管理服务# 添加 smtp 服务至 work zonefirewall-cmd --zone=work --add-service=smtp# 移除 work zone 中的 smtp 服务firewall-cmd --zone=work --remove-service=smtp4. 配置 ip 地址伪装# 查看firewall-cmd --zone=external --query-masquerade# 打开伪装firewall-cmd --zone=external --add-masquerade# 关闭伪装firewall-cmd --zone=external --remove-masquerade5. 端口转发# 要打开端口转发,则需要先# firewall-cmd --zone=external --add-masquerade# 然后转发 tcp 22 端口至 3753firewall-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.rpmrpm -ivh mysql-community-release-el7-5.noarch.rpmyum updateyum install mysql-server# 启动mysqlsystemctl 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 -pcreate database wordpress charset utf8;# 列出数据库(如下图)show databases;# 退出数据库exit;# 重启数据库systemctl restart mysqld
三、PHP、Vsftpd 安装配置
3.1 配置 PHP
#先安装 php-mysql 和 php-fpm,如果已有,则跳过yum –y install php-mysqlyum –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 vsftpdsystemctl restart php-fpmsystemctl 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/
【相关链接】