Hướng Dẫn Cấu Hình PHP Trên ServBay: Tùy Chỉnh php.ini, PHP-FPM và Các Extension
ServBay mang đến cho nhà phát triển web một môi trường PHP cục bộ mạnh mẽ và linh hoạt. Để phù hợp với các nhu cầu dự án khác nhau, bạn có thể cần điều chỉnh nhiều tham số cấu hình PHP như giới hạn bộ nhớ, kích thước upload file, cấp độ thông báo lỗi hoặc bật các module mở rộng PHP cụ thể.
Bài viết này sẽ hướng dẫn chi tiết cách thay đổi cấu hình PHP trong ServBay. ServBay khuyến khích và cung cấp một giao diện đồ họa (UI) thuận tiện để quản lý các thiết lập này. Dù biết rõ vị trí và cấu trúc file cấu hình (như php.ini
và php-fpm.conf
) là rất hữu ích, bạn nên thực hiện thao tác chỉnh sửa qua giao diện UI của ServBay để đảm bảo cấu hình được lưu trữ bền vững và tương thích tốt nhất.
Lưu ý quan trọng
Vui lòng không chỉnh sửa thủ công các file cấu hình PHP do ServBay tạo ra (nằm ở /Applications/ServBay/etc/php/<phiên_bản>/
và các thư mục con). Những file này được quản lý bởi ServBay; việc thay đổi thủ công sẽ bị ghi đè khi ServBay được cập nhật, khởi động lại hoặc thực hiện các thao tác liên quan. Mọi thay đổi cấu hình nên thực hiện qua UI của ServBay.
Tổng Quan
Trong ServBay, mỗi phiên bản PHP đều có thư mục lưu trữ cấu hình riêng biệt. Ví dụ, file cấu hình PHP 8.3 nằm tại /Applications/ServBay/etc/php/8.3
.
Các file cấu hình chính gồm:
php.ini
: File cấu hình chủ đạo của PHP, ảnh hưởng tới cài đặt chung cho CLI và môi trường web.php-fpm.conf
: File cấu hình cho PHP-FPM (FastCGI Process Manager), chủ yếu quyết định cách PHP hoạt động và hiệu suất khi tích hợp với web server (như Caddy hoặc Nginx).conf.d/
: Thư mục chứa các file cấu hình extension PHP (file.ini
riêng cho từng extension nhưxdebug.ini
,opcache.ini
, ...).
Mặc dù các file này tồn tại, ServBay cung cấp một cách an toàn và tiện lợi hơn để sửa đổi chúng thông qua giao diện người dùng.
Cấu Hình Qua Giao Diện Người Dùng ServBay (Cách Được Khuyến Nghị)
ServBay mang lại UI trực quan cho phép bạn chỉnh sửa trực tiếp các tham số cấu hình PHP. Sau khi thay đổi và lưu, ServBay sẽ tự động áp dụng các thiết lập mới, đồng thời (thường là tự động) khởi động lại dịch vụ PHP – bạn không cần thao tác thủ công với file hoặc dòng lệnh.
Cách truy cập giao diện cấu hình PHP:
- Mở cửa sổ chính của ServBay.
- Trên thanh điều hướng bên trái, nhấn vào Ngôn ngữ.
- Trong danh sách ngôn ngữ lập trình, chọn phiên bản PHP bạn muốn cấu hình (ví dụ: nhấp vào
PHP 8.3
). - Bảng điều khiển bên phải sẽ hiển thị thông tin chi tiết và các tuỳ chọn cấu hình cho phiên bản PHP này.
Một giao diện điển hình để chỉnh sửa cấu hình PHP giống như hình dưới:
Thông thường, giao diện chia thành ba khu vực chính tương ứng với các thiết lập: PHP-FPM, PHP (php.ini
) và extension PHP. Chi tiết từng phần sẽ được trình bày dưới đây.
Cấu Hình PHP-FPM
Gợi ý
Các thiết lập trong php-fpm.conf
chủ yếu ảnh hưởng đến hành vi PHP khi chạy dưới môi trường máy chủ web. Mọi thiết lập thay đổi tại đây qua UI sẽ ưu tiên (ghi đè) các tham số trùng tên trong php.ini
, nhưng chỉ áp dụng cho các request qua Web. Những chỉnh sửa này không ảnh hưởng đến việc chạy PHP qua dòng lệnh (CLI).
Dịch vụ Web của ServBay (Caddy hoặc Nginx) giao tiếp với PHP thông qua PHP-FPM. Giao diện cấu hình PHP-FPM cho phép bạn tùy chỉnh các tham số sức mạnh và ổn định của môi trường Web, ví dụ:
- Quản lý tiến trình (
pm
): Điều khiển cách PHP-FPM tạo/quản lý process worker (các chế độ nhưdynamic
,static
, ...). - Số lượng tiến trình (
pm.max_children
,pm.start_servers
, v.v.): Thiết lập số lượng tiến trình con tối đa, bao nhiêu tiến trình khởi tạo cùng lúc – ảnh hưởng tới khả năng xử lý đồng thời. - Giới hạn bộ nhớ (
memory_limit
): Thiết lập này ở PHP-FPM sẽ ghi đè cùng thông số ởphp.ini
, chỉ áp dụng cho request Web. - Lỗi và nhật ký: Thiết lập đường dẫn log lỗi, cấp độ và có hiển thị lỗi lên trình duyệt hay không.
Ví dụ: muốn tăng giới hạn bộ nhớ PHP trong môi trường Web từ mặc định (64M hoặc 128M) lên 1G, bạn chỉ cần tới phần cấu hình PHP-FPM trong UI ServBay, tìm tham số memory_limit
, chọn 1G
từ menu và Lưu. Thay đổi này chỉ áp dụng cho PHP chạy khi truy cập qua Web server; các script chạy qua dòng lệnh vẫn bị giới hạn theo memory_limit
trong php.ini
.
Ví dụ minh hoạ: Nếu trong php.ini
để memory_limit
là 512M
, còn trong PHP-FPM để là 128M
:
- Khi chạy PHP qua dòng lệnh (CLI), giới hạn bộ nhớ là
512M
. - Khi truy cập PHP qua trình duyệt, giới hạn là
128M
.
Cấu Hình php.ini
Gợi ý
Thiết lập trong php.ini
có tính toàn cục, ảnh hưởng tới cả môi trường CLI lẫn Web. Tuy nhiên, như đã nói, các giá trị trùng tên ở PHP-FPM sẽ ghi đè cho môi trường Web.
Phần UI này tương ứng với file cấu hình cốt lõi php.ini
. Bạn có thể chỉnh sửa nhiều tham số phổ biến về runtime PHP tại đây, gồm:
post_max_size
: Giới hạn kích thước data gửi qua phương thức POST.upload_max_filesize
: Giới hạn upload file dung lượng tối đa.date.timezone
: Thiết lập múi giờ mặc định cho PHP.display_errors
/error_reporting
: Quyết định có hiện lỗi ra trình duyệt không và lựa chọn cấp độ thông báo lỗi.max_execution_time
: Thời gian tối đa thực thi script (tính bằng giây).disable_functions
/disable_classes
: Vô hiệu hoá các hàm/lớp PHP nhằm bảo mật.open_basedir
: Giới hạn PHP truy cập vào một số đường dẫn hệ thống nhất định. Nên lưu tất cả dự án website của bạn trong thư mục gốc có sẵn của ServBay/Applications/ServBay/www
để dễ khai báo khi cấu hìnhopen_basedir
.
Bạn hoàn toàn có thể tùy chỉnh các trường cấu hình phổ biến của php.ini
trực tiếp qua ServBay UI.
Để tìm hiểu đầy đủ về các trường cấu hình trong php.ini
, hãy tham khảo tài liệu chính thức của PHP: PHP Runtime Configuration.
Cấu Hình Module Mở Rộng PHP
ServBay đã tích hợp sẵn rất nhiều extension PHP thường dùng cho các mục tiêu như kết nối database, cache, debug, hỗ trợ framework... Giao diện UI cho phép bạn dễ dàng bật/tắt và cấu hình các module này.
Một số extension nổi bật ServBay hỗ trợ gồm: xDebug
, OPcache
, ImageMagick
, Redis
, MongoDB
, Phalcon
, Swoole
, ...; cùng hàng loạt tiện ích khác như hỗ trợ nhiều loại CSDL (MySQL, PostgreSQL, MongoDB), message queue, cache system, ...
Cách kích hoạt hoặc tắt/bật một extension PHP:
- Vào phần cấu hình PHP trên UI của ServBay, chuyển sang tab “Mở rộng” hoặc tên tương tự.
- Xác định extension bạn muốn dùng (ví dụ
xdebug
). - Bật hoặc tắt nút chuyển trạng thái tương ứng.
- Nếu extension có phần thiết lập riêng (vd.
xdebug
), bạn có thể chỉnh luôn tham số nhưxdebug.mode
,xdebug.client_port
… trong giao diện. - Nhấn Lưu để áp dụng.
Danh sách đầy đủ các extension PHP hỗ trợ cũng như thông tin chi tiết, xem tài liệu chính thức tại Danh sách Module Mở Rộng PHP Của ServBay (luôn kiểm tra phiên bản tài liệu mới nhất).
Tìm Hiểu Về Cấu Trúc File Cấu Hình PHP (Không Khuyến Khích Sửa Thủ Công)
Dù bạn nên thao tác qua giao diện UI ServBay, nhưng hiểu về vị trí và cấu trúc file cấu hình giúp bạn nắm rõ hơn cơ chế hoạt động của PHP.
Các file cấu hình PHP do ServBay sinh ra nằm tại /Applications/ServBay/etc/php/<phiên_bản>/
, bao gồm:
php.ini
: File cấu hình chính.php-fpm.conf
: File cấu hình trình quản lý tiến trình PHP-FPM.conf.d/
: Chứa file.ini
cấu hình từng module mở rộng.
Ví Dụ Cấu Trúc File php.ini
File php.ini
dùng định dạng INI. Dưới đây là ví dụ một số thiết lập phổ biến:
; Thay đổi giới hạn bộ nhớ
memory_limit = 256M
; Giới hạn dung lượng upload file
upload_max_filesize = 50M
post_max_size = 50M
; Thiết lập múi giờ
date.timezone = "Asia/Shanghai" ; Hoặc "UTC", "America/New_York", ... theo nhu cầu
; Bật hiển thị lỗi (chỉ dành cho môi trường phát triển!)
display_errors = On
error_reporting = E_ALL
; Giới hạn thời gian thực thi tối đa
max_execution_time = 300
; Giới hạn đường dẫn quyền truy cập của PHP (ví dụ)
; open_basedir = /Applications/ServBay/www/:/tmp/
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Ví Dụ Cấu Trúc File php-fpm.conf
File php-fpm.conf
gồm các thiết lập tổng quát và pool xử lý tiến trình (thường pool mặc định tên là www
):
[global]
; Đường dẫn log lỗi chung
error_log = /Applications/ServBay/logs/php/8.3/errors.log
[www]
; Địa chỉ/port hoặc socket lắng nghe
listen = /Applications/ServBay/tmp/php-cgi-8.3.sock
listen.backlog = -1
listen.allowed_clients = 127.0.0.1
; User và group (thường chạy dưới user hiện tại)
; user = servbay-demo
; group = staff
; Phương thức quản lý tiến trình (static, dynamic, ondemand)
pm = dynamic
pm.max_children = 10 ; Số lượng tiến trình con tối đa
pm.start_servers = 2 ; Số tiến trình tạo khi khởi động
pm.min_spare_servers = 1 ; Số lượng tiến trình nghỉ tối thiểu
pm.max_spare_servers = 6 ; Số tiến trình nghỉ tối đa
pm.max_requests = 1024 ; Số request tối đa/process - tránh leak bộ nhớ
; Kích hoạt ghi log các tiến trình chậm (slow log)
request_slowlog_timeout = 5s
slowlog = /Applications/ServBay/logs/php/8.3/slow.log
; Thiết lập php ghi đè php.ini (ví dụ)
; php_admin_value[memory_limit] = 128M
; php_admin_flag[display_errors] = on
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Ví Dụ Cấu Hình Module PHP (conf.d/)
Các file .ini
trong thư mục conf.d/
dùng để cấu hình cho extension, ví dụ file xdebug.ini
:
[Xdebug]
; Nạp extension Xdebug
zend_extension = xdebug.so
; Chế độ hoạt động của Xdebug (debug, develop, profile, trace, coverage)
xdebug.mode=debug,develop
; Cách khởi động debug (yes, trigger, develop)
; yes: luôn kích hoạt debug
; trigger: chỉ debug khi có trigger (GET/POST/cookie)
; develop: chỉ bật tính năng hỗ trợ phát triển như xem Stacktrace
xdebug.start_with_request=yes
; Địa chỉ host + port để debug với IDE
xdebug.client_host=localhost
xdebug.client_port=39083
; Đường dẫn log xdebug
xdebug.log=/Applications/ServBay/logs/xdebug/8.3/xdebug.log
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Lưu ý: Bạn có thể xem các file này tại vị trí trên, nhưng tuyệt đối không chỉnh sửa thủ công – hãy thực hiện cấu hình qua giao diện ServBay UI.
Áp Dụng Thay Đổi: Khởi Động Lại Dịch Vụ PHP
Khi cấu hình PHP qua giao diện ServBay UI, phần mềm sẽ tự động phát hiện và áp dụng các thay đổi. Trong một số trường hợp, bạn cần chủ động khởi động lại dịch vụ PHP để tất cả thiết lập có hiệu lực hoàn toàn.
Cách thực hiện:
Khởi động lại qua giao diện người dùng ServBay
- Mở cửa sổ chính của ServBay.
- Trên thanh điều hướng trái, vào mục Gói phần mềm.
- Tìm phiên bản PHP mà bạn đã chỉnh sửa cấu hình.
- Nhấn nút khởi động lại ở cạnh phiên bản PHP đó (ký hiệu mũi tên vòng).
Khởi động lại bằng dòng lệnh với servbayctl
Nếu bạn quen thao tác với Terminal, hãy dùng tiện ích CLI servbayctl
đi kèm ServBay để quản lý các dịch vụ, bao gồm khởi động lại PHP từng phiên bản.
Mở Terminal và chạy, thay 8.3
bằng phiên bản PHP cần khởi động lại:
servbayctl restart php 8.3
Sau khi thực hiện lệnh này, ServBay sẽ khởi động lại tiến trình PHP-FPM phiên bản tương ứng để áp dụng thay đổi mới.
Giải Đáp Các Câu Hỏi Thường Gặp (FAQ)
Hỏi: Tôi đã sửa trực tiếp file
php.ini
nhưng thay đổi không có tác dụng hoặc nhanh chóng bị ghi đè?- Trả lời: Các file cấu hình trong ServBay được phần mềm quản lý/tự sinh lại khi cập nhật, khởi động lại hoặc thực hiện các thao tác nội bộ khác; mọi sửa đổi trực tiếp sẽ mất hiệu lực. Hãy luôn thao tác với cấu hình PHP qua giao diện ServBay UI để đảm bảo thay đổi mang tính lâu dài.
Hỏi: Làm sao để tăng giới hạn bộ nhớ PHP hoặc kích thước upload file?
- Trả lời: Vào ServBay UI, chọn Ngôn ngữ -> chọn phiên bản PHP. Trong tab PHP-FPM, tìm và chỉnh
memory_limit
(áp dụng cho môi trường Web); trong mục php.ini sửaupload_max_filesize
vàpost_max_size
(toàn cục, web có thể bị ghi đè bởi FPM). Nhớ lưu và khởi động lại dịch vụ PHP sau khi sửa.
- Trả lời: Vào ServBay UI, chọn Ngôn ngữ -> chọn phiên bản PHP. Trong tab PHP-FPM, tìm và chỉnh
Hỏi: Làm sao để bật hoặc cấu hình Xdebug?
- Trả lời: Vào UI ServBay, chọn Ngôn ngữ -> chọn phiên bản PHP. Trong mục “Mở rộng”, bật extension
xdebug
, sau đó chỉnh các tham sốxdebug.mode
,xdebug.client_host
,xdebug.client_port
theo nhu cầu debug, rồi lưu và khởi động lại PHP.
- Trả lời: Vào UI ServBay, chọn Ngôn ngữ -> chọn phiên bản PHP. Trong mục “Mở rộng”, bật extension
Hỏi: Sự khác biệt giữa
php.ini
và cấu hình PHP-FPM là gì? Tôi nên sửa ở đâu?- Trả lời:
php.ini
là file cấu hình toàn cục của PHP – ảnh hưởng tới CLI và môi trường Web. Cấu hình PHP-FPM (php-fpm.conf
) chỉ ảnh hưởng PHP khi chạy dưới Web server, đồng thời các thiết lập trùng tên ở đây sẽ ghi đèphp.ini
. Nếu bạn muốn thay đổi tham số chỉ dành cho Web server (như thời gian thực thi, bộ nhớ, lỗi), hãy ưu tiên chỉnh trong PHP-FPM; nếu muốn ảnh hưởng tới CLI hoặc toàn hệ thống, chỉnh trongphp.ini
. UI ServBay đã phân chia rõ ràng các thiết lập giúp bạn dễ thao tác.
- Trả lời:
Kết Luận
ServBay cung cấp một giải pháp an toàn, thuận tiện để quản lý toàn diện cấu hình PHP bao gồm php.ini
, PHP-FPM và các extension ngay trên giao diện người dùng. Việc chỉnh sửa, lưu và khởi động lại dịch vụ PHP qua UI sẽ giúp môi trường phát triển của bạn luôn phù hợp theo mong muốn. Dù việc hiểu biết về cấu trúc file là hữu ích, bạn nên luôn thao tác qua giao diện ServBay UI để tránh nguy cơ bị ghi đè thủ công. Hãy tận dụng khả năng tùy chỉnh linh hoạt của ServBay để thiết lập môi trường PHP tối ưu cho từng dự án phát triển web.