带有FastCGI和WordPress的NginX在子目录中 - “未指定输入文件”

时间:2012-09-09 01:24:21

标签: php wordpress nginx fastcgi

我正在尝试将WordPress博客迁移到我网站的子目录(例如example.com/blog/)。使用NginX和FastCGI,我设法让整个WordPress站点在端口8080上运行,但是当我尝试应用规则将其放入/ blog时,我得到“未指定输入文件”

我认为因为我可以使用PHP和WordPress,我可以假设我的安装或相关文件夹的权限没有问题。

这就是我的虚拟主机的样子(我在“/”处运行一个rails网站):

    server {
    listen       80;
    server_name  example.com localhost;

    #charset koi8-r;

    #access_log  logs/host.access.log  main;

    location /blog/ {
        root /home/deploy/www/blog.example.com/html;
        index index.php;
        try_files $uri $uri/ /blog/index.php;
    }

    location ~ \.php$ {
        root /home/deploy/www/blog.example.com/html;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }

    location / {
        root   /home/deploy/www/example.com/public;
        passenger_enabled on;
        index  index.html index.htm;
    }

我也试过这个配置得到了同样的结果:

    location ~ ^/blog/.*(\.php)?$ {
           fastcgi_split_path_info ^(.+\.php)(.*)$;
           root   /home/deploy/www/blog.example.com/html;
           try_files $uri =404;
    #        fastcgi_split_path_info ^(/blog/.+\.php)(.*)$;

            #fastcgi_split_path_info ^(.+\.php)(/.+)$;
            #NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini

            include fastcgi_params;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    #       fastcgi_intercept_errors on;
          fastcgi_pass 127.0.0.1:9000;
    }

我做错了什么?

1 个答案:

答案 0 :(得分:0)

您是否正在使用WordPress和Multisite?

我不清楚您的设置,但此列表中的教程肯定会对您有所帮助:http://rtcamp.com/wordpress-nginx/tutorial

如果您可以分享更多详情,我可以更好地为您提供指导。

8080从哪里开始拍照?你使用Nginx和Apache ??

“未指定输入文件”看起来像是与PHP文件的错误位置相关的错误...

尝试更改

enter code here fastcgi_index index.php;

try_files index.php blog/index.php

假设'blog'是您移动WordPress的文件夹。