作者o55665516 (elephant)
看板PHP
标题[请益] PHP执行Python requests套件
时间Wed May 20 01:16:24 2020
请问版上各位高手
我用的环境是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://webptt.com/cn.aspx?n=bbs/PHP/M.1589908586.A.2C5.html
1F:→ ddoll288: 因为php的user跟你直接下cmd的shell不一样,环境变数也 05/20 09:06
2F:→ ddoll288: 不一样, 所以python没办法找到package, 你要告诉python 05/20 09:07
3F:→ ddoll288: request套件的位置在那边才能跑 05/20 09:08
5F:推 GALINE: 是说有点好奇,为何不用纯 PHP 的方案? 05/20 11:29
6F:→ GALINE: 像是 php-html-parser,虽然人气是比漂亮汤还要低... 05/20 11:30
7F:→ ddoll288: 因为python爬虫比较好写,尤其是多执行绪状况下 05/20 14:14
8F:→ ddoll288: php大多跑web,通常是靠httpd来挤多执行绪,自己的多执行 05/20 14:17
9F:→ ddoll288: 绪很难写,加上大数据风行,所以後台任务大多用py写了 05/20 14:19
11F:→ ddoll288: pthreads已死,parallel再生,PCNTL不知所云 05/20 14:26
12F:→ ddoll288: py的threading就简单多了,反正php的多执行绪就是烂 05/20 14:28
13F:推 GALINE: pcntl 就...老派...(远目 05/20 18:39
14F:→ GALINE: 不过如果是这个方向,直觉是不会从网页发动 05/20 18:40
15F:推 yanli2: python跑虚拟机吗? 有的话你py档要指定环境 05/21 04:42
16F:→ LinLinJim: 用Flask或Django包成api再用呢 05/22 02:01
17F:→ chaoms: Swoole呢? 06/23 14:27