Как установить pthreads на phpfarm php install

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

Команда pecl install pthreads терпит неудачу из-за того, что php установлен на моем ящике ubuntu 13.04 без настройки zts.

Опции:

1) В репозитории ubuntu нет пакета php с включенными zts. На этом посту ubuntu имеет только php 5.4.9 в своем репозитории (выпущено: 22 ноября 2012 г.). Можно скомпилировать версию php из источника – что я в итоге сделал (см. Ниже), но ..

2) Я .. ТАКЖЕ .. хотел использовать phpfarm для возможности запуска разных версий PHP на моей локальной установке. В github есть оригинальный вклад христианского Weiske здесь ( phpfarm ) и вилка, которую он внес Франсуа Пуаротте, также называемый phpfarm . У вилки Франсуа есть еще несколько вариантов настройки («настройка после установки»), но я не смог выполнить эту работу с расширением PECL. Мне любопытно узнать, неправильно ли это понимаете, потому что мне кажется, что он просто не принимает команды PECL.

3). Прежде чем перекомпилировать php из источника, я загрузил phpfarm (попробовал обе версии), включил php-fpm (FastCGI) и смог заставить мой сервер apache2 использовать версию phpfarm (5.5.10), которая появилась на выходе phpinfo () , Но php-cli всегда показывал исходную версию php (5.4.9) в cli (run: php -v). Запуск (запуск: php -i | grep php.ini) показал / etc / php5 / cli, но я ранее удалил php5, а aptitude show php5 вернул состояние «не установлено». Я даже переименовал каталог / etc / php5, чтобы узнать, могу ли я заставить систему использовать версию phpfarm php. Очевидно, это неправильное мышление, и я продолжил просто компилировать php 5.6 из источника. Но есть ли что-то еще, чтобы сделать phpfarm php для использования в cli? Я читал, что cli загружает файл конфигурации на основе каждой команды, в отличие от apache2. Если бы я мог запустить версию 5.5.10 (настроенную с помощью zts), тогда я мог бы затем выполнить pecl install pthreads а затем повторно выполнить версию phpfarm 5.5.10 с включенными pthreads. Хотя, похоже, я смогу запустить различные версии php на сервере apache, смогу ли я когда-нибудь переключать-phpfarm на другую версию и видеть, как она работает в php-cli? Кроме того, я не знал, где я мог бы загрузить файл pthreads для процесса компиляции phpfarm, чтобы найти и использовать его; могу ли я сделать это именно так?

4) Этот пост stackoverflow , по существу, написанный Джо Уоткинсом – разработчиком pThreads, – это идеальный способ получения pThreads, установленного в системе Ubuntu, у которой была настроена php с zts (Zend Thread Safety). (Спасибо Джо!)

Хороший учебник по использованию phpfarm, настроенного с помощью fast-cgi и сервера apache, чтобы запускать веб-сайты под разными php-конфигурациями.

Итак, что дает php, php-cli и phpfarm?

Solutions Collecting From Web of "Как установить pthreads на phpfarm php install"

Я не уверен в phpfarm, но знаю другое решение …

много

Инструмент для поддержки нескольких установок PHP в нескольких конфигурациях

https://github.com/datingvip/multi

Это немного больше ориентировано на пользователя, позволит вам создавать множество конфигураций и версий php, любую помеченную версию php и любую исправленную версию из любой версии php-src.

Кроме того, поскольку я написал это, он установит для вас pthreads.

 git clone https://github.com/datingvip/multi cd multi VERSION=5.5.10 DBG=no-debug ZTS=zts ./php.multi 

Вышеприведенные команды позволят установить PHP (в одной подходящей конфигурации, одной версии) в / opt / php.

Посмотрите на php.defaults для параметров конфигурации и настройте перед построением

Если при отказе конфигурации, например, что-то связано с библиотекой, такой как libxml2, обычно будет так,

 sudo apt-get install library-dev 

Если библиотека заменена именем библиотеки, поддерживающей сборку, она устранит проблему для вас. Если этого не произойдет, быстрый Google заставит вас снова идти.

После завершения сборки

 source /path/to/multi/php.env 5.5.10 

Примечание: multi всегда будет устанавливать pthreads для любой версии zts автоматически

Надеюсь, что вы попадете куда-нибудь …