Bagaimana Anda memeriksa apakah exec diaktifkan di php?

Kesalahan fatal PHP. Fungsi ini telah dinonaktifkan karena alasan keamanan di /wp-content/plugins/webp-express/vendor/rosell-dk/webp-convert/src/Convert/Converters/Cwebp. php online 576

Saya mengerti bahwa itu tidak akan bekerja dengan fungsi exec dinonaktifkan tetapi saya percaya konfigurasi plugin seharusnya tidak memberikan kesalahan fatal, solusinya akan menyenangkan

Melihat 15 balasan - 1 hingga 15 (dari total 29)

1 2 →

  • Pengarang Plugin rosell. dk

    (@roselldk)

    Astaga. Kesalahan ini tentu saja harus ditangkap. Kode saat ini hanya menangkap jika \Exception dilemparkan. Namun, PHP 7 dan 8 akan menampilkan \Error. Itu mudah diperbaiki. Terima kasih telah melaporkan

    Pengarang Plugin rosell. dk

    (@roselldk)

    Hanya pada halaman pengaturan kesalahan tidak tertangkap (semua konverter diuji untuk ditampilkan apakah berfungsi atau tidak) – tetapi itu sudah cukup buruk

    • Balasan ini telah diubah 1 tahun, 1 bulan yang lalu oleh rosell. dk .

    Pemula Utas javierdemuga

    (@javierdemuga)

    Hanya untuk memberi tahu Anda, itu masih terjadi pada versi terakhir 0. 24. 1

    / pilihan-umum. php?page=webp_express_settings_page
    Kesalahan Kritis

    Pengarang Plugin rosell. dk

    (@roselldk)

    Nyebelin… Dan terima kasih

    Saya telah mencoba untuk meniru, tetapi tidak bisa
    – Saya menjalankan PHP 8. 0
    – Saya menonaktifkan fungsi exec() di PHP. ini, dengan menambahkan "exec" ke daftar "disable_functions".

    Hasil
    Halaman opsi muncul dengan baik. Konverter cwebp menunjukkan tidak berfungsi. Teks bantuan mengatakan "exec() tidak diaktifkan". Dengan kata lain. Semuanya baik baik saja

    Bisakah Anda memberi tahu saya host mana yang Anda gunakan? . Plugin saya menguji apakah fungsi exec tersedia menggunakan "function_exists('exec')", sehingga tampaknya di host Anda, function_exists('exec') akan menghasilkan true, meskipun dinonaktifkan. Bisakah Anda menguji skrip berikut untuk saya di host Anda? . php” dengan isi sebagai berikut, arahkan browser anda ke script test lalu copy hasilnya disini)

    <?php
    
    if (function_exists('ini_get')) {
      $disabled = ini_get('disable_functions');
      echo '<p>disabled functions: ' . print_r($disabled, true) . '</p>';
    } else {
      echo '<p>ini_get not available</p>';
    }
    if (function_exists('exec')) {
      echo 'exec() function exists';
      try {
        exec('echo hi');
        echo '<br>exec() function was called successfully';
      }
      catch (\Throwable $e) {
        echo 'Error was catched:' . $e->getMessage();
      }
      catch (\Exception $e) {
        echo 'Exception was catched:' . $e->getMessage();
      }
    } else {
      echo 'exec() function does not exist';
    }
    exit;
    • Balasan ini telah diubah 1 tahun, 1 bulan yang lalu oleh rosell. dk .
    • Balasan ini telah diubah 1 tahun, 1 bulan yang lalu oleh rosell. dk .

    Pengarang Plugin rosell. dk

    (@roselldk)

    @javierdemuga. Apakah Anda melihat pesan saya?

    Saya telah memperbaiki bug lain dan ingin segera melakukan pembaruan

    Pemula Utas javierdemuga

    (@javierdemuga)

    Hai @roselldk

    Hasilnya adalah

    fungsi yang dinonaktifkan. sistem, exec, passthru, popen, proc_open, shell_exec, dl, set_time_limit, syslog

    exec() fungsi tidak ada

    Kesalahan fatal PHP. Fungsi ini telah dinonaktifkan karena alasan keamanan di /usr/home/ceroresiduo. com/web/wp-content/plugins/webp-express/vendor/rosell-dk/webp-convert/src/Convert/Converters/Cwebp. php online 577

    Hosting saya memberi tahu saya bahwa mereka hanya mengizinkan eksekusi melalui komposer
    proc_open (exec) dan mereka mengkompilasi php seperti itu tetapi saya tidak begitu yakin apa artinya

    Pengarang Plugin rosell. dk

    (@roselldk)

    Kesalahan fatal mengatakan bahwa itu dipicu di Cwebp. php online 577. Apakah Anda menyertakan file itu di php pengujian Anda atau apa yang terjadi?

    Saya yakin skrip kecil ini juga akan memicu kesalahan fatal?

    <?php
    echo 'hi';
    
    _
    • Balasan ini telah diubah 1 tahun, 1 bulan yang lalu oleh rosell. dk .
    • Balasan ini telah diubah 1 tahun, 1 bulan yang lalu oleh rosell. dk .

    Pemula Utas javierdemuga

    (@javierdemuga)

    Ah tidak, maaf saya baru saja menambahkan lagi kesalahan php yang terjadi di halaman pengaturan, pengujiannya hanya bagian itu

    fungsi yang dinonaktifkan. sistem, exec, passthru, popen, proc_open, shell_exec, dl, set_time_limit, syslog

    exec() fungsi tidak ada

    Maaf atas kesalahpahaman ini

    Pengarang Plugin rosell. dk

    (@roselldk)

    Ah, oke 🙂
    Maka itu harus mungkin untuk menghindari kesalahan. Saya cukup terkejut Anda mendapatkan kesalahan pada halaman pengaturan. Tetapi saya akan melihat apakah saya dapat melacak apa yang terjadi. Saya tentu saja dapat menguji fungsi exec() tepat sebelum baris yang gagal

    Menarik bahwa host Anda mengizinkan proc_open(), tetapi tidak exec(). Jika itu yang mereka maksud. Saya juga tidak mengerti bagian tentang komposer. Tapi kami dapat dengan cepat menguji apakah proc_open() berfungsi pada pengaturan Anda

    <?php
    if (function_exists('proc_open')) {
      echo 'proc_open() function exists<br>';
      $proc = proc_open('echo', array(1 => array('pipe', 'w'), 2 => array('pipe', 'w')), $pipes);
      if (is_resource($proc)) {
        echo 'proc_open seems to work';
      } else {
        echo 'proc_open does not work';
      }
      proc_close($proc);
    } else {
      echo 'proc_open() function does not exist';
    }
    exit;
    • Balasan ini telah diubah 1 tahun, 1 bulan yang lalu oleh rosell. dk .

    Pemula Utas javierdemuga

    (@javierdemuga)

    proc_open juga dinonaktifkan

    Hasil dari kode
    fungsi proc_open() tidak ada

    Pengarang Plugin rosell. dk

    (@roselldk)

    Memalukan. Karena saya baru saja menulis perpustakaan agar mudah kembali ke proc_open() dan fungsi lainnya, ketika exec() tidak tersedia. Saya berencana untuk mengintegrasikan perpustakaan baru ini ke dalam webp-convert agar konverter berbasis exec() (yaitu cwebp) bekerja pada lebih banyak sistem

    • Balasan ini telah diubah 1 tahun, 1 bulan yang lalu oleh rosell. dk .
    • Balasan ini telah diubah 1 tahun, 1 bulan yang lalu oleh rosell. dk .
    • Balasan ini telah diubah 1 tahun, 1 bulan yang lalu oleh rosell. dk .

    Pemula Utas javierdemuga

    (@javierdemuga)

    Sebenarnya saya baru saja berbicara dengan dukungan hosting dan sepertinya ekstensi GD sudah terpasang dan aktif

    Ketika saya menggunakan PHP 7. 4 semuanya bekerja dengan lancar, juga dengan exec dan proc_open dinonaktifkan menggunakan ekstensi GD tetapi ketika saya beralih ke PHP 8. 0 gambar tidak dibuat dan kesalahan fatal tetap ada di halaman pengaturan jadi saya tidak dapat memeriksa apakah GD berfungsi (seharusnya. )

    Pemula Utas javierdemuga

    (@javierdemuga)

    Hai @roselldk sedang menggali kode, saya dapat melihat bahwa function detectVersion($binary) memanggil langsung exec tanpa mengontrol if function_exists exec

    Dari kode yang saya lihat saya bisa menonaktifkan opsi try-cwebp dan mungkin itu bisa membantu menghindari kesalahan Fatal di PHP8, dari apa yang saya lihat dengan PHP8 itu akan selalu mengembalikan Fatal Error dengan konfigurasi default jika fungsi exec dinonaktifkan

    Bisakah Anda memberikan panduan tentang cara menonaktifkan opsi try-cwebp? . 4 tetapi pada PHP 8 fungsi yang dinonaktifkan memberikan Kesalahan Fatal dan setiap upaya untuk memodifikasi gambar ke webp memberikan kesalahan fatal, tidak hanya halaman pengaturan (walaupun saya telah memilih opsi GD, saya dapat melihatnya di PHP7. 4)

    Pengarang Plugin rosell. dk

    (@roselldk)

    @javierdemuga. Mungkin itu berhasil sekarang. Saya telah mengimplementasikan exec() fallback thingie. Meskipun saya tidak dapat menunjukkan perubahan spesifik apa pun, yang memperbaiki bug, salah satu perubahan mungkin terjadi, karena saya berbaur dengan semua hal-hal exec. Ini dirilis sebagai 0. 25. 0

    Jika tidak berhasil, saya akan menyelam sekali lagi. Tapi itu aneh. Saya memasukkan pesan debug, menggunakan error_log() yang gagal untuk Anda. Tapi saya tidak mendapatkan apa pun di log saat saya menonaktifkan exec(). Di kelas AbstractConverter, metode “doConvertImplementation” memanggil checkOperationality() sebelum memanggil convert. Dengan kata lain. Jika pemeriksaan operasional gagal, metode doActualConvert() di Cwebp. php tidak akan dipanggil. Dan doActualConvert() adalah satu-satunya metode yang memanggil detectVersion(). Pemeriksaan operasional dilakukan di ExecTrait. php, baris 101 (checkOperationalityExecTrait()). Dulu function_exists('exec'), tapi baru saja diubah menjadi "ExecWithFallback. anyAvailable()”

    • Balasan ini telah diubah 1 tahun, 1 bulan yang lalu oleh rosell. dk .
    • Balasan ini telah diubah 1 tahun, 1 bulan yang lalu oleh rosell. dk .

    javiercabezas

    (@javiercabezas)

    Hai @roselldk, saya menerima kesalahan yang mirip dengan yang ditunjukkan oleh @javierdemuga

    Saya baru saja memperbarui hari ini ke versi terbaru, tetapi masih terjadi ketika saya mencoba mengakses halaman pengaturan

    Bagaimana cara mengaktifkan fungsi exec php?

    Cara mengaktifkan exec() .
    Buka php.ini Anda. ini dan temukan bagian berikut
    Hapus exec dari baris dan klik Save Changes
    Jika Anda perlu menonaktifkan show_source, system atau shell_exec juga, tambahkan saja kembali ke baris dan simpan perubahannya

    Bagaimana Anda tahu jika seorang eksekutif berhasil?

    Anda menulis, "Anda dapat menggunakan status keluar dari perintah yang dijalankan oleh exec untuk melihat apakah berhasil atau tidak ". Orang tua dapat melihat status keluar ini. Proses yang memanggil exec hanya akan berlanjut jika exec itu sendiri gagal. Setelah eksekutif memulai program pengganti, tidak ada yang tersisa dari proses pemanggilan.

    Apa gunanya exec () di php?

    Fungsi exec() adalah fungsi bawaan dalam PHP yang digunakan untuk mengeksekusi program eksternal dan mengembalikan baris terakhir dari keluaran . Itu juga mengembalikan NULL jika tidak ada perintah yang dijalankan dengan benar.

    Bagaimana cara menggunakan Shell_exec di php?

    shell_exec() Fungsi. Fungsi shell_exec() adalah fungsi bawaan di PHP yang digunakan untuk mengeksekusi perintah melalui shell dan mengembalikan hasil lengkap sebagai string. Shell_exec adalah alias untuk operator backtick, untuk yang digunakan untuk *nix