Мне нужна помощь в: Как включить PCNTL в Ubuntu PHP.
$ mkdir /tmp/phpsource $ cd /tmp/phpsource $ wget http://museum.php.net/php5/php-5.3.2.tar.gz $ tar xvf php-5.3.2.tar.gz $ cd php-5.3.2/ext/pcntl $ phpize -bash: phpize: command not found
Все прошло нормально, пока я не попытался запустить phpize! И затем я получаю сообщение об ошибке '-bash: phpize: command not found' ?? Есть идеи?
UPDATE:
$ sudo apt-get update
и затем побежал:
$ sudo apt-get install php5-dev
С помощью Ник мне удалось закончить процедуру. Но «сделать тест» не удается?
$ phpize $ ./configure $ make $ cp modules/pcntl.so /usr/lib/php5/20090626/ $ echo "extension=pcntl.so" > /etc/php5/conf.d/pcntl.ini $ make test - FAILED!
HELP: Я набрал расширение «echo» = pcntl.so> /etc/php5/conf.d/pcntl.ini 'вместо расширения echo extension = pcntl.so "> /etc/php5/conf.d/pcntl.ini «В первый раз я побежал. Это ПЛОХО?
——————————— Сделать сообщения об ошибках TEst ————- ————————-
PHP Deprecated: Comments starting with '#' are deprecated in /tmp/phpsource/php-5.3.2/ext/pcntl/tmp-php.ini on line 1850 in Unknown on line 0 PHP Deprecated: Comments starting with '#' are deprecated in /tmp/phpsource/php-5.3.2/ext/pcntl/tmp-php.ini on line 1852 in Unknown on line 0 PHP Deprecated: Comments starting with '#' are deprecated in /tmp/phpsource/php-5.3.2/ext/pcntl/tmp-php.ini on line 1850 in Unknown on line 0 PHP Deprecated: Comments starting with '#' are deprecated in /tmp/phpsource/php-5.3.2/ext/pcntl/tmp-php.ini on line 1852 in Unknown on line 0 PHP Warning: Module 'pcntl' already loaded in Unknown on line 0 Warning: Module 'pcntl' already loaded in Unknown on line 0 PHP Deprecated: Comments starting with '#' are deprecated in /tmp/phpsource/php-5.3.2/ext/pcntl/tmp-php.ini on line 1850 in Unknown on line 0 PHP Deprecated: Comments starting with '#' are deprecated in /tmp/phpsource/php-5.3.2/ext/pcntl/tmp-php.ini on line 1852 in Unknown on line 0 PHP Warning: Module 'pcntl' already loaded in Unknown on line 0 Warning: Module 'pcntl' already loaded in Unknown on line 0 ===================================================================== PHP : /usr/bin/php PHP_SAPI : cli PHP_VERSION : 5.3.2-1ubuntu4.18 ZEND_VERSION: 2.3.0 PHP_OS : Linux - Linux lvps217-8-253-63.vps.webfusion.co.uk 2.6.32-042stab068.8 #1 SMP Fri Dec 7 17:06:14 MSK 2012 x86_64 INI actual : /tmp/phpsource/php-5.3.2/ext/pcntl/tmp-php.ini More .INIs : CWD : /tmp/phpsource/php-5.3.2/ext/pcntl Extra dirs : VALGRIND : Not used ===================================================================== TIME START 2013-01-02 23:05:56 ===================================================================== FAIL Test pcntl wait functionality [tests/001.phpt] FAIL pcntl: pcntl_sigprocmask(), pcntl_sigwaitinfo(), pcntl_sigtimedwait() [tests/002.phpt] FAIL pcntl: SIG_BLOCK, SIG_UNBLOCK, SIG_SETMASK [tests/003.phpt] FAIL Bug #47566 (return value of pcntl_wexitstatus()) [tests/bug47566.phpt] FAIL pcntl_alarm() [tests/pcntl_alarm.phpt] FAIL pcntl_exec() [tests/pcntl_exec.phpt] FAIL pcntl_exec() 2 [tests/pcntl_exec_2.phpt] FAIL pcntl_exec() 3 [tests/pcntl_exec_3.phpt] FAIL Test function pcntl_fork() by calling it with its expected arguments [tests/pcntl_fork_basic.phpt] FAIL Test function pcntl_fork() by testing the process isolation in the forking hierarchy father -> son -> grandson where father can not knows his grandson [tests/pcntl_fork_variation.phpt] FAIL pcntl_signal() [tests/pcntl_signal.phpt] FAIL pcnt_signal_dispatch() [tests/pcntl_signal_dispatch.phpt] FAIL pcntl_wait() [tests/pcntl_wait.phpt] FAIL Closures as a signal handler [tests/signal_closure_handler.phpt] ===================================================================== TIME END 2013-01-02 23:05:59 ===================================================================== TEST RESULT SUMMARY --------------------------------------------------------------------- Exts skipped : 0 Exts tested : 44 --------------------------------------------------------------------- Number of tests : 14 14 Tests skipped : 0 ( 0.0%) -------- Tests warned : 0 ( 0.0%) ( 0.0%) Tests failed : 14 (100.0%) (100.0%) Expected fail : 0 ( 0.0%) ( 0.0%) Tests passed : 0 ( 0.0%) ( 0.0%) --------------------------------------------------------------------- Time taken : 3 seconds ===================================================================== ===================================================================== FAILED TEST SUMMARY --------------------------------------------------------------------- Test pcntl wait functionality [tests/001.phpt] pcntl: pcntl_sigprocmask(), pcntl_sigwaitinfo(), pcntl_sigtimedwait() [tests/002.phpt] pcntl: SIG_BLOCK, SIG_UNBLOCK, SIG_SETMASK [tests/003.phpt] Bug #47566 (return value of pcntl_wexitstatus()) [tests/bug47566.phpt] pcntl_alarm() [tests/pcntl_alarm.phpt] pcntl_exec() [tests/pcntl_exec.phpt] pcntl_exec() 2 [tests/pcntl_exec_2.phpt] pcntl_exec() 3 [tests/pcntl_exec_3.phpt] Test function pcntl_fork() by calling it with its expected arguments [tests/pcntl_fork_basic.phpt] Test function pcntl_fork() by testing the process isolation in the forking hierarchy father -> son -> grandson where father can not knows his grandson [tests/pcntl_fork_variation.phpt] pcntl_signal() [tests/pcntl_signal.phpt] pcnt_signal_dispatch() [tests/pcntl_signal_dispatch.phpt] pcntl_wait() [tests/pcntl_wait.phpt] Closures as a signal handler [tests/signal_closure_handler.phpt]
Есть идеи!?! деревенщина
Вот что я нашел в Ubuntu 12.04:
Проверьте свой PHP.ini, чтобы функции pnctl были отключены.
disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority
phpinfo сообщает, что функция уже загружена, но на самом деле она не работает, не помещая файл pcntl.ini в файл /etc/php5/conf.d.
К сожалению, это вызывает ошибки «модуля уже загружены» каждый раз при очистке сеанса PHP-сессии cron в /etc/cron.d, но PCNTL не будет работать без обоих этих элементов на месте, и до сих пор я не нашел хорошего решение для отключения «уже загруженной» ошибки. Его грязный и уродливый, и спам моей корневой почты, и когда я смогу найти решение, я отправлю его. До сих пор я столкнулся с этой проблемой в 12.04.
ОБНОВИТЬ
Я взломал файл сценария / usr / lib / php5 / maxlifetime, чтобы остановить спам с ошибками pnctl ( PHP Warning: Module 'pcntl' уже загружен в Unknown в строке 0 ). Вот мои изменения – я специально добавил в строку «E_DEPRECATED», чтобы успокоить сообщения.
Строка 8:
cur=$(php5 -c /etc/php5/${sapi}/php.ini -d "error_reporting='E_ALL & ~E_DEPRECATED'" -r 'print ini_get("session.gc_maxlifetime");' 2> /dev/null)
Существует несколько таких шагов: (моя ОС – debian7.2 xfce x86).
1: я устанавливаю pcntl, как это
#mkdir php #cd php #apt-get source php5 #cd php5-5.4.4/ext/pcntl #phpize #./configure #make #echo "extension=pcntl.so" > /etc/php5/mods-available/pcntl.ini #ln -s /etc/php5/mods-available/pcntl.ini /etc/php5/conf.d/pcntl.ini
2: когда перезагружается nginx или apache2, php получает одно предупреждение.
«Предупреждение PHP: модуль« pcntl »уже загружен в Unknown в строке 0»
3: так что я
"rm -rf /etc/php5/mods-available/pcntl.ini и /etc/php5/conf.d/pcntl.ini"
4: отредактируйте файл «php.ini».
a.apache2, it's in "/etc/php5/apache2/php.ini" b.cgi like nginx,it's in "/etc/php5/cgi/php.ini"
сделать
"disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited..." comments, add " ; " in front of "disable_functions".
перезагрузите сервер, и предупреждение исчезло.
На моей машине dev с ubuntu 12.10 (и более ранними версиями тоже) pcntl уже включен.
$ php -m | grep pcntl pcntl
Я предполагаю, что проблема:
PHP Предупреждение: модуль «pcntl» уже загружен в Unknown в строке 0
Поэтому просто не устанавливайте его снова.
Мне НЕОБХОДИМО перезапустить сервер! И теперь это работает! Doh .. Спасибо за вклад каждогоbodys.
В Ubuntu 15.04, pcntl устанавливается в php CLI, но по умолчанию отключен. Чтобы включить, отредактируйте /etc/php5/cli/php.ini и закомментируйте строку:
disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,
Если вы хотите, чтобы они были включены в apache2, отредактируйте файл /etc/php5/apache2/php.ini и выполните одно и то же изменение.
Может быть целесообразно только удалить функции, которые вам нужны для использования, с тем чтобы сохранить как можно больше ограничений безопасности.