Rumah >pembangunan bahagian belakang >tutorial php >Mengapa Fungsi PHP exec() Saya Tidak Berfungsi?

Mengapa Fungsi PHP exec() Saya Tidak Berfungsi?

Linda Hamilton
Linda Hamiltonasal
2024-12-14 21:37:19684semak imbas

Why Isn't My PHP exec() Function Working?

Fungsi Menyelesaikan masalah exec() dalam PHP

Menghadapi masalah dengan fungsi exec() boleh mengecewakan, terutamanya apabila ia tidak menghasilkan sebarang hasil yang jelas. Artikel ini menyediakan panduan komprehensif untuk membantu anda nyahpepijat dan menyelesaikan masalah sedemikian.

Masalah:
Fungsi exec() gagal melaksanakan arahan pada pelayan, walaupun telah melumpuhkan safe_mode dan mengesahkan kefungsian arahan konsol. Kebenaran untuk aplikasi telah ditetapkan dengan betul.

Coretan Kod:
Coretan kod berikut telah dicuba:

echo exec('/usr/bin/whoami');

echo exec('whoami');

exec('whoami 2>&1',$output,$return_val);
if($return_val !== 0) {
    echo 'Error<br>';
    print_r($output);   
}

exec('/usr/bin/whoami 2>&amp;1',$output,$return_val);
if($return_val !== 0) {
    echo 'Error<br>';
    print_r($output);   
}

Dua coretan kod terakhir memaparkan ralat dan tatasusunan kosong. Sokongan pelayan tidak dapat membantu.

Penyelesaian:

  1. Semak disable_functions:

    • Navigasi ke /etc/php.ini dan semak jika exec disenaraikan di bawah disable_functions.
    • Jika ada, alih keluarnya dan mulakan semula Apache.
  2. Dayakan Mod Nyahpepijat:

    • Untuk penyahpepijatan yang lebih mudah, gunakan yang berikut kod:

      #!/usr/bin/php
      ini_set("display_errors", 1);
      ini_set("track_errors", 1);
      ini_set("html_errors", 1);
      error_reporting(E_ALL);
    • Laksanakan skrip secara manual: chmod x myscript.php dan ./myscript.php.
  3. Kebenaran Isu:

    • Buat skrip bash yang dilaksanakan arahan mudah, cth., gema "hello world."
    • Tetapkan kebenaran untuk fail dan folder menggunakan chmod 755.
    • Cuba jalankan skrip.

Atas ialah kandungan terperinci Mengapa Fungsi PHP exec() Saya Tidak Berfungsi?. 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