Всё собираем в один файл и копипастом выполняем в терминале или используем такую команду:
sshpass -p "password" ssh root@192.168.0.3 < ./php-threads-recompile.sh
threads or not threads?
pthreads on ubuntu 18.04 compilation instructions:
#!/usr/bin/env bash
compiling php & pthreads
sudo apt-get update &&
sudo apt-get upgrade &&
sudo apt-get install libzip-dev bison autoconf build-essential pkg-config git-core libltdl-dev libbz2-dev libxml2-dev libxslt1-dev libssl-dev libicu-dev libpspell-dev libenchant-dev libmcrypt-dev libpng-dev libjpeg8-dev libfreetype6-dev libmysqlclient-dev libreadline-dev libcurl4-openssl-dev &&
rm threads &&
mkdir threads && cd threads &&
git clone https://github.com/php/php-src.git &&
cd php-src &&
git checkout php-7.2.2 &&
./buildconf –force &&
Конфигурация сервера (default), для прода конфигурация другая
CONFIGURE_STRING=”
–prefix=/etc/php7
–with-bz2
–with-zlib
–enable-zip
–with-config-file-path=/etc/php7/conf
–with-fpm-user=nginx
–with-fpm-group=nginx
–enable-fpm
–enable-mysqlnd
–enable-mbstring
–enable-sockets
–enable-opcache
–disable-phar
–disable-ipv6
–with-openssl
–with-curl
–with-jpeg-dir=/usr
–with-png-dir=/usr
–with-webp-dir=/usr
–with-xpm-dir=/usr
–with-freetype-dir=/usr
–with-mysql-sock=/var/run/mysqld/mysqld.sock
–with-mysqli=mysqlnd
–without-sqlite3
–without-pdo-sqlite
–without-pear
–enable-pthreads
–with-tsrm-pthreads
–enable-maintainer-zts” &&
./configure $CONFIGURE_STRING &&
make && sudo make install &&
Проверяем установленную версию PHP
/etc/php7/bin/php -r “echo PHP_ZTS;” &&
1 означает что PHP скомпилировался ZTS
chmod o+x /etc/php7/bin/phpize &&
chmod o+x /etc/php7/bin/php-config &&
Переходим к pthreads
если есть пересоздаём папку для тредов
cd /ext
git clone https://github.com/krakjoe/pthreads.git &&
cd pthreads &&
/etc/php7/bin/phpize &&
./configure –prefix=’/etc/php7′ –with-libdir=’/lib/x86_64-linux-gnu’ –enable-pthreads=shared –with-php-config=’/etc/php7/bin/php-config’ &&
make && sudo make install &&
/etc/php7/bin/php -r “print_r(class_exists(‘Thread’));” &&
Проверяем что есть 1, если 1 то threads установлены
cd .. &&
cd .. &&
cd php-src &&
cp php.ini-production /etc/php7/cli/php.ini &&
echo “/etc/php7/lib/php/extensions/no-debug-zts-20170718/pthreads.so” | sudo tee -a /etc/php7/cli/php.ini &&
echo “zend_extension=opcache.so” | sudo tee -a /etc/php7/cli/php.ini &&
rm /usr/bin/php &&
ln -s /etc/php7/bin/php /usr/bin/php &&
php -v &&
rm /home/saleksey/threads -rf