Я много часов боролся о том, как установить pthread на моем сервере ubuntu, чтобы разрешить потоки php. Пожалуйста, помогите мне.
Следующие инструкции приведут к изолированной установке PHP, которая не влияет на вашу текущую установку.
1) Проверка источников PHP в новый каталог вашей системы
cd /usr/src git clone https://github.com/php/php-src cd php-src
1a) Необязательно проверить определенную версию PHP
git checkout PHP-5.6
2) Загрузите источники pthreads в каталог сборки (/ ext)
cd ext git clone https://github.com/krakjoe/pthreads cd ../
3) Настройте новую изолированную установку PHP
./buildconf --force ./configure --prefix=/opt/php-zts \ --bindir=/opt/php-zts/bin \ --with-config-file-dir=/opt/php-zts \ --with-config-file-scan-dir=/opt/php-zts/modules.d/ \ --enable-pthreads=shared \ --with-curl=shared,/usr \ --with-zlib \ --with-libxml2 \ --enable-simplexml \ --with-mysql=mysqlnd \ --with-pdo-mysql=mysqlnd \ --enable-gd-native-ttf \ --with-mysqli \ --enable-shared \ --enable-maintainer-zts \ --enable-sockets \ --with-curl=shared \ --enable-mbstring make -j8 make install echo "extension=pthreads.so" > /opt/php-zts/modules.d/pthreads.ini
Команда configure, используемая здесь, приведет к довольно стандартной установке с разумным набором модулей. Если процесс сборки выходит из строя, вы должны иметь возможность разрешать ошибки, устанавливая пакеты разработки, например, если модуль curl не сможет настроить или создать
yum install curl-devel
Или эквивалент для вашей системы должен разрешить ошибку, позволяя продолжить сборку.
4) Symlink некоторые полезные вещи в / opt / php-zts / bin в / usr / local / bin
ln -s /opt/php-zts/bin/php /usr/local/bin/php-zts ln -s /opt/php-zts/bin/phpize /usr/local/bin/phpize-zts ln -s /opt/php-zts/bin/php-config /usr/local/bin/php-config-zts ln -s /opt/php-zts/bin/php-cgi /usr/local/bin/php-cgi-zts ln -s /opt/php-zts/bin/phpdbg /usr/local/bin/phpdbg-zts
На данный момент у вас есть рабочая установка PHP (версия выбранной вами ветки или мастер, если она отсутствует) с доступными pthreads.
Процедура построения модулей следующая (например, APCu):
cd /usr/src git clone https://github.com/krakjoe/acpu cd apcu phpize-zts ./configure --with-php-config=php-config-zts make -j8 make install echo "extension=apcu.so" > /opt/php-zts/modules.d/apcu.ini
Вы должны обязательно передать правильный путь php-config при создании модулей, поскольку по умолчанию будет обнаружена ваша установка системы PHP.
Все blockquoted команды одобрены для copypasta.