Heim >Backend-Entwicklung >PHP-Tutorial >Nginx 提示 no input file specified 。

Nginx 提示 no input file specified 。

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

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

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn