主頁(yè) > 知識(shí)庫(kù) > nginx+php出現(xiàn)No input file specified解決辦法

nginx+php出現(xiàn)No input file specified解決辦法

熱門(mén)標(biāo)簽:菏澤crm外呼系統(tǒng)價(jià)格 申請(qǐng)400電話號(hào)碼多少錢(qián) coreldraw地圖標(biāo)注 如何在各種地圖標(biāo)注自己的地址 百應(yīng)電銷(xiāo)機(jī)器人靠譜嗎 物超所值的400電話申請(qǐng) 遼寧電銷(xiāo)平臺(tái)外呼系統(tǒng)軟件 營(yíng)銷(xiāo)電銷(xiāo)機(jī)器人招商 信陽(yáng)銷(xiāo)售外呼系統(tǒng)招商

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

問(wèn)題原因分析

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

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

據(jù)此將錯(cuò)誤圈定在該開(kāi)源項(xiàng)目的nginx配置文件中。再來(lái)看看該配置文件:

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ī)的配置。因?yàn)槲沂褂胏gi。在fastcgi參數(shù)中有一行可能大家也注意到了。

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

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

問(wèn)題解決

剛剛說(shuō)了是在配置的fastcgi配置中多了一句防止跨站的語(yǔ)句。那么這句話他其實(shí)是影響了整個(gè)fastcgi的參數(shù),這樣因?yàn)槲业钠渌W(wǎng)站的路徑是/data/php/xxx/這樣的目錄,而不在本開(kāi)源項(xiàng)目的目錄/data/php/test/所以fastcgi就無(wú)法找到。
所以在這句之前加#注釋這句或者刪除這句重啟系統(tǒng)或重啟nginx就可以了。

線上部署的建議

那么到底要不要使用這句呢?在線上環(huán)境中當(dāng)然是可以的。在線上項(xiàng)目部署中對(duì)于open_basedir中最好別使用$document_root這樣的變量。如果有多個(gè)項(xiàng)目在線上服務(wù)器中那么可以把所以項(xiàng)目放置在一個(gè)統(tǒng)一的目錄中。例如我的線上是wwwroot目錄下放置其他網(wǎng)站。例如/wwwroot/test1 /wwwroot/test2那么我可以配置為

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

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

標(biāo)簽:湖北 玉樹(shù) 江西 廈門(mén) 內(nèi)江 江門(mén) 泰安 瀘州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《nginx+php出現(xiàn)No input file specified解決辦法》,本文關(guān)鍵詞  nginx+php,出現(xiàn),input,file,specified,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《nginx+php出現(xiàn)No input file specified解決辦法》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于nginx+php出現(xiàn)No input file specified解決辦法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章