Nginx 提示 no input file specified 。

因为磁盘位置不够了要做迁移,vhost的配置文件

server 
{
    listen       80;
    server_name ***.****.com;
    index index.php index.html index.htm;
    root  /home/wwwroot/default;
    
    error_page   404   /404.html;
    error_page   502 504   /502.html;
    include enable-php.conf;

    location / {
        index index.php index.html ;
    }
    location /nginx_status
    {
        stub_status on;
        access_log   off;
    }

    location /status {
        stub_status on;
        access_log   off;
    }
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
      #  expires      30d;
    }

    location ~ .*\.(js|css)?$
    {
    #    expires      12h;
    }
    location ~ \.php$ {
            #root html;
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            #fastcgi_param SCRIPT_FILENAME /mnt/wwwroot/default$fastcgi_script_name;
            include fastcgi_params;
    }
    access_log  /home/wwwlogs/access.log  access;
}
  

其中root /home/wwwroot/default;改成root /mnt/wwwroot/default;提示no input file specified

/mnt/wwwroot/default这个目录肯定是存在的,因为其他的配置server是可以访问的

奇怪的是设置/home/wwwroot/default好使,设置为root /mnt/wwwroot/default;就报错,
这两个文件夹的内容是完全一致的。
求解。


原因

找到问题的原因了,目录下有个.user.ini文件,nginx跨目录用的,直接cp过来,这个文件没改内容还是open_basedir=/home/wwwroot/default:/tmp/:/proc/
改成open_basedir=/mnt/wwwroot/default:/tmp/:/proc/就好使了

回复
阅读 4.5k
2 个回答

set $phproot /mnt/wwwroot/default;
fastcgi_param SCRIPT_FILENAME $phproot/$fastcgi_script_name;

直接删除 .user.ini 也可以解决此问题

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏