Melaksanakan Perintah Bash daripada PHP: Menyelesaikan Masalah Skrip Tidak Melaksana
Seorang pengguna mengalami kesukaran melaksanakan skrip Bash daripada fail PHP. Walaupun percubaan untuk menggunakan shell_exec dan sistem, skrip tetap tidak dilaksanakan. Walau bagaimanapun, arahan lain seperti "ls" berfungsi dengan betul menggunakan shell_exec.
Potensi Punca dan Penyelesaian:
Isu yang berkemungkinan besar berpunca daripada melaksanakan skrip daripada direktori yang salah. Untuk menyelesaikan masalah ini, pengguna perlu menukar direktori kerja semasa kepada direktori di mana skrip berada sebelum melaksanakannya. Ini memastikan konteks yang betul untuk skrip dilaksanakan.
Snippet Kod:
Coretan kod berikut menunjukkan cara untuk melaksanakan skrip Bash dengan betul:
<code class="php">$old_path = getcwd(); chdir('/my/path/'); // Change to the script's directory $output = shell_exec('./script.sh var1 var2'); chdir($old_path); // Return to the previous working directory</code>
Dalam kod ini, getcwd() mendapatkan semula direktori kerja semasa, chdir('/my/path/') menetapkan direktori kerja kepada laluan skrip, shell_exec('./script.sh var1 var2') melaksanakan skrip dengan argumen yang diberikan, dan chdir($old_path) kembali ke direktori kerja sebelumnya.
Atas ialah kandungan terperinci Mengapa Skrip Bash Saya Tidak Melaksanakan daripada PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!