Rumah > Soal Jawab > teks badan
//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')
cetak('OKOKOK')
f.write('OK')
f.close()
1. Di atas boleh berjaya memanggil dan melaksanakan py
//2.php
<?php
$order = 'python /home/python/2.py';
$data = shell_exec($order);
var_dump($data);
?>
//2.py
#!usr/bin/env python`
permintaan import
import os
r = requests.get('http://ip.taobao.com/service/getIpInfo.php?ip=0.0.0.0')
cetak(r.teks)
f = open('/home/python/2.txt','w')
f.write(r.text)
f.close()
2. Perkara di atas tidak boleh dipanggil dan dilaksanakan (kebenaran fail juga 777)
centos
persekitaran php: PHP7 (tiada fungsi berisiko tinggi dilumpuhkan)
persekitaran lalai python: python 3.6 (modul permintaan telah dipasang)
Laluan Anaconda: /root/anaconda3
Lazim persekitaran Anda perlu melaksanakan sumber arahan activate python36
$PYTHONPATH /root/anaconda3/bin/python3.6
Masalah telah ditemui
PHP menjalankan python 2.7
Kemudian ubah hala 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
Akibatnya, PHP tidak dapat melaksanakan py~~