一、环境配置
基于个人使用习惯,我这边安装的是MySQL5.7,PHP7(WordPress5.2最低需要PHP5.6.20),都是通过yum方式进行环境的安装。
推荐使用yum进行环境的安装,免去自行编译可能遇到的各种问题。
# 检查是否已安装指定的包
yum list installed | grep 包名
# 卸载已安装的包
yum remove 包名
# 查看可安装的包
yum list *包名*
1、安装MySQL5.7
# 下载MySQL官方的Yum Repository
wget http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
# 安装MySQL官方的Yum Repository
yum install mysql57-community-release-el7-10.noarch.rpm
# 安装MySQL服务器
yum install mysql-community-server
# 查看/启动/停止/重启MySQL服务(注意服务名是mysqld)
systemctl status/start/stop/restart mysqld
# 查看MySQL默认密码
grep "password" /var/log/mysqld.log
# 登陆MySQL
mysql -u root -p
# 修改MySQL密码安全策略为低(低:只校验长度,不校验数据、大小写、特殊字符等)
set global validate_password_policy=0;
# 修改MySQL密码最小长度(默认长度为8)
set global validate_password_length=6;
# 设置root用户密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '******';
# 新建用户,并授予远程管理权限(持有所有库下的所有表的全部权限,并且可将权限授权给其他用户)
CREATE USER 'admin'@'%' IDENTIFIED BY '******';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' WITH GRANT OPTION;
# 手动刷新权限
FLUSH PRIVILEGES;
# 退出数据库
exit
# 卸载MySQL官方的Yum Repository,防止其自动更新
yum remove mysql57-community-release-el7-10.noarch
# 查看/启动/停止/重启防火墙
systemctl status/start/stop/restart firewalld
# 查看已开放端口
firewall-cmd --list-all
# 查看是否开启3306端口
firewall-cmd --query-port=3306/tcp
# 开启3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
# 重启防火墙
firewall-cmd --reload
# 查看阿里云安全组(阿里云服务器)
# 在阿里云云服务器管理控制台-安全组中-快速添加-勾选MySQL(3306),允许3306端口访问
2、安装Nginx
# Centos7更新Nginx yum源
# -ivh:i,安装;v,显示安装过程;h,显示进度
# -Uvh:U,更新;v,显示安装过程;h,显示进度
rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
# 安装nginx
yum inatsll nginx
# 查看/启动/停止/重启nginx
systemctl status/start/stop/restart nginx
# 访问Nginx
# Nginx服务开启后,默认已配置80端口,此时通过ip:80即可访问Nginx首页
# 如果无法访问
# 1、查看服务器防火墙配置
# 1)查看防火墙是否开启
# 2)若防火墙开启,查看80端口是否开启
# 查看是否开启80端口
firewall-cmd --query-port=80/tcp
# 开启80端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
# 重启防火墙
firewall-cmd --reload
# 2、查看阿里云安全组(阿里云服务器)
# 在阿里云云服务器管理控制台-安全组中-快速添加-勾选Http(80),允许80端口访问
3、安装Php7
# CentOS7更新php7 yum源
# -ivh:i,安装;v,显示安装过程;h,显示进度
# -Uvh:i,更新;v,显示安装过程;h,显示进度
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
# 安装php7及扩展
yum install php70w-common php70w-fpm php70w-opcache php70w-gd php70w-mysqlnd php70w-mbstring php70w-pecl-redis php70w-pecl-memcached php70w-devel
# 查看php版本
php -v
# 查看php扩展列表
php -m
# 查看/启动/停止/重启php
systemctl status/start/stop/restart php-fpm
# 配置Nginx对php的支持,需要修改Nginx配置文件
# 查询Nginx配置文件位置(/etc/nginx/nginx.conf)
find / -name nginx.conf
# 修改配置文件
vi /etc/nginx/nginx.conf
# 向写入Nginx相关配置
location / {
root html;
index index.html index.htm index.php;
}
location ~ .*\.php(\/.*)*$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# 在Nginx的html目录下创建php文件
# 查询Nginx的html目录(/usr/share/nginx/html)
find / -path "*/nginx/html*"
# 创建index.php
<?php
phpinfo();
?>
# 创建mysql.php
<?php
$conn = mysqli_connect("127.0.0.1","root","123456");
if(! $conn ) {
echo "连接失败".mysqli_connect_error();
} else {
echo "连接成功";
}
?>
# 访问ip:80/index.php、ip:80/mysql.php,分别返回php信息和连接成功,此时nginx关联php、php连接mysql成功
4、配置服务开机自启
# 查看服务列表
systemctl list-unit-files
# mysql(一般情况下mysql默认开机自启,不需要额外配置)
systemctl enable mysqld
# nginx
systemctl enable nginx
# php
systemctl enable php-fpm
二、安装WordPress
# 下载最新的安装包
wegt https://cn.wordpress.org/wordpress-5.8-zh_CN.tar.gz
# 解压到指定目录/home下
tar -zxvf wordpress-5.8-zh_CN.tar.gz -C /home/
# 配置wordpress配置文件
# 生成配置文件
cp /home/wordpress/wp-config-sample.php /home/wordpress/wp-config.php
# 修改配置文件
vim /home/wordpress/wp-config.php
define('DB_HOST', 'localhost');
define('DB_USER', 'root');
define('DB_PASSWORD', '123456');
define('DB_NAME', 'wordpress');
# 配置权限
# 在配置文件nginx.conf中查看nginx权限用户,一般默认为nginx
# user nginx;
# 为wordpress文件夹及文件夹下目录配置属主、权限
chown -R nginx:nginx /home/wordpress
chmod -R 755 /home/wordpress
# 配置Nginx
vi /etc/nginx/nginx.conf
location ~ .*\.php(\/.*)*$ {
root /home/wordpress;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
try_files $uri = 404;
}
# 重启Nginx
systemctl restart nginx
# 访问ip:80,按照初始化教程配置相关参数
总结
至此WordPress环境及搭建完成。总的来说通过yum方式进行安装的话难度并不大,相比于手动编译,在环境的配置上已经少了很多内容,反而是WordPress搭建完成后,项目相关权限和附件上传的配置上花费较多时间。
另外推荐一手极简主题VT Grid Mag,相当的简练,个人很喜欢这样的风格。
补充:
1、安装主题或插件提示需要FTP
1)在/home/wordpress/wp-content/目录下创建目录tmp
2)为当前目录下的tmp、plugins、themes配置权限777
3)在配置文件/home/wordpress/wp-config.php中增加下列配置参数
define('WP_TEMP_DIR', ABSPATH.'wp-content/tmp');
define("FS_METHOD", "direct");
define("FS_CHMOD_DIR", 0777);
define("FS_CHMOD_FILE", 0777);
2、安装主题或插件提示无法创建目录、无法移动文件
1)检查wordpress文件目录属主和nginx用户是否一致
2)检查/home/wordpress/wp-content/目录下tmp、plugins、themes的权限是否为777
3)将/home/wordpress/wp-content目录权限也配置为777
3、自动升级WordPress失败
1)检查wordpress/wp-admin及以下子文件的权限是否为777
2)检查wordpress/wp-includes及以下子文件的权限是否为777
3)完成更新后将以上文件的权限恢复为755,保证安全
4、上传文件大小限制2M、服务器忙或没有足够的资源、从服务器收到预料之外的响应
1)找到/etc/php.ini配置文件,修改相关参数值
# 单个脚本可调用内存大小
memory_limit = 128M
# 上传文件大小上限(此参数应 >= upload_max_filesize)
post_max_size = 128M
# 默认上传文件大小,这个就是2M的限制
upload_max_filesize = 128M
# 最大执行时间,页面等待时间
max_execution_time = 300
2)找到/etc/nginx/nginx.cof,添加Nginx请求体大小限制
location ~ .*\.php(\/.*)*$ {
root /home/wordpress;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
client_max_body_size 128M
try_files $uri = 404;
}
参考
1、https://www.cnblogs.com/porotin/p/9045391.html
2、https://blog.csdn.net/s416676943s/article/details/113247903
3、https://www.cnblogs.com/yanqingxu/p/9248849.html
4、https://www.cnblogs.com/ivy-zheng/p/10987431.html
5、https://www.linuxprobe.com/centos7-install-wordpress-detail-steps.html
6、https://www.sohu.com/a/337306680_120155502