nginx + wordpress 在 /wordpress 子目录中

nginx + wordpress 在 /wordpress 子目录中

我安装了 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;

相关内容