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

theanh

Administrator
Nhân viên
Ubuntu 18.04 đi 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, do đó 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 riêng cho từng trang web trong cài đặt trang web. Hướng dẫn này chỉ cách cài đặt PHP 7.4 ở 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, do đó việc cài đặt 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 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:
Mã:
apt -y install build-essential nano net-tools autoconf
Mã:
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
Mã:
ln -s /usr/lib/libc-client.a /usr/lib/x86_64-linux-gnu/libc-client.a
Mã:
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 với --with-imap, vì nếu không ./configure sẽ dừng lại với lệnh sau lỗi:
Mã:
đang kiểm tra crypt trong -lcrypt... có
cấu hình: lỗi: Không tìm thấy thư viện imap (libc-client.a). Vui lòng kiểm tra cài đặt c-client của bạn.
root@server1:/tmp/php-7.4.0
)

3Biên dịch PHP 7.4 thành PHP-FPM và Fastcgi​

Tải xuống và giải nén kho lưu trữ PHP:
Mã:
cd /tmp
wget https://www.php.net/distributions/php-7.4.0.tar.gz
tar xfz php-7.4.0.tar.gz
Mã:
cd php-7.4.0
Cấu hình và xây dựng PHP 7.4 như sau (bạn có thể điều chỉnh lệnh ./configure theo nhu cầu của mình, hãy xem
Mã:
./configure --help
để xem tất cả các lệnh có sẵn tùy chọn; nếu bạn sử dụng lệnh ./configure khác, có thể cần thêm các thư viện khác hoặc quá trình xây dựng sẽ không thành công):
Mã:
./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
Chuyển đổi cuối cùng (--enable-fpm) đảm bảo phiên bản PHP này sẽ hoạt động với PHP-FPM.
Mã:
make
make install
Sao chép các tệp vào đúng vị trí:
Mã:
cp php.ini-production /opt/php-7.4/lib/php.inicp /opt/php-7.4/etc/php-fpm.conf.default /opt/php-7.4/etc/php-fpm.confcp /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
Mã:
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:
Mã:
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 thêm các phiên bản PHP khác, vui lòng kiểm tra xem cổng đó có đang được sử dụng hay không:

Mã:
netstat -tapn | grep -E ".*899.*php-fpm"
Nếu bạn sử dụng nginx làm máy chủ web, hãy điều chỉnh /opt/php-7.4/lib/php.ini:
Mã:
sed -i 's/;date.timezone =/date.timezone = "Europe\/Berlin"/g' /opt/php-7.4/lib/php.ini
Mã:
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 ta sẽ tạo tệp đơn vị hệ thống được sử dụng để khởi động và dừng daemon PHP-FPM.
Mã:
nano/lib/systemd/system/php-7.4-fpm.service
có nội dung sau:
Mã:
[Unit]
Description=Trình quản lý quy trình FastCGI PHP 7.4
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:
Mã:
systemctl enable php-7.4-fpm.service
systemctl daemon-reload
Cuối cùng, hãy khởi động PHP-FPM.
Mã:
systemctl start php-7.4-fpm.service
Để bật Zend OPcache:
Mã:
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 bằng các lệnh sau.
Mã:
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
Mã:
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)​

Mô-đun xDebug là tiện ích mở rộng gỡ lỗi cho PHP. Việc cài đặt là tùy chọn.

Cài đặt xDebug bằng các lệnh sau.
Mã:
cd /opt/php-7.4/etc
../bin/pecl-C ./pear.conf update-channels
../bin/pecl -C ./pear.conf install xdebug
và bật xDebug
Mã:
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:
Mã:
systemctl startphp-7.4-fpm.service
Kiểm tra phiên bản PHP:
Mã:
cd/opt/php-7.4/bin
./php --version

3.4 Bật PHP 7.4 trong ISPConfig​

Trong ISPConfig 3.1, bạn có thể cấu hình phiên bản PHP mới trong System > Additional PHP Versions. Trên tab Name, 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:





Đi tới tab Cài đặt FastCGI và điền vào các trường như sau:
Mã:
[B]Đường dẫn đến tệp nhị phân PHP FastCGI:[/b]/opt/php-7.4/bin/php-cgi
[B]Đường dẫn đến thư mục php.ini:[/b]/opt/php-7.4/lib
Mã:


Sau đó, đi tới Cài đặt PHP-FPM taband điền vào các trường như sau:
Mã:
[B]Đường dẫn đến tập lệnh khởi tạo PHP-FPM:[/b]php-7.4-fpm
[B]Đường dẫn đến thư mục php.ini:[/b]/opt/php-7.4/lib
[B]Đường dẫn đến thư mục nhóm PHP-FPM:[/b]/opt/php-7.4/etc/php-fpm.d
Mã:



5 Liên kết​

 
Back
Bên trên