//1.php
<?php
$order = 'python /home/python/1.py';
$data = shell_exec($order);
var_dump($data);
?>
//1.py
#!usr/bin/env python`
import os
f = open('/home/python/1.txt','w')
print('OKOKOK')
f.write('OK')
f.close()
1.以上可以成功呼叫執行py
//2.php
<?php
$order = 'python /home/python/2.py';
$data = shell_exec($order);
var_dump($data);
?>
//2.py
#!usr/bin/env python`
import requests
import os
r = requests.get('http://ip.taobao.com/service/getIpInfo.php?ip=0.0.0.0')
print(r.text)
f = open('/home/python/2.txt','w')
f.write(r.text)
f.close()
2.以上不能呼叫執行(檔案權限同樣都是777)
centos
php環境: PHP7 (未停用任何高危險的函數)
python預設環境: python 3.6 ( requests模組已經安裝)
Anaconda路徑: /root/anaconda3
常用環境是需要執行指令source actAnaconda路徑: /root/anaconda3
常用環境是需要執行指令 activate python36 /root/anaconda3/bin/python3.6
問題已經找到
PHP執行的是 python 2.7
後來重定向python
ln -s /root/anaconda3/bin/python3.6 /usr/bin/python
ln -s /root/anaconda3/bin/python3.6 /usr/bin/python2
n -s / root/anaconda3/bin/python3.6 /usr/bin/python3
結果PHP不能執行py了~~
你是不是沒有安裝requests模組