從PHP腳本中,我想運行一個Perl腳本。我可以從終端做到這一點(作爲root用戶),但是當從我的應用程序(www-data用戶)運行時,我不能。無法從PHP/Apache中找到Perl腳本
在localhost上開發應用程序時,我也可以做到這一點,但是當我切換到另一臺服務器時出現了問題。
我的網頁使用AJAX POST請求調用PHP腳本,該腳本適用於我的其他PHP腳本,它們不會調用Perl。
system("/filepath/file.pl");
exec("/filepath/file.pl");
passthru("/filepath/file.pl");
服務器上的Apache日誌主辦我的應用程序會顯示以下錯誤:
sh: /file.pl: not found
在運行以下
我都沒有成功試圖在我的PHP腳本下面的命令代碼在我的服務器上我看到網絡用戶被視爲萬維網數據:
ps aux | grep apache
要測試,我還設置了我的應用程序使用的所有文件和目錄的權限,以允許任何用戶使用chmod 777進行任何類型的訪問。
請注意:我的應用程序僅適用於某些用戶(我使用.htaccess文件來設置這些權限,並要求用戶登錄),所以如果有辦法改變服務器如何看到這個用戶(從www-data到登錄用戶的憑證),那麼也許會這樣幫助 - 我將如何做到這一點?
'/ filepath'會啓動驅動器文件系統的ROOT,例如''C:\''。如果'/ filepath'是你的網站的根,那麼這是行不通的。您需要包含整個路徑:'/home/user/sites/example.com/public_html/filepath/file.pl'-類型 –
「找不到」確實表示權限問題? –