我有一個unix腳本,下面運行一個python程序,需要10分鐘才能完成一些數據處理,它工作正常。我想從一個php網頁運行這個腳本。PHP如何運行一個.sh腳本從php網頁調用python程序
run_virt_da_py.sh
#! /bin/bash
# activate virtual environment
cd /Users/data/myproject
source bin/activate
# virtualenv is now active
python iterate_dir_analyse_files_1.py
echo "data analysis completed ok"
上面的腳本運行「完美」使用命令行使用下列命令手動從終端上運行OSX 10.6蘋果MAC運行它時。下面顯示了輸入命令後的提示。
[~]% cd myproject
[myproject]% source bin/activate
(myproject)[myproject]% sh run_virt_da_py.sh
然而,當我嘗試從PHP運行.SH腳本失敗下面的腳本返回的Python程序,沒有其他的第一回聲聲明。
<html lang="en">
<head>
<title>Data_analysis</title>
</head>
<body>
<?php
echo " data analysis script started ";
echo shell_exec('sh /Users/Data/myproject/run_virt_da_py.sh');
echo "data analysis script may have completed";
?>
</body>
</html>
研究 我一直在使用,系統,中繼,EXEC,對了shell_exec不使用的virtualenv和沒有問題的腳本嘗試。
- 任何幫助,解決方案,方法或指針的歡迎。 在此先感謝。
也許問題出現在用戶腳本運行的時候。當你從命令行運行它時,在用戶的操作下運行它?當你從PHP運行它時,它可能會運行在你的httpd用戶下,這可能沒有足夠的權限?嘗試使用shell腳本中的「whoami」來查看您實際運行的用戶,並嘗試從命令行下的同一用戶下運行腳本以查看發生了什麼。 –