Centos7 Nginx+Mysql+Php搭建 WordPress站点
2022-07-29 10:13:20
116
{{single.collect_count}}

一、安装 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++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 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/

【相关链接】

回帖
全部回帖({{commentCount}})
{{item.user.nickname}} {{item.user.group_title}} {{item.friend_time}}
{{item.content}}
{{item.comment_content_show ? '取消' : '回复'}} 删除
回帖
{{reply.user.nickname}} {{reply.user.group_title}} {{reply.friend_time}}
{{reply.content}}
{{reply.comment_content_show ? '取消' : '回复'}} 删除
回帖
收起
没有更多啦~
{{commentLoading ? '加载中...' : '查看更多评论'}}