日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > php >内容正文

php

php no input file specified.,nginx+php出现No input file specified解决办法

發(fā)布時間:2024/1/23 php 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php no input file specified.,nginx+php出现No input file specified解决办法 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

在自己本地的開發(fā)環(huán)境突然出現(xiàn)了No input file specified錯誤,反復(fù)檢查返現(xiàn)自己的配置文件和配置路徑以及權(quán)限都沒有問題。經(jīng)過反復(fù)的排查終于發(fā)現(xiàn)了問題,現(xiàn)將問題及解決分享如下:

問題原因分析

在GitHub上下載了一個開源的tp5項目,之前自己本地的網(wǎng)站運行都沒有問題。但是安裝了這個開源項目后就發(fā)現(xiàn)本地其他網(wǎng)站都無法訪問了。訪問就是No input file specified錯誤。在網(wǎng)上也找了解決辦法,但是都不是,看來這個錯誤有點兒詭異。

后來反復(fù)嘗試,重啟電腦后問題得到解決但是再次運行下載的tp5開源項目后其他網(wǎng)站又出現(xiàn)了這樣的錯誤No input file specified 而且只有這一個網(wǎng)站運行沒有問題。

據(jù)此將錯誤圈定在該開源項目的nginx配置文件中。再來看看該配置文件:

server {

listen 80;

server_name local.test.com;

access_log /data/wwwlogs/local.test.com.log combined;

error_log /data/wwwlogs/local.test.com_error.log error;

index index.html index.htm index.php;

root /data/php/test;

add_header X-Powered-Host $hostname;

fastcgi_hide_header X-Powered-By;

if (!-e $request_filename) {

rewrite ^/(.+?\.php)/?(.*)$ /$1/$2 last;

rewrite ^/(.*)$ /index.php/$1 last;

}

location ~ \.php($|/){

fastcgi_index index.php;

fastcgi_pass 127.0.0.1:9000;

include fastcgi_params;

set $real_script_name $fastcgi_script_name;

if ($real_script_name ~ "^(.+?\.php)(/.+)$") {

set $real_script_name $1;

}

fastcgi_split_path_info ^(.+?\.php)(/.*)$;

fastcgi_param PATH_INFO $fastcgi_path_info;

fastcgi_param SCRIPT_NAME $real_script_name;

fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;

fastcgi_param PHP_VALUE open_basedir=$document_root:/tmp/:/proc/;

}

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {

access_log off;

error_log off;

expires 30d;

}

location ~ .*\.(js|css)?$ {

access_log off;

error_log off;

expires 12h;

}

在以上的配置中其他都是常規(guī)的配置。因為我使用cgi。在fastcgi參數(shù)中有一行可能大家也注意到了。

fastcgi_param PHP_VALUE open_basedir=$document_root:/tmp/:/proc/;

就是這句。這句的主要作用是設(shè)置fastcgi的可操作目錄從而防止跨站的,將open_basedir限定在了本項目的目錄和/tmp/以及/proc/中。

問題解決

剛剛說了是在配置的fastcgi配置中多了一句防止跨站的語句。那么這句話他其實是影響了整個fastcgi的參數(shù),這樣因為我的其他網(wǎng)站的路徑是/data/php/xxx/這樣的目錄,而不在本開源項目的目錄/data/php/test/所以fastcgi就無法找到。

所以在這句之前加#注釋這句或者刪除這句重啟系統(tǒng)或重啟nginx就可以了。

線上部署的建議

那么到底要不要使用這句呢?在線上環(huán)境中當(dāng)然是可以的。在線上項目部署中對于open_basedir中最好別使用$document_root這樣的變量。如果有多個項目在線上

fastcgi_param PHP_VALUE open_basedir=/wwwroot/:/tmp/:/proc/;

總結(jié)

以上是生活随笔為你收集整理的php no input file specified.,nginx+php出现No input file specified解决办法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。