Tuỳ chỉnh thiết lập PHP trên DirectAdmin

Website báo lỗi hết bộ nhớ, không tải lên được tệp lớn, hoặc chạy quá thời gian cho phép: cả ba đều sửa được bằng cách đổi một thiết lập PHP. Bài này nói cách làm trên DirectAdmin và các giá trị nên đặt.

1. Đường vào

Account Manager → PHP Settings.

Trang này hoạt động theo kiểu ghi đè từng thiết lập chứ không phải một bảng đầy đủ các ô. Phần Add New Override có hai ô:

Ô Nghĩa
Setting Chọn tên thiết lập từ danh sách thả xuống
Value Chọn hoặc nhập giá trị

Bấm Add để thêm. Thiết lập nào không ghi đè thì giữ nguyên giá trị mặc định của máy chủ.

Cách này gọn hơn bản cũ: chỉ những gì quý Khách hàng cố ý đổi mới nằm trong danh sách, nên sau này nhìn lại biết ngay đã đổi gì.

2. Năm thiết lập hay cần đổi nhất

Thiết lập Dùng khi Giá trị thường dùng
memory_limit Lỗi Allowed memory size exhausted 256M, website nặng thì 512M
upload_max_filesize Không tải lên được tệp lớn 64M hoặc hơn, tuỳ nhu cầu
post_max_size Đi kèm ô trên Phải lớn hơn hoặc bằng upload_max_filesize
max_execution_time Trang chạy lâu bị cắt giữa chừng 120 hoặc 300 giây
display_errors Cần xem lỗi khi đang phát triển On khi thử, Off khi chạy thật

upload_max_filesize và post_max_size đi với nhau

Đây là cặp hay bị sửa thiếu một nửa.

Tăng upload_max_filesize lên 64M mà để post_max_size ở 8M thì vẫn không tải lên được tệp 20M, vì toàn bộ dữ liệu gửi lên bị giới hạn bởi ô thứ hai.

Quy tắc: post_max_size lớn hơn upload_max_filesize một chút, vì ngoài tệp còn có các trường khác trong biểu mẫu.

display_errors phải tắt trên website chạy thật

Bật display_errors trên website đang phục vụ khách là in thông báo lỗi ra màn hình cho mọi người đọc. Thông báo lỗi PHP thường kèm đường dẫn đầy đủ trên máy chủ, đôi khi cả tên cơ sở dữ liệu và tên người dùng.

Đó là thông tin có giá trị với người muốn tấn công website.

Cần xem lỗi trên website đang chạy thì đọc nhật ký lỗi thay vì bật hiển thị, xem bài về thống kê và nhật ký trong cùng chuyên mục.

3. Đổi phiên bản PHP

Trang PHP Settings dùng để đổi thiết lập, không phải đổi phiên bản.

Chọn phiên bản PHP nằm ở phần cấu hình của từng tên miền. Nếu không thấy, nghĩa là gói hosting của quý Khách hàng chỉ chạy một phiên bản, hoặc việc đổi do Cloudzone làm; nhắn qua khung chat là được.

⚠️ Đổi phiên bản PHP là việc có rủi ro. Mã nguồn cũ có thể không chạy trên PHP mới, và website trắng ngay sau khi đổi. Nên:

  1. Sao lưu trước.
  2. Đổi vào giờ ít người truy cập.
  3. Mở website lên kiểm ngay, cả trang chủ lẫn vài trang bên trong lẫn trang quản trị.
  4. Có vấn đề thì đổi về phiên bản cũ ngay, rồi tìm nguyên nhân sau.

Đừng để website chạy trên phiên bản PHP đã hết hỗ trợ. Phiên bản hết hỗ trợ không nhận bản vá bảo mật nữa, và đó là con đường bị chiếm phổ biến.

4. Kiểm thiết lập đã ăn chưa

Đổi xong, kiểm bằng cách tạo một tệp trong thư mục web:

<?php phpinfo();

Lưu thành kiem-php.php trong domains/<ten-mien>/public_html, mở https://<ten-mien>/kiem-php.php, rồi tìm tên thiết lập trong trang.

⚠️ Xoá tệp đó ngay sau khi xem xong. phpinfo() in ra rất nhiều thông tin về máy chủ: đường dẫn, phần mở rộng đang bật, phiên bản thư viện. Để quên một tệp như vậy trên website công khai là đưa sẵn bản đồ cho người muốn tấn công.

Cách an toàn hơn nếu website là WordPress: dùng mục Site Health → Info có sẵn trong trang quản trị, không phải tạo tệp nào.

5. Thiết lập đổi mà website vẫn báo lỗi cũ

Ba nguyên nhân, theo thứ tự hay gặp:

Nguyên nhân Cách xử lý
Website có tệp .htaccess hoặc php.ini riêng đang ghi đè lại Tìm và sửa ở đó, hoặc bỏ dòng đó đi
Phần mềm website có giới hạn riêng của nó Ví dụ WordPress có WP_MEMORY_LIMIT trong wp-config.php
Thiết lập này không cho phép ghi đè ở mức người dùng Nhắn cho Cloudzone

Nguyên nhân thứ hai hay bị bỏ qua: tăng memory_limit ở DirectAdmin mà WordPress vẫn báo hết bộ nhớ, vì chính WordPress đang tự giới hạn mình thấp hơn.

6. Việc nên làm sau khi đổi

Việc Vì sao
Ghi lại đã đổi gì, ngày nào, vì sao Sáu tháng sau không ai nhớ vì sao max_execution_time là 300
Kiểm display_errors đang là Off Đây là thiết lập dễ bật lúc sửa lỗi rồi quên tắt
Mở lại website và vài trang bên trong Thiết lập PHP đổi có thể ảnh hưởng chỗ không ngờ

7. Khi cần hỗ trợ

Quý Khách hàng không tìm thấy thiết lập cần đổi trong danh sách, hoặc đổi rồi mà không ăn, hãy nhắn qua khung chat ở góc phải màn hình kèm: tên thiết lập, giá trị muốn đặt, và nguyên văn thông báo lỗi của website.

Thông báo lỗi thường chỉ thẳng ra thiết lập nào đang chặn, nhanh hơn là đoán.

Hướng dẫn này có ích cho bạn?

Cần đặt dịch vụ? Xem cấu hình và giá tại bảng giá Cloudzone - đặt gói trực tuyến, nhận dịch vụ ngay sau thanh toán. Cần tư vấn, mở khung chat ở góc phải màn hình.

Hướng dẫn liên quan