Я хотел бы установить расширение 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 не был потокобезопасным 3 года назад».
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. Таким образом, у вас есть два варианта:
Я сам скомпилировал и упаковал его с помощью утилиты «checkintsall». Таким образом, Apt будет иметь возможность отслеживать версию PHP. Я бы также попросил Canonical для пакета для ZTS PHP.