2016-09-22 61 views
7

我做了一個簡單的腳本,如:在bash腳本運行PHP:錯誤「無法打開輸入文件」

#!/bin/bash 
php /var/www/mysite/script1.php 
php /var/www/mysite/script2.php 

當我運行它作爲根這樣的:

bash update.sh 

我得到以下錯誤:

Could not open input file: /var/www/mysite/script1.php 
Could not open input file: /var/www/mysite/script2.php 

出了什麼問題?我嘗試使用我的php文件和所有文件夾的權限777來訪問它。當我在命令行中直接執行php /var/www/mysite/script1.php時,它工作正常。

+0

嘗試使用:' sudo bash update.sh'讓我們看看會發生什麼。 – d3r1ck

+0

這是一樣的... – sylvain1264

+0

你是否像手動運行'php'命令一樣執行bash腳本?如果您通過Web服務或其他方式運行其中的一個,則路徑可能會有所不同。 –

回答

4

當一個批處理文件通過一些Windows兼容編輯器或其它事故,可能發生的是回車字符被附加到線(只是換行之前)

的端部,從而例如在所有的線這一個:

php /var/www/mysite/script1.php 

包含隱形\r炭這被解釋爲自變量的py php =>文件沒有找到/var/www/mysite/script1.php<invisible char>的一部分。

執行以下操作:

dos2unix update.sh > newbatchfile.sh 

tr -d "\015" <update.sh> newbatchfile.sh 

(比較文件的大小,如果newbatchfile較小,問題是CR字符並且是固定的)

相關問題