//1.php
<?php
$order = 'python /home/python/1.py';
$data = シェル_exec($order);
var_dump($data);
?>
//1.py
#!usr/bin/env Python`
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 = シェル_exec($order);
var_dump($data);
?>
//2.py
#!usr/bin/env Python`
インポートリクエスト
OSをインポートする
r = request.get('http://ip.taabao.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 activate python36
$PYTHONPATH /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~~ を実行できません
リクエストモジュールをインストールしませんでしたか