首先安装编译PHP所需的依赖包:
sudo apt update
apt install build-essential autoconf automake libtool libsqlite3-dev pkg-config libjpeg-dev libpng-dev libxml2-dev libbz2-dev libcurl4-openssl-dev libssl-dev libffi-dev libwebp-dev libonig-dev libzip-dev imagemagick libmagickwand-dev git vim -y
下载PHP 8.1源码
cd /tmp
wget https://www.php.net/distributions/php-8.1.32.tar.gz
tar -zxf php-8.1.32.tar.gz
cd php-8.1.32
配置编译选项(包含所需扩展)
./configure --prefix=/usr/local/php8.1 \
--with-config-file-path=/usr/local/php8.1/etc \
--with-mysqli \
--with-pdo-mysql \
--enable-fpm \
--with-bz2 \
--with-fpm-user=www-data \
--with-fpm-group=www-data \
--enable-fileinfo \
--enable-exif \
--enable-pcntl \
--enable-mbstring \
--with-curl \
--with-openssl \
--enable-sockets \
--enable-gd \
--with-jpeg \
--with-zlib \
--with-webp \
--with-zip \
--with-freetype \
--enable-opcache
编译并安装
make -j$(nproc)
sudo make install
创建配置文件
sudo mkdir -p /usr/local/php8.1/etc
sudo cp php.ini-production /usr/local/php8.1/etc/php.ini
cd /usr/local/php8.1/etc
cp php-fpm.conf.default php-fpm.conf
cp php-fpm.d/www.conf.default php-fpm.d/www.conf
添加到环境变量
echo 'export PATH=/usr/local/php8.1/bin:/usr/local/php8.1/sbin:$PATH' | sudo tee -a /etc/profile
source /etc/profile
下载Imagick源码
cd /tmp
git clone https://github.com/Imagick/imagick.git
cd imagick
phpize
./configure --with-php-config=/usr/local/php8.1/bin/php-config
make
sudo make install
配置PHP启用扩展
编辑PHP配置文件添加扩展:
sudo vi /usr/local/php8.1/etc/php.ini
找到extension=
部分,添加以下行:
extension=imagick
将php-fpm添加到系统服务管理
vi /lib/systemd/system/php-fpm.service
[Unit]
Description=The PHP FastCGI Process Manager
After=network.target
[Service]
Type=simple
PIDFile=/usr/local/php8.1/var/run/php-fpm.pid
ExecStart=/usr/local/php8.1/sbin/php-fpm --nodaemonize --fpm-config /usr/local/php8.1/etc/php-fpm.conf
ExecReload=/bin/kill -USR2 $MAINPID
[Install]
WantedBy=multi-user.target