У меня есть веб-приложение, и оно отлично работает с PHP 5.5.5 в производственной среде.
Теперь на том же сервере мне нужно запустить несколько PHP-скриптов, использующих php pthread (v. 2.0.10)
Это безопасно перестроить php с --enable-maintainer-zts
(чтобы разрешить использование pthreads) и использовать тот же исполняемый файл и то и другое для веб-приложения и скриптов CLI, использующих php-pthread ?
Или я должен сделать две сборки PHP: php
, php-zts
и использовать первый для веб-приложения, а второй для сценариев CLI?
Как --enable-maintainer-zts
не включен по умолчанию, я предполагаю, что у него есть некоторые недостатки или хуже (как я читал здесь https://github.com/travis-ci/travis-ci/issues/985) может вводить неправильное поведение (ошибки).
Веб-стек Nginx + PHP-FPM + MYSQL в Mac OS X 10.9.5.
Я хочу чтобы это было понятно phtread будут не использоваться сценариями веб-приложения. Только по сценариям CLI.
От http://www.phpinternalsbook.com/build_system/building_php.html
(акцент мой)
[…]
--enable-debug
включает режим отладки[…]
--enable-maintainer-zts
обеспечивает безопасность потока.Вы не должны использовать ни один из этих вариантов если вы хотите выполнить тесты производительности для вашего кода, так как оба могут вызвать значительное и асимметричное замедление.
--enable-maintainer-zts
кажется, не вредно, но влияет на выступления. Так что это определенно не рекомендуется в производственной среде.
Отдельная сборка PHP с --enable-maintainer-zts
для того, чтобы использовать php pthread в скриптах CLI — это правильный путь.
Других решений пока нет …