PHP 
FlashPanel giúp bạn dễ dàng chuyển đổi phiên bản mặc định cho máy chủ, thiết lập kích thước tải lên tệp tối đa, thời gian thực thi tối đa và bất/tắt OPCache.
! Cài đặt PHP thủ công
Nếu bạn chọn cài đặt thủ công các phiên bản PHP trên máy chủ của mình, FlashPanel sẽ không biết về các cài đặt PHP đó. FlashPanel chỉ biết về các cài đặt PHP được quản lý thông qua bảng điều khiển FlashPanel.
Multiple PHP Versions 
Khi tạo một máy chủ, bạn phải quyết định phiên bản PHP nào bạn muốn cài đặt làm phiên bản default. PHP CLI trên máy chủ của bạn sẽ trỏ đến phiên bản đã cài đặt được chọn tại thời điểm tạo.
Khi máy chủ đã được tạo, FlashPanel giúp bạn dễ dàng cài đặt các phiên bản bổ sung cùng với phiên bản mặc định. Trong tài liệu sau, chúng tôi sẽ thảo luận về cách quản lý các phiên bản PHP bổ sung này.
Cơ chế quản lý PHP-FPM Pool với Multi-User và Multi-Version 
FlashPanel quản lý PHP theo mô hình PHP Pool riêng biệt cho từng user và từng phiên bản PHP. Điều này đảm bảo sự cô lập và bảo mật tối đa giữa các user trên cùng một máy chủ.
📊 Sơ đồ minh họa 
┌─────────────────────────────────────────────────────────────────┐
│                         Server                                  │
│                                                                 │
│  ┌──────────────┐                    ┌──────────────┐           │
│  │  System User │                    │  System User │           │
│  │     abc      │                    │     xyz      │           │
│  └──────────────┘                    └──────────────┘           │
│         │                                    │                  │
│         │                                    │                  │
│  ┌──────▼──────────────────┐        ┌───────▼─────────────────┐ │
│  │     PHP 8.0             │        │     PHP 8.0             │ │
│  │  www-abc.conf           │        │  www-xyz.conf           │ │
│  │  listen: /run/php/      │        │  listen: /run/php/      │ │
│  │    php8.0-fpm-abc.sock  │        │    php8.0-fpm-xyz.sock  │ │
│  │  user: abc              │        │  user: xyz              │ │
│  │  group: abc             │        │  group: xyz             │ │
│  └─────────────────────────┘        └─────────────────────────┘ │
│                                                                 │
│  ┌─────────────────────────┐        ┌─────────────────────────┐ │
│  │     PHP 8.4             │        │     PHP 8.4             │ │
│  │  www-abc.conf           │        │  www-xyz.conf           │ │
│  │  listen: /run/php/      │        │  listen: /run/php/      │ │
│  │    php8.4-fpm-abc.sock  │        │    php8.4-fpm-xyz.sock  │ │
│  │  user: abc              │        │  user: xyz              │ │
│  │  group: abc             │        │  group: xyz             │ │
│  └─────────────────────────┘        └─────────────────────────┘ │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘
Công thức: Tổng số Pool = Số User × Số Phiên bản PHP
Ví dụ: 2 users × 2 PHP versions = 4 pools🔍 Giải thích chi tiết 
1. Cấu trúc thư mục Pool
Mỗi phiên bản PHP có thư mục pool riêng:
- PHP 8.0: /etc/php/8.0/fpm/pool.d/
- PHP 8.4: /etc/php/8.4/fpm/pool.d/
2. Tên file Pool
Format: www-{username}.conf
- User abc+ PHP 8.0 →/etc/php/8.0/fpm/pool.d/www-abc.conf
- User xyz+ PHP 8.0 →/etc/php/8.0/fpm/pool.d/www-xyz.conf
- User abc+ PHP 8.4 →/etc/php/8.4/fpm/pool.d/www-abc.conf
- User xyz+ PHP 8.4 →/etc/php/8.4/fpm/pool.d/www-xyz.conf
3. Unix Socket riêng biệt
Mỗi pool lắng nghe trên socket riêng:
- Format: /run/php/php{version}-fpm-{username}.sock
- Ví dụ: - /run/php/php8.0-fpm-abc.sock
- /run/php/php8.0-fpm-xyz.sock
- /run/php/php8.4-fpm-abc.sock
- /run/php/php8.4-fpm-xyz.sock
 
4. Quyền sở hữu
Mỗi pool chạy với quyền của user riêng:
- Pool của user abc:user = abc, group = abc
- Pool của user xyz:user = xyz, group = xyz
5. Lợi ích của mô hình này
✅ Bảo mật cao: User abc không thể truy cập file của user xyz
 ✅ Cô lập hoàn toàn: Lỗi ở một pool không ảnh hưởng pool khác
 ✅ Linh hoạt: Mỗi site có thể chạy PHP version khác nhau
 ✅ Hiệu suất: Dễ dàng điều chỉnh tài nguyên cho từng pool
 ✅ Quản lý dễ dàng: Có thể restart pool riêng lẻ không ảnh hưởng toàn hệ thống
6. Ví dụ thực tế
Máy chủ có:
- 3 system users: user1,user2,user3
- 3 PHP versions: 8.0,8.2,8.4
Tổng số pools được tạo: 3 users × 3 versions = 9 pools
/etc/php/8.0/fpm/pool.d/www-user1.conf
/etc/php/8.0/fpm/pool.d/www-user2.conf
/etc/php/8.0/fpm/pool.d/www-user3.conf
/etc/php/8.2/fpm/pool.d/www-user1.conf
/etc/php/8.2/fpm/pool.d/www-user2.conf
/etc/php/8.2/fpm/pool.d/www-user3.conf
/etc/php/8.4/fpm/pool.d/www-user1.conf
/etc/php/8.4/fpm/pool.d/www-user2.conf
/etc/php/8.4/fpm/pool.d/www-user3.confCài đặt 

Bạn có thể cài đặt các phiên bản PHP bổ sung thông qua tab Ứng dụng trên bảng điều khiển quản lý của máy chủ. Sau khi một phiên bản PHP bổ sung đã được cài đặt, bạn có thể chọn nó khi tạo một trang web hoặc khi chuyển đổi phiên bản PHP của một trang web.
Khi bạn cài đặt một phiên bản PHP mới vào máy chủ của mình, FlashPanel sẽ tạo và thiết lập cấu hình quy trình PHP-FPM cho phiên bản đó. Điều này có nghĩa là máy chủ của bạn sẽ chạy nhiều phiên bản PHP cùng một lúc.
Gỡ cài đặt 
Bạn có thể gỡ cài đặt các phiên bản PHP thông qua tab Ứng dụng trên bảng điều khiển quản lý của máy chủ. Bạn có thể chọn gỡ cài đặt phiên bản PHP miễn là:
- Có các phiên bản khác được cài đặt.
- Phiên bản bạn muốn gỡ cài đặt không phải là phiên bản mặc định của máy chủ cho các trang web mới.
- Phiên bản bạn muốn gỡ cài đặt không phải là phiên bản mặc định của máy chủ trên CLI.
- Phiên bản bạn muốn gỡ cài đặt không được sử dụng bởi bất kỳ trang web nào.
Cài PHPRedis với igbinary và zstd + lz4 
WARNING
OpenLiteSpeed không áp dụng
- Vào Application > PHP cài extension - php8.2-redis,- php8.2-igbinary,- php8.2-lz4.
- Vào Server > Termial (root user) chạy lệnh bash- apt update && apt install liblz4-dev libzstd-dev pecl uninstall redis pecl install --configureoptions 'enable-redis-igbinary="yes" enable-redis-zstd="yes" enable-redis-lz4="yes"' redis- Nó sẽ báo lỗi liên quan tới php_ini tuy nhiên có thể bỏ qua. - Check kết quả bằng lệnh - php -ri redis- Kết quả như trong hình là ok.  - Bạn nào chạy nhiều site dùng chung 1 instance Redis đặc biệt là các site - Wordpress,- Woocommercenên xem xét bật compression để tối ưu hơn.
Quản lý & Cấu hình PHP 

WARNING
Thay đổi các cài đặt sau sẽ áp dụng các thay đổi cho tất cả các phiên bản PHP được cài đặt trên máy chủ.
IonCube Loader 
Tính năng này cho phép bạn cài đặt IonCube Loader cho phiên bản PHP bạn muốn.
Khi bạn bấm vào block tính năng IonCube Loader, bạn sẽ thấy lần lượt các phiên bản PHP có hỗ trợ IonCube Loader và trạng thái đã cài đặt hay chưa. Bạn có thể bấm nút cài đặt hoặc gỡ cài đặt IonCube Loader theo ý muốn.
Chuyển đổi phiên bản PHP mặc định 
Phiên bản PHP 'mặc định' là phiên bản PHP sẽ được sử dụng theo mặc định khi tạo một trang web mới trên máy chủ. Các bước chuyển đổi:
- Tại bảng điều khiển quản lý máy chủ > Chọn Phiên bản mặc định PHP
- Chọn phiên bản PHP muốn chuyển
- Chọn Cập nhật
Khi chọn một phiên bản PHP mới làm phiên bản 'mặc định' cho máy chủ của bạn, các phiên bản PHP được các trang web hiện có sử dụng sẽ không được cập nhật.
Kích thước tải lên tệp tối đa 
Bạn có thể thiết lập cấu hình kích thước tải lên tệp tối đa tại bảng điều khiển quản lý máy chủ. Giá trị được cung cấp tính theo đơn vị megabyte. Để tham khảo, 1024MB là 1GB.
Thời gian thực thi tối đa 
Bạn có thể định cấu hình thời gian thực thi tối đa tại bảng điều khiển quản lý máy chủ. Giá trị được cung cấp tính theo theo đơn vị giây.
OPcache 
OPcache là công nghệ cache bytecode giúp tăng tốc độ thực thi ứng dụng PHP. Mỗi khi một script PHP được thực thi, PHP cần biên dịch script đó thành bytecode. OPcache lưu trữ bytecode này vào bộ nhớ, giúp các lần thực thi sau không cần biên dịch lại, tiết kiệm thời gian và làm ứng dụng chạy nhanh hơn đáng kể.
Bật/Tắt OPcache 
Bạn có thể bật hoặc tắt OPcache trực tiếp từ bảng điều khiển quản lý máy chủ:
- Tại bảng điều khiển quản lý máy chủ, tìm đến mục PHP
- Chọn tính năng OPcache
- Màn hình hiển thị thông tin về OPcache và trạng thái hiện tại (đã bật hoặc chưa)
- Bấm nút Bật (Enable) để kích hoạt OPcache, hoặc nút Tắt (Disable) để vô hiệu hóa OPcache
- Hệ thống sẽ thực hiện cấu hình và khởi động lại dịch vụ PHP-FPM tự động
Lưu ý quan trọng
Nếu bạn bật OPcache cho môi trường production, bạn nên đảm bảo rằng script triển khai (deployment) của bạn khởi động lại dịch vụ PHP-FPM vào cuối mỗi lần triển khai. Điều này để đảm bảo OPcache được làm mới và sử dụng code mới nhất.
Cấu hình OPcache nâng cao 
Ngoài việc bật/tắt OPcache, bạn có thể tùy chỉnh các thông số OPcache trong phần Cập nhật cấu hình PHP.ini bên dưới.
Cập nhật cấu hình PHP.ini 
Giờ đây, bạn không còn cần phải truy cập vào SSH hay sửa cấu hình PHP ini một cách thủ công nữa.
✅ Bạn có thể chỉnh sửa các thông số PHP ngay trên giao diện web chỉ với vài cú click chuột.
🎯 Tính năng này giúp gì cho bạn? 
- ✅ Thay đổi cấu hình PHP dễ dàng, nhanh chóng mà không cần biết lập trình.
- ✅ Không cần vào terminal, không cần mở file nào cả.
- ✅ Giao diện thân thiệnt, giải thích rõ ràng từng thông số.
- ✅ Áp dụng ngay cho cả hai môi trường: - PHP khi chạy trên website (PHP-FPM)
- PHP khi chạy dòng lệnh (CLI)
 
🖱️ Hướng dẫn sử dụng 
- Truy cập vào giao diện PHP Settings 
- Nhấn nút Recommend để tự động áp dụng các cấu hình bảo mật tốt nhất - Hệ thống sẽ thiết lập các giá trị an toàn cho tất cả các tùy chọn cấu hình php ini
- Lý tưởng cho người dùng muốn tăng cường bảo mật mà không cần cấu hình thủ công
- Bạn vẫn có thể điều chỉnh từng cài đặt riêng lẻ sau khi áp dụng khuyến nghị
 
- Hoặc tùy chỉnh các phần sau: - Hệ thống quản lý các tùy chọn cấu hình php ini sau đây: - memory_limit: Giới hạn bộ nhớ RAM tối đa cho phép một script sử dụng
- max_execution_time: Thời gian chạy tối đa (tính bằng giây) cho phép một script thực thi trước khi bị dừng
- max_input_time: Giới hạn thời gian (giây) cho phép script xử lý dữ liệu đầu vào như POST và GET
- max_input_vars: Giới hạn số lượng biến đầu vào cho phép trong mỗi request
- upload_max_filesize: Kích thước tối đa (Megabytes) cho phép của file upload
- post_max_size: Giới hạn kích thước dữ liệu POST mà PHP có thể xử lý
- display_errors: Bật/tắt việc hiển thị lỗi PHP trên trình duyệt web
- error_reporting: Thiết lập mức độ báo lỗi PHP sẽ được hiển thị
- date.timezone: Thiết lập múi giờ mặc định của PHP
- session.gc_maxlifetime: Thời gian tồn tại tối đa (giây) của session khi không hoạt động trước khi bị xóa bởi garbage collector
- disable_functions: Danh sách các hàm PHP bị vô hiệu hóa vì lý do bảo mật
- opcache.enable: Kích hoạt PHP OPCache để tăng hiệu suất đáng kể thông qua việc cache các script đã compile trong shared memory
- opcache.memory_consumption: Lượng bộ nhớ (RAM) được phân bổ cho OPcache để cache mã PHP đã compile
- opcache.interned_strings_buffer: Bộ nhớ dành cho việc lưu trữ interned strings nhằm tối ưu hiệu suất PHP
- opcache.max_accelerated_files: Giới hạn số lượng file PHP có thể được tăng tốc bởi OPcache
- opcache.validate_timestamps: Có tự động kiểm tra sự thay đổi của source code để refresh cache hay không
- opcache.save_comments: Có lưu giữ các comment trong bytecode cache của PHP hay không
 
💡 Lưu ý 
- Sau khi cập nhật, hệ thống sẽ tự động áp dụng cấu hình mới.
- Bạn có thể bấm nút "Làm mới" để lấy giá trị đang được áp dụng.
- Nếu có điều gì hoạt động không đúng, vui lòng liên hệ với chúng tôi.