背景
CentOS 8.2服务器,使用的虚拟服务器。只开放22与80端口。设置默认页面是wordpress的入口,phpmyadmin使用虚拟目录的形式进行访问。
安装
总体思路按照此文章进行。我进行的还算顺利。
有的package教程上说有,但是自己使用yum install却说没有
需要安装yum install epel-release
,这样很多拓展的包才可用。如果还不行,然后最好设置一下etc/yum.repo.d/epel.repo
,将其中的非debug项目都enable=1
。
使用yum install wordpress进行安装
之前使用CentOS7自带的源中,有wordpress,可以使用yum install wordpress的方式进行安装,需要设置一下工作目录,或者直接使用ln
命令做一个软链接,创建一个wordpress到/usr/share/nginx/html/
的链接,即可正常使用。
安装极慢
可以考虑使用国内安装源进行,国内有https://mirrors.ustc.edu.cn/和https://mirrors.tuna.tsinghua.edu.cn/
,两个都可以用,除了baseOS以外,还都有epel的源。
配置
无法安装wordpress插件,提示无法创建目录。
需要给wp-content
、wp-content/plugins
、wp-content/uploads
、wp-content/themes
分配权限,使用chmod
分配755权限,使用chown -R nginx:nginx ./wp-content
分配nginx访问的权限。
phpMyAdmin提示session_start(): open(SESSION_FILE, O_RDWR)) failed: Permission denied (13)
这篇文章说了下原理,我的情况比较符合这种,session目录就在/var/lib/php/session
这个位置,chown
设置一下权限,就OK了。
wordpress提示上传文件有2M限制或者提示413 Request Entity Too Large。
找到etc/php.ini,修改
upload_max_filesize
post_max_size
max_execution_time
max_input_time
max_input_vars
memory_limit
都调整成大的数值。然后,在nginx.conf中设置
server {
listen 80;
listen [::]:80;
root /var/www/html/wordpress;
index index.php index.html index.htm;
server_name example.com www.example.com;
#注意这一行是关键
client_max_body_size 100M;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
#注意这几行,谨慎设置,可能导致运行速度变慢。
fastcgi_connect_timeout 300s;
fastcgi_read_timeout 300s;
fastcgi_send_timeout 300s;
}
}
然后执行
sudo systemctl reload nginx.service
sudo systemctl reload php-fpm.service
就可以正常工作了。
phpMyAdmin无法正常被nginx解析
在etc/nginx/default.d/下面新建一个phpmyadmin.conf文件
location /phpmyadmin {
root /usr/share/nginx/html;
index index.php index.html index.htm;
location ~ ^/phpmyadmin/(.+.php)$ {
try_files $uri =404;
root /usr/share/nginx/html/;
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
location ~* ^/phpmyadmin/(.+.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
root /usr/share/nginx/html/;
}
}
重启之后即可正常。
PHP无法被nginx加载,所有php网页都提示404错误。
php -v命令显示正常,服务也在正常运行,但是无法正常解析,提示找不到文件(比如index.php)。
检查etc/nginx/default.d/php-fpm.conf
文件,fastcgi_pass
可能设置的路径不正确。正确应该为:
fastcgi_pass unix:/run/php-fpm/www.sock;
wordpress安装插件时,提示连接FTP,要求提供FTP的信息
设置/usr/share/nginx/html/wp-config.php
,增加一项:
define('FS_METHOD', 'direct');
重启php-fpm即可。