Cách cài đặt PHP 5.6 làm PHP-FPM & FastCGI bổ sung cho ISPConfig 3.1 trên Ubuntu 16.04

theanh

Administrator
Nhân viên
Bài hướng dẫn này chỉ cách xây dựng PHP 5.6 dưới dạng phiên bản PHP-FPM và FastCGI trên Ubuntu 16.04 (Xenial Xerus). Ubuntu 16.04 được cài sẵn PHP 7 theo mặc định nhưng vẫn còn nhiều trang web không hỗ trợ PHP 7. Bài hướng dẫn này sẽ chỉ cách cài đặt PHP 5.6 dưới dạng phiên bản PHP bổ sung trên Ubuntu 16.04 để bạn có thể chuyển đổi giữa cả hai phiên bản cho từng trang web riêng lẻ trong ISPConfig.


1 Lưu ý sơ bộ​

Tôi sẽ cài đặt PHP 5.6 trong /opt để PHP 7 chính của Ubuntu không bị ảnh hưởng và PHP 7 sẽ vẫn là PHP mặc định của máy chủ của chúng tôi trong khi PHP 5.6 có sẵn dưới dạng tùy chọn trong ISPConfig (cài đặt trang web). 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 trong ISPConfig.

Với các phiên bản PHP cũ hơn, PHP-FPM và FastCGI loại trừ lẫn nhau nên nhị phân FPM và FastCGI phải được xây dựng riêng. Với PHP 5.6, một tệp nhị phân đơn hỗ trợ chế độ FPM và FCGI có thể được xây dựng.


2 Biên dịch PHP 5.6 với PHP-FPM và Fastcgi​

Cài đặt các điều kiện tiên quyết để xây dựng PHP 5.6, wget 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-get install build-essential wget nano
Mã:
apt-get install libfcgi-dev libfcgi0ldbl libjpeg62-dbg libmcrypt-dev libssl-dev libc-client2007e libc-client2007e-dev libxml2-dev libbz2-dev libcurl4-openssl-dev libjpeg-dev libpng12-dev libfreetype6-dev libkrb5-dev libpq-dev libxml2-dev libxslt1-dev
Mã:
ln -s /usr/lib/libc-client.a /usr/lib/x86_64-linux-gnu/libc-client.a
(Lệnh cuối cùng là cần thiết nếu bạn xây dựng PHP với --with-imap, nếu không ./configure sẽ dừng lại với lỗi sau:
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:/usr/local/src/php5-build/php-5.6.30#
)

Tải xuống và giải nén PHP 5.6 từ php.net:
Mã:
mkdir /opt/php-5.6.30
mkdir /usr/local/src/php5-build
cd /usr/local/src/php5-build
wget http://de.php.net/get/php-5.6.30.tar.bz2/from/this/mirror -O php-5.6.30.tar.bz2
tar jxf php-5.6.30.tar.bz2
Mã:
cd php-5.6.30/
Cấu hình và xây dựng PHP 5.6.30 như sau (bạn có thể điều chỉnh lệnh ./configure theo nhu cầu của bạn, hãy xem
Mã:
./configure --help
để xem tất cả các tùy chọn khả dụng; 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-5.6.30 --with-pdo-pgsql --with-zlib-dir --with-freetype-dir --enable-mbstring --with-libxml-dir=/usr --enable-soap --enable-calendar --with-curl --with-mcrypt --with-zlib --with-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 --enable-zip --with-pcre-regex --with-mysql --with-pdo-mysql --with-mysqli --with-jpeg-dir=/usr --with-png-dir=/usr --enable-gd-native-ttf --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-gettext --with-xmlrpc --with-xsl --with-kerberos--enable-fpm
Chuỗi lệnh trên chỉ là một lệnh dài, không cần ngắt dòng. 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 php.ini và php-fpm.conf vào đúng vị trí:
Mã:
cp /usr/local/src/php5-build/php-5.6.30/php.ini-production /opt/php-5.6.30/lib/php.ini
Mã:
cp /opt/php-5.6.30/etc/php-fpm.conf.default /opt/php-5.6.30/etc/php-fpm.conf
Tạo thư mục tệp nhóm php-fpm.d.
Mã:
mkdir/opt/php-5.6.30/etc/php-fpm.d
Mở /opt/php-5.6.30/etc/php-fpm.conf và điều chỉnh cài đặt sau (xóa dấu ; ở phía trước dòng pid):
Mã:
nano /opt/php-5.6.30/etc/php-fpm.conf
Mã:
[...]pid = run/php-fpm.pid[...]user = www-datagroup = www-data[...]listen = 127.0.0.1:8999[...]include=/opt/php-5.6.30/etc/php-fpm.d/*.conf

2.1 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. Cài đặt là tùy chọn.

Cài đặt xDebug bằng các lệnh sau.
Mã:
cd /opt/php-5.6.30/etc
pecl -C ./pear.conf update-channels
pecl -C ./pear.conf install xdebug
Sau đó chỉnh sửa tệp php.ini bằng trình chỉnh sửa:
Mã:
nano /opt/php-5.6.30/lib/php.ini
và thêm dòng sau vào cuối tệp:
Mã:
zend_extension=/opt/php-5.6.30/lib/php/extensions/no-debug-non-zts-20131226/xdebug.so

3 Tạo tệp đơn vị systemd​

Ubuntu Phiên bản 16.04 sử dụng systemd làm hệ thống khởi tạo. Tôi sẽ tạo một tệp đơn vị systemd để có thể bắt đầu/dừng và khởi động lại dịch vụ PHP-FPM.
Mã:
nano/lib/systemd/system/php-5.6.30-fpm.service
với nội dung sau:
Mã:
[Unit]
Description=The PHP 5.6 FastCGI Process Manager
After=network.target

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

[Cài đặt]
WantedBy=multi-user.target
Kích hoạt dịch vụ và tải lại systemd:
Mã:
systemctl enable php-5.6.30-fpm.service
systemctl daemon-reload
Cuối cùng khởi động PHP-FPM.
Mã:
systemctl start php-5.6.30-fpm.service
Để kích hoạt Zend OPcache, hãy mở /opt/php-5.6.30/lib/php.ini...
Mã:
nano /opt/php-5.6.30/lib/php.ini
... và thêm dòng sau vào end:
Mã:
[...]zend_extension=opcache.so
Kiểm tra phiên bản PHP:
Mã:
cd/opt/php-5.6.30/bin
./php --version
Đầu ra sẽ tương tự như ảnh chụp màn hình này.




4 Bật PHP 5.6 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 5.6.30) - 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 FastCGI Settings 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-5.6.30/bin/php-cgi
[B]Đường dẫn đến thư mục php.ini:[/b]/opt/php-5.6.30/lib


Sau đó, chuyển đến tab PHP-FPM Settings và đ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-5.6.30-fpm
[B]Đường dẫn đến thư mục php.ini:[/b]/opt/php-5.6.30/lib
[B]Đường dẫn đến thư mục nhóm PHP-FPM:[/b]/opt/php-5.6.30/etc/php-fpm.d



5Liên kết​

 
Back
Bên trên