Penyelesaian kepada kegagalan garpu php pcntl: 1. Semak sama ada php.ini dimuatkan dengan sambungan pcntl 2. Semak sama ada komposer telah memasang ext-pcntl 3. Gunakan pcntl_fork dalam mod CGI atau baris arahan .
Persekitaran pengendalian tutorial ini: sistem Windows 10, PHP versi 8.1, komputer DELL G3
Apakah yang perlu saya lakukan jika garpu php pcntl gagal?
pcntl_fork() mengembalikan ralat maut: Memanggil undefined function pcntl_fork()
Saya mahu menggunakannya pada projek yang dijalankan pada mac menggunakan persekitaran bersepadu mamp untuk fungsi pcntl_fork(), tetapi perkara yang aneh ialah saya menyemak bahawa php.ini telah memuatkan sambungan pcntl, dan komposer juga telah memasang ext-pcntl, tetapi apabila saya memanggilnya, ia akan melaporkan fungsi yang tidak ditentukan pcntl_fork(), dan saya telah mencari dalam banyak arah tetapi tidak dapat menyelesaikannya, satu perkara yang perlu diperhatikan ialah PCNTL tidak tersedia pada platform Windows.
$pid = pcntl_fork(); if($pid == -1){ file_put_contents('testlog.log',"\r\nFork Test",FILE_APPEND); return 1; //error } else if($pid){ return 0; //success } else{ file_put_contents($log, 'Running...', FILE_APPEND); }
Kemudian menemui jawapan pada stackoverflow:
Modul fungsi 'pcntl_fork' tidak boleh digunakan apabila menggunakan Apache sebagai pelayan php (cth. XAMPP). Anda hanya boleh menggunakan pcntl_fork dalam mod CGI atau baris arahan.
Jadi. . . Menukar pelayan kepada nginx boleh menyelesaikan masalah.
Pembelajaran yang disyorkan: "Tutorial Video PHP"
Atas ialah kandungan terperinci Apa yang perlu dilakukan jika garpu php pcntl gagal. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!