编译安装 PHP 8.1 开启 ZTS(线程安全)
主要是前几天在搞一个小东西的适合发现安装的 PHP 扩展需要开 ZTS,然后就得重新安装一遍了,所以写一下随便把编译安装的步骤也写下来,这份操作是在 Ubuntu
系统上完成的。
下载 PHP8.1 安装包并且解压
wget https://www.php.net/distributions/php-8.1.5.tar.gz
tar -zxvf php-8.1.5.tar.gz
cd php-8.1.5
这里就是先下载然后解压,进入到目录里面准备编译安装。
配置 makefile
./configure --prefix=/usr/local/php8.1 --with-config-file-path=/usr/local/php8.1 --with-config-file-scan-dir=/usr/local/php8.1/etc/php.d --enable-fastcgi --disable-fileinfo --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-mbstring --enable-ftp --with-gd --enable-gd-native-ttf --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --with-pear --with-gettext --enable-calendar --with-openssl --with-mcrypt --enable-zts
这里就是配置一下你的 makefile
然后等下才能顺利安装,需要注意的是上面的指令是有开 ZTS 的,如果不需要开 ZTS 的话把 --enable-zts
删掉就行。如果这里卡住了通常都是一些包没有安装好或者太旧了,如果没安装的话可能需要百度一下看一下那个包的名字,太旧了的话建议就是运行这个指令之前先运行一次:
sudo apt-get upgrade
make 安装
sudo make && make install
这里就是需要最长时间等待的地方了,有时候会安装到一般然后断掉,需要详细判断原因,我安装的适合碰到的问题就是内存太小了,编译的适合跑光了,所以还得多加点 Swap
内存,详细可以看这篇文章。
复制 php.ini 文件并且添加 php 程序档案软连接
cp ./php.ini-production /usr/local/php8.1/etc/php.ini
ln -s /usr/local/php8.1/bin/php /usr/bin/php
第一个指令就是复制我们的 php.ini
文件到指定的配置目录下面,第二个指令就是创建一个软连接把 php 的执行档案到我们的运行目录下,当然我们也可以通过添加 PATH
的形式实现,但是这里就不多说了。
检查 PHP 版本以及是否有开启 ZTS
php -v # 查看 PHP 版本
php -i | grep Thread
第一个就是检查 PHP 版本的指令,如果成功的话会看到下面的信息
PHP 8.1.5 (cli) (built: Apr 27 2022 09:11:27) (ZTS)
Copyright (c) The PHP Group
Zend Engine v4.1.5, Copyright (c) Zend Technologies
第二个就是查看是否有开启 ZTS 的,如果有的话会看到下面的信息
Thread Safety => enabled
Thread API => POSIX Threads
如果没有开启的话应该就是
Thread Safety => disabled
文章转载自:Yuis博客
原文链接:https://www.yuisblog.com/archives/186/