Rumah >pembangunan bahagian belakang >tutorial php >Mengapa PHP exec() Saya Tidak Berfungsi Menjalankan Skrip Python, dan Bagaimana Saya Boleh Membetulkannya?

Mengapa PHP exec() Saya Tidak Berfungsi Menjalankan Skrip Python, dan Bagaimana Saya Boleh Membetulkannya?

Barbara Streisand
Barbara Streisandasal
2024-12-28 12:07:10300semak imbas

Why Doesn't My PHP exec() Function Run Python Scripts, and How Can I Fix It?

Melaksanakan Skrip Python daripada PHP

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:

  • Melog masuk sebagai pengguna pelayan web: Gunakan arahan su - untuk menganggap identiti pelayan web.
  • Mengubah suai kebenaran fail: Berikan kebenaran yang diperlukan kepada skrip Python menggunakan arahan chmod. Contohnya: chmod u x /srv/http/assets/py/switch.py

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn