首頁 > php框架 > Laravel > 痛苦的排錯之” No input file specified.'

痛苦的排錯之” No input file specified.'

步履不停
發布: 2019-06-28 16:07:33
原創
8569 人瀏覽過

痛苦的排錯之” No input file specified.'

報錯」No input file specified.「 排查

背景

今天下午我要和小夥伴一起開發一個Laravel 的項目,這個專案是我夥伴已經開發了一部分,所有我就克隆了一份到我的電腦上,但是等我配置好,打開網址的提示”No input file specified.“ 404錯誤

#排查

  • 首先我懷疑是專案原始碼的問題,然後我直接在入口檔案最前面加入了一句如下;我存取網址還是報同樣的錯誤。

    <?php
    exit(1);
    登入後複製

    說明不是我專案原始碼的問題,排除程式碼的問題;

  • 我開始懷疑是自己環境的問題,於是我就開始折騰了。我把項目刪了,又從新開始建一個項目,但是還是不行。我發現只有這個專案是這樣的問題。於是我確定不是環境的問題。

    說明不是環境的問題,排除環境的問題

  • #我百度了一下,有人說可能是Homestead.yaml 的問題,但是我仔細對照了一邊,也沒有發現的那裡出問題了。於是我就 Google 了一下,也沒有找到好的原因。

    排除虛擬機器配置的問題

  • 於是我就再想不是環境的問題,不是程式的問題~~~;最後覺得應該去虛擬機器裡面看看,最後我在ngnix 的日誌中看到這個錯誤。

    2019/05/23 12:31:44 [error] 5085#5085: *1 FastCGI sent in stderr: "PHP message: PHP Warning:  Unknown: open_basedir restriction in effect. File(/home/vagrant/Code/haopai-git/public/index.php) is not within the allowed path(s): (/www/wwwroot/dev.guooo.top/:/tmp/:/proc/) in Unknown on line 0
    PHP message: PHP Warning:  Unknown: failed to open stream: Operation not permitted in Unknown on line 0
    Unable to open primary script: /home/vagrant/Code/haopai-git/public/index.php (Operation not permitted)" while reading response header from upstream, client: 192.168.10.1, server: hp.hopa.cc, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/var/run/php/php7.2-fpm.sock:", host: "hp.hopa.cc"
    登入後複製
  • 看到上面的錯誤,我也去網上找,網上主要是說ngnix 裡面配置fastcgi_param 的問題,但是我覺得不對吧,因為別的項目都沒問題,單單就這個項目有問題。不知怎麼了,我就注意到"/www/wwwroot/" 這個東西,我電腦裡就不應該有這個資料夾啊,於是我就去專案裡查找這個字串,最後在.user.ini 這個檔案找到了,當我看到這個檔案的時候我就意識到是他的問題,我把這個檔案裡面的配置刪了。文件內容如下:

    open_basedir=***********
    登入後複製
  • 好了,問題解決了。

    反思

    之後回過頭來想想,其實一開始就應該想到去看看 ngnix 的日誌。之前也接觸過 .user.ini 這個文件,那時只記得他是防治跨站攻擊用的。

    .user.ini 知識點

    自 PHP 5.3.0 起,PHP 支援基於每個目錄的 .htaccess 風格的 INI 檔案。此類文件僅由 CGI/FastCGI SAPI 處理。此功能使得 PECL 的 htscanner 擴展作廢。如果使用 Apache,則用 .htaccess 檔案有相同效果。

    除了主php.ini 之外,PHP 還會在每個目錄下掃描INI 文件,從被執行的PHP 文件所在目錄開始一直上升到web 根目錄($_SERVER['DOCUMENT_ROOT'] 所指定的)。如果被執行的 PHP 檔案在 web 根目錄之外,則只掃描該目錄。

    在 .user.ini 風格的 INI 檔案中只有具有 PHP_INI_PERDIR 和 PHP_INI_USER 模式的 INI 設定可被辨識。

更多Laravel相關技術文章,請造訪Laravel教學專欄進行學習!

以上是痛苦的排錯之” No input file specified.'的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板