PHP vừa mới ra phiên bản 7.4 hôm 28/11/2019. (Xem changelog ở đây).
Nay rảnh nên quyết định cài lên VPS.
1. PHP Package
Trước tiên, để keep-up-to-date với các phiên bản PHP, mình sử dụng PPA của bạn Ondrej (https://launchpad.net/~ondrej/+archive/ubuntu/php):
add-apt-repository ppa:ondrej/php apt update
Very easy. Lúc này, mình có thể cài đặt bất kỳ phiên bản PHP nào, từ các bản 7.0
, 7.2
, vv.. cho đến bản 7.4
mới ra lò.
2. Cài đặt PHP 7.4
Sau khi đã đảm bảo việc keep-up-to-date thì tiến hành cài đặt:
apt install php7.4-fpm
Các “thứ” sẽ được cài đặt bao gồm:
php7.4-cli php7.4-common php7.4-fpm php7.4-json php7.4-opcache php7.4-readline
Các thứ nên/cần được cài thêm:
apt install \ php7.4-bcmath \ php7.4-bz2 \ php7.4-curl \ php7.4-gd \ php7.4-intl \ php7.4-mbstring \ php7.4-mysql \ php7.4-xml \ php7.4-zip
3. Cấu hình PHP 7.4
Thay đổi một số thiết lập trong file php.ini
:
# Open file to edit vi /etc/php/7.4/fpm/php.ini
Vài thiết lập cần/nên được sửa đổi để phù hợp với nhu cầu:
max_execution_time = 300 max_input_time = 600 memory_limit = 256M post_max_size = 100M cgi.fix_pathinfo = 0 upload_max_filesize = 100M
Sau đó, khởi động lại service PHP 7.4 FPM:
service php7.4-fpm restart
4. Cấu hình NGINX chạy PHP 7.4
Tạo file cấu hình chạy PHP cho NGINX:
# Open file to edit vi /etc/nginx/php.conf
Dưới đây là nội dung file cấu hình tham khảo:
location / { try_files $uri $uri/ /index.php?$query_string; } location ~ [^/]\.php(/|$) { fastcgi_split_path_info ^(.+?\.php)(/.*)$; if (!-f $document_root$fastcgi_script_name) { return 404; } fastcgi_pass unix:/run/php/php7.4-fpm.sock; fastcgi_index index.php; fastcgi_param HTTP_PROXY ""; include fastcgi.conf; }
File này có thể được tái sử dụng nhiều lần khi thiết lập các website chạy trên NGINX. Ví dụ về thiết lập cho subdomain dev.linhntaim.com sử dụng mã nguồn WordPress có sử dụng thông tin cấu hình từ php.conf
:
server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name dev.linhntaim.com; include ssl.conf; index index.php index.html; ... include php.conf; # PHP configuration }
Sau khi đã tạo/chỉnh sửa các file cấu hình, thực hiện kiểm tra và khởi động lại service NGINX:
nginx -t service nginx restart
Hoàn tất.
5. Vài điều cần lưu ý sau khi cài đặt PHP 7.4
PHP 7.4 đã hỗ trợ và mặc định khi kết nối với CSDL MySQL 8.0 sẽ sử dụng tài khoản có password được mã hóa theo caching_sha2_password
. Do vậy, khi tạo tài khoản trên CSDL MySQL 8.0 để kết nối từ mã nguồn PHP 7.4, cần tạo với câu lệnh sau:
-- A very clearly way to create an account with password hashed by caching_sha2_password create user 'php7.4'@'localhost' identified with caching_sha2_password by 'password'; -- Or because MySQL 8.0 has caching_sha2_password as default method, we simply excute this create user 'php7.4'@'localhost' identified by 'password';
Đối với những tài khoản đã tạo với password được mã hóa theo mysql_native_password
hoặc phương thức khác, để cập nhật password với phương thức mới, dùng câu lệnh sau:
alter user 'php7.4'@'localhost' identified with caching_sha2_password by 'password';
Khi cảm thấy ổn với phiên bản PHP 7.4 sau một thời gian sử dụng, tiến hành xóa bỏ các phiên bản cũ hơn nếu không cần dùng nữa:
apt remove \ php7.3-fpm \ php7.3-common \ php7.3-bcmath \ php7.3-bz2 \ php7.3-curl \ php7.3-gd \ php7.3-intl \ php7.3-mbstring \ php7.3-mysql \ php7.3-xml \ php7.3-zip apt autoremove --purge rm -r /etc/php/7.3