Intereting Posts
Как ограничить специальные символы, кроме подчеркивания, дефиса и точки в поле электронной почты в PHP? Не удалось подключиться к внешней базе данных SSL Postgres с Debian (ошибки разрешения сертификата) перенос слов не позволяет переносить номера также PHP Добавление 15 минут к значению времени Производительность API PHP 5 Reflection htmlentities с исключениями Не удается разрешить метод getStringArrayList, когда я создаю фильтр поиска для Listview Как работает кнопка «Поделиться» Facebook при переполнении стека? Используя шаблон Data Mapper, должны ли объекты (объекты домена) знать о Mapper? Как эхо текст заглавными буквами? Установка PHP на окна УДАЛЕНИЕ любой записи в любой таблице в базе данных, если feildx = 123 Как хранить значения NULL в полях datetime в MySQL? Как использовать открытый идентификатор в качестве системы входа в систему размещение переменных PHP внутри файла javascript

Динамически настроить PHP для обеспечения безопасности потоков –enable-maintainer-zts или использовать yum для установки pthreads?

Есть ли способ включить безопасность потоков в PHP без перекомпиляции или использовать YUM для этого?

Я пытаюсь установить pthreads, и для этого требуется, чтобы PHP был скомпилирован с помощью --enable-maintainer-zts . Однако мне не нужно перекомпилировать, потому что я хотел бы управлять своим PHP-стеком, используя yum. В настоящее время я использую репозиторий REMI. Я заметил, что есть пакет php-zts, однако для моей версии PHP версии 4.4 нет одного, и я не могу найти RPM-источник для php-zts.

Есть ли способ, которым я могу использовать yum и включить безопасность потоков в PHP, поэтому я могу установить pThread, используя

 #pecl install channel://pecl.php.net/pthreads-0.0.42 downloading pthreads-0.0.42.tgz ... Starting to download pthreads-0.0.42.tgz (53,755 bytes) .............done: 53,755 bytes 33 source files, building running: phpize Configuring for: PHP Api Version: 20100412 Zend Module Api No: 20100525 Zend Extension Api No: 220100525 building in /var/tmp/pear-build-rootkThpG6/pthreads-0.0.42 running: /var/tmp/pthreads/configure ... checking whether to enable Threading API... yes, shared checking checking for ZTS... configure: error: pthreads requires ZTS, please re-compile PHP with ZTS enabled ERROR: `/var/tmp/pthreads/configure' failed 

Как вы можете видеть, он терпит неудачу, потому что PHP не поддерживает ZTS.

Доступность ZTS определяется во время компиляции, поэтому нет – вы не можете динамически включать и отключать ее.

Возможно, вы могли установить pThreads через yum или другой диспетчер пакетов в зависимости от вашего дистрибутива, но обратите внимание, что «возможный» не обязательно означает, что он доступен в вашем случае. Это зависит от того, насколько ваш программный репозиторий имеет такой доступный пакет, с зависимостью от другой сборки PHP, которая имеет ZTS. Я очень сомневаюсь, что это будет так.

К сожалению, разработчики пакетов CLI не обеспечивают безопасность потоков в большинстве пакетов unix. Иногда это разрешено для рабочего mpm apache, но не всегда включает полную среду сборки (так, что pecl не будет работать).

Короче говоря, нет возможности включить ZTS во время выполнения, это опция времени сборки, которая делает изменения в сборке просто невозможными после компиляции источников.

Однако установить копию для себя не очень сложно.

Путь, который вы берете, зависит от вашего опыта с вашим дистрибутивом и предполагаемым использованием.

Если вы хотите перезаписать установку системы с помощью потоковой безопасной версии, есть информация http://pthreads.org/building

Если вы хотите построить изолированную установку, некоторую информацию можно найти на странице здания на pthreads.org, кроме того, я экспериментировал с RPM, http://github.com/krakjoe/spex содержит файл rpmbuild, который будет рулон копия master и master pthreads в / opt / php-pthreads с полной средой сборки, включает в себя и все колокола и свистки, без поддержки Apache в версии rpmbuild, потому что это сделает ее более сложной и огромной, она включает fpm ( также поддерживается).

Вы первый человек, с которым я столкнулся, что я действительно могу посоветовать использовать rpmbuild, потому что вы можете сохранить RPM для других виртуальных машин и только пройти один раз (до следующего обновления в любом случае), недостаток из этого, он использует кратковременный код из PHP, который в настоящее время находится в бета-версии …

Надеюсь, что вы пойдете 🙂