我安装了 nginx,最后一步是设置 wordpress。我按照许多指南操作,但还是无法让它正常工作。
设置相当简单,Web 服务器的根目录是 /data/Sites/nkr1pt.homelinux.net。在该根目录中,我创建了一个指向 /usr/local/wordpress 中 wordpress 文件夹的符号链接,因此实际上可以在 /data/Sites/nkr1pt.homelinux.net/wordpress 访问所有 wordpress 文件。权限没问题。
该计划是让 wordpress 在http://sirius/wordpress,服务器的名称是 sirius。spawn-fcgi 正在运行并监听端口 7777。
在这里您可以看到相关配置:
server {
listen 80;
listen 8080;
server_name sirius;
root /data/Sites/nkr1pt.homelinux.net;
passenger_enabled on;
passenger_base_uri /redmine;
#charset koi8-r;
#access_log logs/access.log main;
location ^~ /data {
root /data/Sites/nkr1pt.homelinux.net;
autoindex on;
auth_basic "Restricted";
auth_basic_user_file htpasswd;
}
location ^~ /dump {
root /data/Sites/nkr1pt.homelinux.net;
autoindex on;
}
location ^~ /wordpress {
try_files $uri $uri/ /wordpress/index.php;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:7777
location ~ \.php$ {
#fastcgi_split_path_info ^(/wordpress)(/.*)$;
fastcgi_pass localhost:7777;
#fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
#index index.php;
}
请注意,redmine、位置转储和数据都运行正常,只有 wordpress 我无法工作。
您能帮我在 nginx 中正确配置 wordpress 吗?非常感谢大家的帮助!
答案1
我看到你在 nginx.conf 中包含了“fastcgi_params”后环境:
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
如果 fastcgi_params 用其他内容覆盖 SCRIPT_FILENAME,则前一行将被忽略,Wordpress 将无法工作。我建议您颠倒这两行的顺序,如下所示:
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
答案2
据我所知,使 wordpress 正常工作的主要方法是将 mod_rewrite 规则转换为 nginx 格式。格式为:
if (!-e $request_filename)
{
rewrite ^(.+)$ /index.php?q=$1 last;
}
你也失踪了
root /path/to/wordpress
在该小节中。
否则,您看到了什么特定错误?错误日志显示了什么?
答案3
使用服务器级重写。您应该调整所有其他位置。哦,顺便说一句,您的设置不安全。您应该使用嵌套位置或fastcgi_split_path_info
。您可以查看我的WP 配置在 github 上了解嵌套位置方法。
无论如何,这是对您的请求的答复:
rewrite ^ http://$host/wordpress$request_uri? permanent;