Isu:
Apabila cuba melaksanakan skrip Python daripada PHP menggunakan exec() arahan, PHP gagal menghasilkan sebarang output, walaupun pelaporan dan pelaksanaan ralat yang betul kebenaran.
Punca Punca:
Isu ini timbul apabila akaun pelayan web, seperti "apache" atau "www-data," tidak mempunyai kebenaran yang diperlukan untuk mengakses dan laksanakan fail Python. Secara lalai, akaun pelayan web selalunya beroperasi dengan keistimewaan terhad.
Penyelesaian:
Untuk menyelesaikan masalah ini, adalah penting untuk memastikan bahawa akaun pelayan web mempunyai kebenaran yang sesuai untuk dilaksanakan skrip Python. Ini boleh dicapai dengan:
Fungsi Disyorkan:
Daripada menggunakan exec(), ia adalah lebih baik untuk menggunakan fungsi shell_exec() dalam PHP untuk melaksanakan arahan melalui shell. Fungsi ini mengembalikan output lengkap yang dijana oleh arahan yang dilaksanakan atau NULL sekiranya berlaku ralat atau tiada output.
Contoh:
$command = escapeshellcmd('/usr/custom/test.py'); $output = shell_exec($command); echo $output;
Pertimbangan Penting:
Untuk memastikan pelaksanaan skrip Python dengan betul, masukkan baris berikut sebagai baris pertama skrip:
#!/usr/bin/python
Barisan ini menentukan penterjemah Python untuk digunakan, memastikan keserasian dengan pelbagai pemasangan Python pada sistem. Selain itu, skrip Python mesti mempunyai kebenaran yang sesuai dan sebarang perintah atau fail sistem yang diperlukan mesti boleh diakses oleh akaun pelayan web.
Atas ialah kandungan terperinci Mengapa PHP exec() Saya Tidak Berfungsi Menjalankan Skrip Python, dan Bagaimana Saya Boleh Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!