Centos8部署WordPress记录

发布于 2021-03-24  6 次阅读


前言

记录一次部署WordPress5.7版本的步骤

0x01 安装web前端

此次web服务器我选择了轻量化的NGINX+PHP(此教程使用的是软件源安装,也可自行编译安装,PHP编译教程参考这里)

#安装NGINX和PHP
dnf install -y nginx-all-modules php*
 
#设置nginx和php自动启动
chkconfig nginx on
chkconfig php-fpm on
 
#新建一个www用户,使PHP和NGINX都以此用户运行以防止权限问题
#新建用户
useradd -s /sbin/nologin www
#将nginx用户也加如www组
gpasswd -a nginx www
 
#更改NGINX和PHP配置文件,修改为使用www用户运行
#NGINX
nano /etc/nginx/nginx.conf
#找到如下参数
user nginx;
#将nginx修改为www
 
#PHP
nano /etc/php-fpm.d/www.conf
#找到如下参数
user = nobody
group = nobody
listen.owner = nobody
listen.group = nobody
#将以上的nobody替换为www即可
 
#启动PHP和NGINX
#PHP
systemctl start php-fpm
#NGINX
直接终端中执行nginx即可

0x02 部署WordPress

#进入www目录
cd /home/www
#下载最新的wordpress
wget https://cn.wordpress.org/latest-zh_CN.tar.gz
#解压wordpress到www目录
tar -zxvf wordpress*.tar
 
#如果你是以root进行以上操作的请不要忘了更改文件所有者,如果你不更改你会无法正常运行WordPress
chown -R 1000:1000 /home/www
#更改缓存目录的所有者,如果你的wp媒体管理器无法上传文件,多半就是它的权限不对造成的,你也可以多多查看位于/var/log/nginx/error.log的错误日志来精确的确定错误
chown -R 1000:1000 -R /var/lib/nginx
#1000:1000是www用户和用户组的GUID,请根据实际情况自行修改,如果你不知道你用户的GUID是什么,请执行
cat /etc/passwd|grep www
#复制一份默认配置文件修改初始配置
cp wordpress/wp-config-sample.php wordpress/wp-config.php
#填写你的数据库地址,这里我使用了外部SQL数据库作为我的后端储存,如果你想全部部署到本地,请自行选择一个数据库服务器安装
nano www/wordpress/wp-config-sample.php
#找到以下字段,自行填写
#MySQL数据库用户名
define( 'DB_USER', 'root' );
#MySQL数据库密码(填写明文密码)
define( 'DB_PASSWORD', '********' );
#MySQL主机(填写主机IP和端口)
define( 'DB_HOST', '127.0.0.1:3306' );

0x03 添加服务器配置

新建一个配置文件(建议把NGINX的默认监听注释掉)
nano /etc/nginx/conf.d/wordpress.conf
 
以下为参考配置,请根据实际修改,全部照抄没用的

        server {
#监听端口
            #IHTTP
            listen      80 default_server;
            listen      [::]:80 default_server;
            #HTTPS
            listen      443 ssl http2 default_server;
            listen      [::]:443 ssl http2 default_server;

#绑定的服务器域名
            server_name www.gitlx.com;

#SSL配置
            ssl_certificate      /home/www/ssl/fullchain.pem;
            ssl_certificate_key  /home/www/ssl/privkey.pem;
            ssl_prefer_server_ciphers   on;#允许服务器设定协议版本
            ssl_session_timeout 15m;
            include /home/www/ssl/tls.conf*; #导入ssl支持的协议类型

#重定向https
            if ($server_port = "80") {
            return 301 https://$server_name$request_uri;
        }

#启用HSTS
            add_header  Strict-Transport-Security max-age=15768000;

#跨域配置
#           add_header Access-Control-Allow-Origin *;
#这行代表允许谁来访问,可配置为域名,,*号代表所有
#           add_header Access-Control-Allow-Headers X-Custom-Header;
#           add_header Access-Control-Allow-Methods GET,POST,OPTIONS; #允许的跨域访问方式

#网站根目录
            root    "/home/www/wordpress";
            index    index.html  index.htm  index.cgi  index.php  index.php5 ; #允许解析的文件类型
            error_page 400 401 402 403 404 405 406 407 408 500 501 502 503 504 505 @error_page;

#最大请求文件大小,需配合修改php.ini使用
            client_max_body_size 64m;

#伪静态设置
            location / {
            try_files $uri $uri/ /index.php?$args;
        }
            rewrite /wp-admin$ $scheme://$host$uri/ permanent;#使用伪静态方式重写链接

#错误页设置,提供个性化的错误代码页
            location @error_page {
            root /usr/share/nginx/html;
            rewrite ^ /$status.html break;
        }

#PHP设置,可以更改监听路径自定义使用不同的PHP版本
            location ~* \.(php[345]?|phtml)$ {
            fastcgi_pass 127.0.0.1:9001;
            include fastcgi.conf;
        }

}

0x04 运行WordPress

重新加载NGINX,在浏览器输入你的服务器地址或域名即可正式开始使用WordPress。
nginx -s reload


后记

数据库服务器根据个人喜好自行选择,可以使用云数据可或者本地数据库,本地数据库管理这里我推荐MariaDB+phpMyAdmin的组合对数据库进行管理。