nginx错误:当网站在子目录中时“没有指定输入文件”

时间:2014-12-02 09:49:22

标签: php joomla nginx

我一直试图在几个小时内搜索这个问题,但似乎没有一个解决方案适用于我的情况。

我已经在我的nginx服务器上用raspbian安装了joomla用于测试目的。 该目录位于/ var / www / joomla。

如果我将/ etc / nginx / sites-的根目录更改为/ var / www / joomla,该网站可以正常工作,但是如果我想从http://www.example.com/joomla访问我的joomla网站,它就赢了工作。 我可以访问joomla主页,但如果我点击主页上的某个链接(例如我有一个地址为http://www.example.com/joomla/index.php/contact的联系表格),我会得到&#34;没有指定输入文件错误&#34;。< / p>

这是来自/ etc / nginx / sites-available / site:

的配置
server {
     listen 80;
     root /var/www;
     index index.php index.html index.htm;

     location / {
          try_files $uri $uri/ /index.php?q=$request_uri;
     }

     location ~ \.php$ {
            fastcgi_pass unix:/var/run/php5-fpm.sock;
            fastcgi_index index.php;
            include fastcgi_params;
     }
     }

我看到这个错误可能与fastcgi_param SCRIPT_FILENAME有关,但我没有弄清楚我应该编辑什么以及从哪里开始。

谢谢!

2 个答案:

答案 0 :(得分:3)

是的!我搞定了。感谢Joe Niland告诉解决方案。

我实际尝试了一次,但我可能在joomla / index.php之前错过了'/'....

现在正在运行/ etc / nginx / sites-available / site配置:

server {
 listen 80;
 root /var/www;
 index index.php index.html index.htm;

 location / {
      try_files $uri $uri/ /joomla/index.php?q=$request_uri;
 }

 location ~ \.php$ {
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
 }
 }

答案 1 :(得分:0)

在下面查看配置设置

server {
     listen 80;
     root /var/www;
     index index.php index.html index.htm;

     location / {
          try_files $uri $uri/ /index.php?q=$request_uri$args;
     }

     location ~ \.php$ {
            root /var/www;
            fastcgi_pass unix:/var/run/php5-fpm.sock;
            fastcgi_index index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include fastcgi_params;
     }
     }