>백엔드 개발 >PHP 튜토리얼 >Nginx 提示 no input file specified 。

Nginx 提示 no input file specified 。

WBOY
WBOY원래의
2016-06-06 20:23:321378검색

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

<code>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;
}
  </code>

其中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/就好使了

回复内容:

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

<code>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;
}
  </code>

其中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/就好使了

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.