分享在 linux 上编译安装PHP8.3

一、安装相关依赖

sudo apt-get install gcc g++ libxml2-dev pkg-config libkrb5-dev libssl-dev libsqlite3-dev zlib1g-dev libbz2-dev libcurl4-openssl-dev libpng-dev libjpeg-dev libfreetype-dev libonig-dev libxslt-dev libzip-dev autoconf -y

二、开始编译,建议在make的时候使用 -j 参数,可以根据你的 CPU 线程数填写,可以加快编译速度

./configure --prefix=/usr/local/php8_3 --with-config-file-path=/usr/local/php8_3/etc --with-curl --with-freetype --enable-gd --with-jpeg --with-gettext --with-kerberos --with-libdir=lib64 --with-libxml --with-mysqli --with-openssl --with-pdo-mysql --with-pdo-sqlite --with-pear --enable-sockets --with-mhash --with-ldap-sasl --with-xsl --with-zlib --with-zip -with-bz2 --with-iconv --enable-fpm --enable-pdo --enable-ftp --enable-bcmath --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-xml --enable-sysvsem --enable-cli --enable-opcache --enable-intl --enable-calendar --enable-static --enable-mysqlnd

如果没有报错,就可以执行下面的命令了。如果有报错,一般就是缺少相关依赖,请先安装依赖,然后再重新执行 configure

sudo make -j 线程数 && sudo make install

三、修改环境变量

如果你当前登录的用户不是root(如果是root用户,则无需修改该步骤,直接修改 ~/.bashrc 即可),请先修改 visudo ,否则在 sudo 下运行 php 命令会提示找不到

sudo visudo

找到 default 最长的,在后面加上 :/usr/local/php8_3/bin ,然后按 ctrl+o 保存,ctrl+x退出即可。

然后修改 ~/.bashrc 用户环境变量,在最后面加入

sudo vim ~/.bashrc
export PATH=$PATH:/usr/local/php8_3/bin

保存后执行

source ~/.bashrc

然后输入 php -v,成功输入 php 版本号。

四、创建 php 配置文件并开启 PHP 扩展

首先 cd 到 php的源代码目录,然后复制 php.ini-production 到 http://usr/local/php8_3/etc/ 并更名为 php.ini

sudo cp php.ini-production /usr/local/php8_3/etc/php.ini

因为我们在 configure 的时候已经默认开启了部分的 php 扩展,这部分的扩展无法再在 php.ini 上取消 ; 号来开启,configure 没有开启的扩展,则需要先编译,然后在 /usr/local/php8_3/etc/php.ini 搜索 ;extension=xxx,然后把 ; 冒号去掉即可

这里举两个例子,分别是 redis 和 swoole(请注意,编译 php 扩展,必须要先使用 phpize )

redis:

cd 到扩展目录(在 php 源代码下的 ext 目录内就是各种官方扩展,但是 redis 并不是官方扩展,所以需要自行到相关网站下载)

phpize
./configure --with-php-config=/usr/local/php8_3/bin/php-config
sudo make -j 线程数 && sudo make install
sudo vim /usr/local/php8_3/etc/php.ini
extension=redis

swoole:

cd 到扩展目录(在 php 源代码下的 ext 目录内就是各种官方扩展,但是 swoole 并不是官方扩展,所以需要自行到相关网站下载)

phpize
./configure --with-php-config=/usr/local/php8_3/bin/php-config
sudo make -j 线程数 && sudo make install
sudo vim /usr/local/php8_3/etc/php.ini
extension=swoole

安装好后,我们输入 php -m ,应该就能看到 redis 和 swoole 扩展了。

至此,我们应该成功在 linux 上编译安装了 php8.3 版本。

如有错误,欢迎指正。

阅读剩余
THE END