//1.php
<?php
$order = 'python /home/python/1.py';
$data = shell_exec($commande);
var_dump($données);
?>
//1.py
#!usr/bin/env python`
importer le système d'exploitation
f = ouvert('/home/python/1.txt','w')
imprimer('OKOKOK')
f.write('OK')
f.close()
1. Ce qui précède peut appeler et exécuter py avec succès
.//2.php
<?php
$order = 'python /home/python/2.py';
$data = shell_exec($commande);
var_dump($données);
?>
//2.py
#!usr/bin/env python`
demandes d'importation
importer le système d'exploitation
r = requêtes.get('http://ip.taobao.com/service/getIpInfo.php?ip=0.0.0.0')
imprimer(r.text)
f = ouvert('/home/python/2.txt','w')
f.écrire(r.text)
f.close()
2. Ce qui précède ne peut pas être appelé et exécuté (les autorisations de fichier sont également 777)
centos
Environnement php : PHP7 (aucune fonction à haut risque n'est désactivée)
Environnement python par défaut : python 3.6 (le module de requêtes a été installé)
Chemin Anaconda : /root/anaconda3
Common environnement Vous devez exécuter la commande source activate python36
$PYTHONPATH /root/anaconda3/bin/python3.6
Le problème a été trouvé
PHP exécute Python 2.7
Redirection ultérieure de 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
Par conséquent, PHP ne peut pas exécuter py~~
Vous n'avez pas installé le module de requêtes