看板 PHP 關於我們 聯絡資訊
請問版上各位高手 我用的環境是google GCP Ubuntu 用PHP去exec簡單的python是print的出來 例如以下 [execpython.php] <?PHP $command = escapeshellcmd('python test.py'); $output = shell_exec($command); echo $output; ?> [test.py] a = 1 print( a + 2) print(1,2,3) 但如果是去call含有request套件的py就完全無反應,但在終端機執行是OK 例如以下這支(URL有改成正常網站) https://imgur.com/NeIsVx5 小弟有稍微爬一下,好像是說Apache環境變數要改!?不太曉得確切原因... 麻煩各位大神了~先叩謝大家 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.137.82.144 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/PHP/M.1589908586.A.2C5.html
ddoll288: 因為php的user跟你直接下cmd的shell不一樣,環境變數也 05/20 09:06
ddoll288: 不一樣, 所以python沒辦法找到package, 你要告訴python 05/20 09:07
ddoll288: request套件的位置在那邊才能跑 05/20 09:08
ddoll288: https://tinyurl.com/yct2hqer 05/20 09:09
GALINE: 是說有點好奇,為何不用純 PHP 的方案? 05/20 11:29
GALINE: 像是 php-html-parser,雖然人氣是比漂亮湯還要低... 05/20 11:30
ddoll288: 因為python爬蟲比較好寫,尤其是多執行緒狀況下 05/20 14:14
ddoll288: php大多跑web,通常是靠httpd來擠多執行緒,自己的多執行 05/20 14:17
ddoll288: 緒很難寫,加上大數據風行,所以後台任務大多用py寫了 05/20 14:19
ddoll288: pthreads已死,parallel再生,PCNTL不知所云 05/20 14:26
ddoll288: py的threading就簡單多了,反正php的多執行緒就是爛 05/20 14:28
GALINE: pcntl 就...老派...(遠目 05/20 18:39
GALINE: 不過如果是這個方向,直覺是不會從網頁發動 05/20 18:40
yanli2: python跑虛擬機嗎? 有的話你py檔要指定環境 05/21 04:42
LinLinJim: 用Flask或Django包成api再用呢 05/22 02:01
chaoms: Swoole呢? 06/23 14:27