Cách biên dịch và cài đặt PHP 7.4 dưới dạng PHP-FPM & FastCGI cho ISPConfig 3 trên Ubuntu 18.04 LTS

0

Ubuntu 18.04 ra mắt kèm với PHP 7.2 là phiên bản PHP mặc định. Các phiên bản PHP chính không tương thích 100% với nhau, vì vậy một trang web có thể yêu cầu phiên bản PHP mới hơn hoặc cũ hơn để hoạt động. ISPConfig hỗ trợ nó sử dụng nhiều phiên bản PHP trên cùng một máy chủ, phiên bản PHP có thể được chọn cho từng trang web riêng lẻ trong cài đặt trang web. Hướng dẫn này chỉ ra cách cài đặt PHP 7.4 dưới dạng chế độ FPM và FCGI cùng với PHP 7.2 trên máy chủ Ubuntu 18. Các phiên bản PHP bổ sung được cài đặt trong thư mục / opt, vì vậy cài đặt của chúng không ảnh hưởng đến phiên bản PHP mặc định

1 Lưu ý sơ bộ

Tôi sẽ cài đặt PHP 7.4. Xin lưu ý rằng PHP-FPM có thể được sử dụng trên cả máy chủ Apache và Nginx trong khi FastCGI chỉ khả dụng cho các máy chủ Apache.

2 Cài đặt các điều kiện tiên quyết

Cài đặt các điều kiện tiên quyết để xây dựng PHP và trình soạn thảo nano mà tôi sẽ sử dụng để chỉnh sửa các tệp cấu hình:

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

(Lệnh cuối cùng là cần thiết nếu bạn xây dựng PHP bằng –with-imap , vì nếu không ./mình sẽ dừng với lỗi sau:

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 Biên dịch PHP 7.4 dưới dạng PHP-FPM và Fastcgi

Tải xuống và giải nén kho lưu trữ 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

Định cấu hình và xây dựng PHP 7.4 như sau (bạn có thể điều chỉnh lệnh ./cool theo nhu cầu của mình, hãy xem

./configure --help

để xem tất cả các tùy chọn có sẵn; nếu bạn sử dụng một lệnh ./mình khác , có thể các thư viện bổ sung được yêu cầu hoặc quá trình xây dựng sẽ thất bại):

./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

Công tắc cuối cùng ( –enable-fpm ) đảm bảo phiên bản PHP này sẽ hoạt động với PHP-FPM.

makemake install

Sao chép các tập tin vào đúng vị trí:

 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 

Điều chỉnh /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

Sau đó cập nhật /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

Nếu bạn đã cài đặt các phiên bản PHP bổ sung, vui lòng kiểm tra xem cổng đó chưa được sử dụng:

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

Nếu bạn sử dụng nginx làm máy chủ web của mình, hãy điều chỉnh /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 Tạo tệp đơn vị systemd

Tiếp theo, chúng tôi sẽ tạo tệp đơn vị hệ thống được sử dụng để bắt đầu và dừng trình nền PHP-FPM.

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

với nội dung sau:

[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

Kích hoạt dịch vụ và tải lại systemd:

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

Cuối cùng, bắt đầu PHP-FPM.

systemctl start php-7.4-fpm.service

Để kích hoạt Zend OPcache:

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

3.2 Kích hoạt Memcache (tùy chọn)

Cài đặt memcache với các lệnh này.

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

và kích hoạt memache

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

3.3 Cài đặt tiện ích mở rộng xDebug (tùy chọn)

Các xDebug  Module là một extension gỡ lỗi cho PHP. Việc cài đặt là tùy chọn.

Cài đặt xDebug với các lệnh này.

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

và kích hoạt 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

Cuối cùng khởi động lại daemon php-fpm:

systemctl start php-7.4-fpm.service

Kiểm tra phiên bản PHP:

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

3.4 Kích hoạt PHP 7.4 trong ISPConfig

Trong ISPConfig 3.1, bạn có thể định cấu hình phiên bản PHP mới trong Hệ thống> Phiên bản PHP bổ sung . Trên tab Tên , bạn chỉ cần điền tên cho phiên bản PHP (ví dụ: PHP 7.4 ) – phiên bản PHP này sẽ được liệt kê dưới tên này trong cài đặt trang web trong ISPConfig:

Chuyển đến tab Cài đặt FastCGI và điền vào các trường như sau:

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

Sau đó chuyển đến tab Cài đặt PHP-FPM và điền vào các trường như sau:

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

Leave a Reply

Your email address will not be published. Required fields are marked *