Saya baru-baru ini menyusun biner PHP 5.2.9 , dan saya mencoba mengeksekusi beberapa skrip PHP dengannya. Saya dapat menjalankan beberapa skrip tanpa masalah, tetapi salah satunya menghentikan eksekusi di tengah jalan, keluar tanpa kesalahan atau peringatan. Kode status yang dikembalikan dari proses adalah 255.
Saya sudah membaca dalam manual bahwa status seperti itu 'dicadangkan'. Pertanyaannya adalah: untuk apa?
Saya percaya itu ada hubungannya dengan dependensi yang hilang di eksekusi PHP, tapi saya tidak yakin.
Adakah yang tahu apa arti dari kode keluar 255?
PS Tidak ada kesalahan dalam skrip PHP, mereka menjalankan OK di mesin lain.
php.ini
file yang rusak (yaitu file tersebut memiliki karakter yang rusak di dalamnya). Butuh waktu 2 jam untuk mencari tahu ini. Tip: Jika skrip Anda (yaitucomposer.phar
) berfungsi dengan baikphp -n composer.phar
, makaphp.ini
file Anda mungkin rusak.Ini juga bisa berarti bahwa
/etc/php5/cli/php.ini
(pada Debian / Ubuntu) atau/etc/php.ini
(pada RHEL / CentOS / dll.) Memilikidisplay_errors = Off
yang berarti bahwa setiap kesalahan atau peringatan dari skrip baris perintah tidak akan ke mana-mana, kecualilog_errors = On
(lihat jugaerror_log
pengaturan).Coba jalankan skrip Anda dengan skrip pembungkus yang menggunakan
php -d display_errors=on ...
sumber
-d display_errors=on
tipnya — saya mencoba men-debug skrip khusus untuk aplikasi PHP seseorang yang mencoba menangani semua pengecualian dengan log on sendiri, tetapi sering memakan pengecualian. Menggunakan bendera itu saya bisa mendapatkan pengecualian untuk mencetak ke CLI!Ini mungkin disebabkan oleh pesan kesalahan PHP yang ditekan (baris dimulai dengan @). Saya menemukan garis dengan
dan kemudian berkomentar @. Setelah ini saya mendapatkan kesalahan aktual dan dapat memperbaikinya dengan mudah. Saya juga memperhatikan setelah itu bahwa PHPStorm telah menemukan kesalahan yang sama, tetapi saya belum memperbaikinya.
sumber
Itu juga bisa berarti itu
/etc/php5/cli/php.ini (di Debian / Ubuntu)
/etc/php.ini (di RHEL / CentOS / dll.)
telah ditetapkan
yang berarti bahwa setiap kesalahan atau peringatan dari skrip baris perintah tidak akan ke mana-mana, kecuali
Lihat juga pengaturan error_log.
Coba jalankan skrip Anda dengan pembungkus
sumber
Dalam kasus saya itu adalah kematian xDebug karena
xdebug.max_nesting_level
nilai rendah .sumber