Home >Backend Development >PHP Tutorial >Nginx 提示 no input file specified 。

Nginx 提示 no input file specified 。

WBOY
WBOYOriginal
2016-06-06 20:23:321358browse

因为磁盘位置不够了要做迁移,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;

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn