Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Menjalankan Skrip Python daripada PHP?
PHP menyediakan beberapa fungsi untuk melaksanakan perintah luaran, termasuk exec, shell_exec dan sistem. Walau bagaimanapun, anda mungkin menghadapi masalah apabila cuba menjalankan skrip Python menggunakan fungsi ini.
Penyelesaian masalah:
Untuk menyelesaikan masalah ini, anda telah mencuba pelbagai penyelesaian, termasuk:
Walau bagaimanapun, anda perasan bahawa PHP masih tidak menghasilkan output.
Penyelesaian:
Isunya mungkin bukan terletak pada PHP tetapi dengan kebenaran. Pelayan web biasanya berjalan dengan keistimewaan pengguna yang terhad, yang boleh menyekat keupayaan mereka untuk melaksanakan arahan tertentu atau mengakses fail.
Log masuk ke pelayan anda sebagai pengguna yang sedang dijalankan oleh pelayan web anda (mis., www-data).
Menggunakan arahan yang anda cuba jalankan dalam PHP, cuba laksanakan secara manual daripada terminal sebagai pengguna pelayan web. Contohnya:
/usr/bin/python2.7 /srv/http/assets/py/switch.py arg1 arg2
Jika arahan berfungsi secara manual, ia mengesahkan bahawa isu itu terletak pada kebenaran.
Pastikan skrip PHP dan skrip Python mempunyai kebenaran yang betul. PHP sepatutnya melaksanakan kebenaran untuk skrip PHP dan skrip Python sepatutnya mempunyai melaksanakan kebenaran untuk pengguna pelayan web.
Fungsi shell_exec PHP secara amnya lebih dipercayai untuk melaksanakan arahan luaran daripada exec atau sistem. Ia mengembalikan output lengkap daripada arahan yang dilaksanakan. Gunakan kod berikut:
$command = escapeshellcmd('/usr/custom/test.py'); $output = shell_exec($command); echo $output;
Sahkan bahawa baris pertama fail Python anda termasuk yang berikut baris shebang:
#!/usr/bin/env python
Baris ini menentukan penterjemah Python kepada gunakan.
Jika perlu, jadikan fail Python anda boleh laku pada platform jenis UNIX menggunakan:
chmod +x myscript.py
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menjalankan Skrip Python daripada PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!