Как установить расширение PHP pthreads на Ubuntu?

Я хотел бы установить расширение PHP pthreads на Ubuntu. Я использую Ubuntu 12.04.1 LTS. И я могу обновить, если потребуется. Я действительно не хочу ничего компилировать из источника. Например, перекомпиляция PHP из исходного кода звучит как ужасная идея для меня.

На мой взгляд, лучшим вариантом является установка этого расширения с помощью команды aptitude . Например, например aptitude install php5-mysql . Еще одна хорошая идея – использовать pecl pecl install pthreads . Но это не работает для меня из-за следующей ошибки:

проверка проверки для ZTS … configure: ошибка: pthreads требует ZTS, пожалуйста, перекомпилируйте PHP с включенным ZTS

Позвольте мне объяснить, почему мне не нравится идея перекомпилировать PHP из источника:

  • Я предполагаю, что я должен удалить исходный пакет PHP, а затем и все зависимости. Потому что, если я скомпилирую его по стандартным PHP, то обновление пакетов будет перезаписывать мои изменения. И да, еще один вариант – обновить PHP. В любом случае это вводит дополнительную работу и усложняет настройку. Мы работаем в распределенной команде. И я не хочу, чтобы другие люди справлялись с этой сложной настройкой на производственных серверах.
  • Я хочу установить обновления на серверах. И я не хочу перекомпилировать PHP из-за исправлений безопасности и т. Д.
  • Я не хочу ничего компилировать на производственных серверах и делать это много раз. Затем я должен создать свои собственные пакеты и обновить их новыми версиями и т. Д. Извините, но я недостаточно умен, чтобы это сделать. Может быть, через 2-3 года, но не сейчас. Потому что здесь есть много вещей. Например, как заменить стандартный пакет PHP на пользовательский пакет, сохраняя при этом все зависимости.

Некоторые ссылки:

  • Динамически настраивать PHP для обеспечения безопасности Thread -enable-maintainer-zts или использовать YUM для установки pThreads?
  • Как использовать расширение Pthreads PHP (в Ubuntu) – Некоторые говорят о том, что я собираюсь делать здесь.
  • Строительство pthreads

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

  • Не верите в ложь: PHP еще не в потоковом режиме

ZTS: [Z] end [T] hread [S] afety.

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

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

Я не могу советовать о создании деба напрямую, однако создание rpm довольно тривиально, https://github.com/krakjoe/spex есть место для этого, вы можете использовать иностранец, чтобы RPM в deb, если вы не можете узнать, как создавать пакеты deb напрямую.

Исход из источника будет неизбежным, если вы не найдете какой-либо репозиторий с потоковой безопасностью сборки PHP с полной средой сборки. С этой целью вам может быть полезной информация http://pthreads.org/building . На самом деле не так сложно строить PHP, и не требуется много часов, на современном оборудовании вы можете построить менее чем за минуту. Вы можете и должны воспользоваться возможностью, чтобы обрезать жир из вашей установки.

С другой стороны, статья, которую вы ссылаетесь на PHP, не являющийся потокобезопасной, – с 2008 года, это очень неправильно. Ядро является потокобезопасным, есть несколько расширений, которые по своей сути небезопасны (не абстрагируются плохо, но в корне непригодны).

Похоже, Ubuntu не имеет пакета для потокобезопасного PHP в официальных репозиториях. Для расширения Pthreads требуется ZTS. Таким образом, у вас есть два варианта:

  1. скомпилируйте его самостоятельно:
  2. найти где-нибудь пакет .deb, например, репозитории других подобных Debian систем.

Я сам скомпилировал и упаковал его с помощью утилиты «checkintsall». Таким образом, Apt будет иметь возможность отслеживать версию PHP. Я бы также попросил Canonical для пакета для ZTS PHP.