Mengapa skrip Bash saya gagal dilaksanakan apabila dipanggil daripada PHP menggunakan `shell_exec`?

Mary-Kate Olsen
Lepaskan: 2024-11-04 03:17:30
asal
411 orang telah melayarinya

Why is my Bash script failing to execute when called from PHP using `shell_exec`?

Melaksanakan Perintah Bash daripada PHP: Menyelesaikan Masalah Perlaksanaan Skrip Gagal

Dalam soalan ini, kami menghadapi pembangun PHP yang cuba melaksanakan skrip bash daripada PHP menggunakan shell_exec. Sintaks yang digunakan ialah:

<code class="php">$output = shell_exec("./script.sh var1 var2");</code>
Salin selepas log masuk

Walau bagaimanapun, skrip gagal dilaksanakan apabila arahan ini dipanggil.

Untuk menyahpepijat isu ini, adalah penting untuk mengenal pasti punca kegagalan. Memandangkan skrip berjaya dilaksanakan apabila berjalan melalui baris arahan menggunakan ./script.sh var1 var2, masalahnya mungkin terletak dalam kod PHP.

Satu isu biasa yang boleh menyebabkan kegagalan pelaksanaan skrip ialah kebenaran atau laluan direktori yang salah . Skrip PHP selalunya memerlukan direktori kerja yang betul untuk ditetapkan sebelum melaksanakan arahan luaran. Untuk menyelesaikan masalah ini, kod boleh menentukan direktori yang betul menggunakan chdir sebelum memanggil shell_exec.

Coretan berikut menangani isu ini:

<code class="php">$old_path = getcwd();
chdir('/my/path/');
$output = shell_exec('./script.sh var1 var2');
chdir($old_path);</code>
Salin selepas log masuk

Dalam contoh ini, kami:

  1. Simpan direktori kerja semasa dalam $old_path.
  2. Tukar direktori kerja kepada '/my/path/' menggunakan chdir.
  3. Laksanakan skrip bash menggunakan shell_exec.
  4. Tukar kembali ke direktori kerja asal menggunakan chdir($old_path).

Dengan memastikan direktori yang betul disediakan, kod yang diubah suai ini seharusnya berjaya melaksanakan skrip bash daripada PHP.

Atas ialah kandungan terperinci Mengapa skrip Bash saya gagal dilaksanakan apabila dipanggil daripada PHP menggunakan `shell_exec`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!