ホームページ >バックエンド開発 >PHPチュートリアル >Nginx 提示 no input file specified 。

Nginx 提示 no input file specified 。

WBOY
WBOYオリジナル
2016-06-06 20:23:321358ブラウズ

因为磁盘位置不够了要做迁移,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 までご連絡ください。