如何在Ubuntu 18.04 LTS上为ISPConfig 3编译和安装PHP 7.4作为PHP-FPM和FastCGI

Ubuntu 18.04随附PHP 7.2作为默认PHP版本。主要的PHP版本并非彼此兼容,因此网站可能需要较新或较旧的PHP版本才能正常工作。ISPConfig支持在同一服务器上使用多个PHP版本,可以在网站设置中为每个网站单独选择PHP版本。本教程说明如何在Ubuntu 18服务器上将PHP 7.4与FPM和FCGI模式一起安装在PHP 7.2上。其他PHP版本安装在/ opt文件夹中,因此它们的安装不会影响默认的PHP版本。

1初步说明

我将安装PHP 7.4。请注意,PHP-FPM可以在Apache和Nginx服务器上使用,而FastCGI仅可用于Apache服务器。

2安装先决条件

安装构建PHP的先决条件和将用于编辑配置文件的nano编辑器:

apt -y install build-essential nano net-tools autoconf
apt -y install libfcgi-dev libfcgi0ldbl libjpeg-turbo8-dev libmcrypt-dev libssl-dev libc-client2007e libc-client2007e-dev libxml2-dev libbz2-dev libcurl4-openssl-dev libjpeg-dev libpng-dev libfreetype6-dev libkrb5-dev libpq-dev libxml2-dev libxslt1-dev libzip-dev libsqlite3-dev libonig-dev
ln -s /usr/lib/libc-client.a /usr/lib/x86_64-linux-gnu/libc-client.a
cd /usr/include
ln -s x86_64-linux-gnu/curl

(如果使用–with-imap构建PHP,则需要后一个命令,因为否则./configure将因以下错误而停止:

checking for crypt in -lcrypt... yes
configure: error: Cannot find imap library (libc-client.a). Please check your c-client installation.
root@server1:/tmp/php-7.4.0

3将PHP 7.4编译为PHP-FPM和Fastcgi

下载并解压缩PHP归档文件:

cd /tmp
wget https://www.php.net/distributions/php-7.4.0.tar.gz
tar xfz php-7.4.0.tar.gz
cd php-7.4.0

如下配置和构建PHP 7.4(您可以根据需要调整./configure命令,

./configure --help

查看所有可用选项;如果您使用其他./configure命令,则可能需要其他库,否则构建过程将失败):

./configure --prefix=/opt/php-7.4 --with-pdo-pgsql --with-zlib-dir --with-freetype --enable-mbstring --enable-soap --enable-calendar --with-curl --with-zlib --enable-gd --with-pgsql --disable-rpath --enable-inline-optimization --with-bz2 --with-zlib --enable-sockets --enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex --enable-exif --enable-bcmath --with-mhash --with-zip --with-pdo-mysql --with-mysqli --with-mysql-sock=/var/run/mysqld/mysqld.sock --with-jpeg --with-openssl --with-fpm-user=www-data --with-fpm-group=www-data --with-libdir=/lib/x86_64-linux-gnu --enable-ftp --with-imap --with-imap-ssl --with-kerberos --with-gettext --with-xmlrpc --with-xsl --enable-opcache --enable-intl --with-pear --enable-fpm

后一个开关(–enable-fpm)确保此PHP版本可与PHP-FPM一起使用。

make
make install

将文件复制到正确的位置:

cp php.ini-production /opt/php-7.4/lib/php.ini
cp /opt/php-7.4/etc/php-fpm.conf.default /opt/php-7.4/etc/php-fpm.conf
cp /opt/php-7.4/etc/php-fpm.d/www.conf.default /opt/php-7.4/etc/php-fpm.d/www.conf

调整 /opt/php-7.4/etc/php-fpm.conf

sed -i 's/;pid = run\/php-fpm.pid/pid = run\/php-fpm.pid/g' /opt/php-7.4/etc/php-fpm.conf

然后更新/opt/php-7.4/etc/php-fpm.d/www.conf :

cp /opt/php-7.4/etc/php-fpm.d/www.conf.default /opt/php-7.4/etc/php-fpm.d/www.conf

如果您已经安装了其他PHP版本,请检查该端口是否尚未使用:

netstat -tapn | grep -E ".*899.*php-fpm"

如果您将nginx用作网络服务器,请调整/opt/php-7.4/lib/php.ini:

sed -i 's/;date.timezone =/date.timezone = "Europe\/Berlin"/g' /opt/php-7.4/lib/php.ini
sed -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g' /opt/php-7.4/lib/php.ini

3.1创建系统单元文件

接下来,我们将创建系统单元文件,该文件用于启动和停止PHP-FPM守护程序。

nano /lib/systemd/system/php-7.4-fpm.service

具有以下内容:

[Unit]
Description=The PHP 7.4 FastCGI Process Manager
After=network.target

[Service]
Type=simple
PIDFile=/opt/php-7.4/var/run/php-fpm.pid
ExecStart=/opt/php-7.4/sbin/php-fpm --nodaemonize --fpm-config /opt/php-7.4/etc/php-fpm.conf
ExecReload=/bin/kill -USR2 $MAINPID

[Install]
WantedBy=multi-user.target

启用服务并重新加载systemd

systemctl enable php-7.4-fpm.service
systemctl daemon-reload

后,启动PHP-FPM。

systemctl start php-7.4-fpm.service

要启用Zend OPcache:

echo zend_extension=opcache.so >> /opt/php-7.4/lib/php.ini

3.2启用内存缓存(可选)

使用这些命令安装memcache。

cd /opt/php-7.4/etc
../bin/pecl -C ./pear.conf update-channels
../bin/pecl -C ./pear.conf install memcached

并启用memache

echo extension=memcached.so >> /opt/php-7.4/lib/php.ini

3.3安装xDebug扩展(可选)

Xdebug的 模块是PHP调试扩展。安装是可选的。

使用这些命令安装xDebug。

cd /opt/php-7.4/etc
../bin/pecl -C ./pear.conf update-channels
../bin/pecl -C ./pear.conf install xdebug

并启用xDebug

echo zend_extension=/opt/php-7.4/lib/php/extensions/no-debug-non-zts-20190902/xdebug.so >> /opt/php-7.4/lib/php.ini

后重新启动php-fpm守护程序:

systemctl start php-7.4-fpm.service

测试PHP版本:

cd /opt/php-7.4/bin./php --version

3.4在ISPConfig中启用PHP 7.4

在ISPConfig 3.1中,您可以在系统>其他PHP版本下配置新的PHP版本。在“名称”选项卡上,您只需填写PHP版本的名称(例如PHP 7.4)-此PHP版本将在ISPConfig的网站设置中以该名称列出:

转到“ FastCGI设置”选项卡,并按如下所示填写字段:

Path to the PHP FastCGI binary: /opt/php-7.4/bin/php-cgi
Path to the php.ini directory: /opt/php-7.4/lib

然后转到“ PHP-FPM设置”选项卡,并按如下所示填写字段:

Path to the PHP-FPM init script: php-7.4-fpm
Path to the php.ini directory: /opt/php-7.4/lib
Path to the PHP-FPM pool directory: /opt/php-7.4/etc/php-fpm.d
滚动至顶部