Компиляция потока PHP не работает

Я пытаюсь использовать pthreads с Apache FPM.

Шаг 1.

После установки и перекомпиляции php в соответствии с:

https://blog.programster.org/ubuntu16-04-compile-php-7-2-with-pthreads

Сервер работает, как и ожидалось, и я могу запускать pthreads из CLI.

Шаг 2.

Затем мне нужно запускать потоки с веб-сервера, поэтому я следовал инструкциям:

https://antrecu.com/blog/run-php7-fpm-apache-mpmevent-ubuntu-1604

После sudo service apache2 restart && sudo service php7.0-fpm restart:

Job for apache2.service failed because the control process exited with error code. 
See "systemctl status apache2.service" and "journalctl -xe" for details.

$ systemctl status apache2.service

apache2.service - LSB: Apache2 web server

   Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled)

  Drop-In: /lib/systemd/system/apache2.service.d

           └─apache2-systemd.conf
   Active: failed (Result: exit-code) since Mon 2018-03-12 17:09:45 PDT; 3min 35s ago

     Docs: man:systemd-sysv-generator(8)


  Process: 30818 ExecStop=/etc/init.d/apache2 stop (code=exited, status=0/SUCCESS)

  Process: 32443 ExecStart=/etc/init.d/apache2 start (code=exited, status=1/FAILURE)


Mar 12 17:09:45 ubuntu apache2[32443]:  * The apache2 configtest failed.

Mar 12 17:09:45 ubuntu apache2[32443]: Output of config test was:

Mar 12 17:09:45 ubuntu apache2[32443]: [Mon Mar 12 17:09:45.084452 2018] [:crit] [pid 32454:tid 139629110323072] 

Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe.  You n.. (output cut off in SSH client)

Mar 12 17:09:45 ubuntu apache2[32443]: AH00013: Pre-configuration failed

Mar 12 17:09:45 ubuntu apache2[32443]: Action 'configtest' failed.

Mar 12 17:09:45 ubuntu apache2[32443]: The Apache error log may have more information.

Mar 12 17:09:45 ubuntu systemd[1]: apache2.service: Control process exited, code=exited status=1

Mar 12 17:09:45 ubuntu systemd[1]: Failed to start LSB: Apache2 web server.

Mar 12 17:09:45 ubuntu systemd[1]: apache2.service: Unit entered failed state.

Излишне говорить, что я новичок, когда дело доходит до компиляции пакетов Linux.

Какие-либо предложения?


person pigfox    schedule 13.03.2018    source источник


Ответы (1)


Я пытаюсь использовать pthreads с Apache FPM.

Вы не можете. Найдите способ работать без них.

Расширение pthreads нельзя использовать в среде веб-сервера. Поэтому многопоточность в PHP ограничена только приложениями на основе CLI.

-- http://php.net/manual/en/intro.pthreads.php< /а>

person Community    schedule 13.03.2018
comment
Интересно, в этой теме: stackoverflow.com/questions/49183807/parallel-asynchronous-php Дело не в том, что pthreads несовместим с apache, а в том, что он несовместим с mod_php. Используйте рабочую модель FCGI, такую ​​как FPM, и вы можете использовать pthreads сколько угодно. Я неправильно понимаю это? - person pigfox; 14.03.2018
comment
Этот ответ неверен. Автор расширения pthreads для PHP прямо заявил, что вы не можете безопасно и разумно использовать pthreads где угодно, кроме Интерфейс командной строки. FPM — это не интерфейс командной строки. - person ; 14.03.2018
comment
Кроме того, многопоточность в среде веб-сервера вообще не имеет смысла. - person Charlotte Dunois; 16.03.2018