Website và PHP
Tạo website, thêm tên miền phụ, chọn phiên bản PHP và thư mục gốc, bật chế độ Apache để dùng .htaccess và bật page cache của nginx.
Mỗi website trong ZoPanel thuộc về một tài khoản hosting và nằm tại /home/<tài-khoản>/domains/<tên-miền>/. nginx phục vụ website, còn PHP chạy trong pool PHP-FPM riêng, tách biệt của từng tài khoản, nên code của khách này không bao giờ dùng chung tiến trình PHP với khách khác.
Tạo website
- Vào Website và bấm Thêm website.
- Nhập Tên miền, không gồm
http://(ví dụexample.com). Giữ ô Đồng thời chạy www.example.com để thêmwwwlàm tên miền phụ. - Chọn Loại website:
| Loại | Kết quả |
|---|---|
| Git deploy | Kéo mã nguồn từ repository, tự nhận diện framework và deploy (xem Git deploy). |
| PHP | Ứng dụng PHP trong public_html. |
| WordPress | Website PHP, tự động cài WordPress (xem WordPress Toolkit). |
| Laravel | Website PHP với thư mục gốc public_html/public. |
| HTML | Chỉ file tĩnh, không có PHP. |
| Node / Proxy | nginx chuyển request tới ứng dụng lắng nghe tại 127.0.0.1 (xem Ứng dụng Node.js và Python). |
- Với các loại dùng PHP, chọn Phiên bản PHP. Danh sách chỉ gồm các phiên bản đã cài trên máy chủ; ZoPanel hỗ trợ PHP 7.4, 8.0, 8.1, 8.2, 8.3 và 8.4, quản trị viên cài thêm ở mục Runtime.
- Giữ SSL miễn phí (Let's Encrypt) ở trạng thái bật. Chứng chỉ được cấp ngay khi tên miền trỏ về máy chủ (xem Chứng chỉ SSL).
- Bấm Tạo website.
Hãy trỏ bản ghi A (và AAAA nếu dùng IPv6) của tên miền về IP máy chủ trước khi chờ SSL hoạt động. Quản trị viên và đại lý chọn được Chủ sở hữu ngay trong hộp thoại này. Số website tối đa của mỗi tài khoản do gói hosting quy định.
Tên miền và tên miền phụ
Mở website (Website → Quản lý) rồi vào tab Tên miền để thêm các tên miền khác cùng chạy bộ file này, ví dụ www.example.com hay một tên miền thương hiệu thứ hai.
- Tối đa 20 tên miền phụ cho mỗi website.
- Mỗi tên miền chỉ dùng được một lần trên máy chủ. Tên miền liên quan tới tên miền của tài khoản khác (ví dụ subdomain của tên miền người khác) sẽ bị từ chối.
- Sau khi lưu, chứng chỉ Let's Encrypt được cấp lại tự động cho danh sách tên miền mới.
- Không xoá được tên miền phụ còn email domain có hộp thư: hãy xoá email domain đó trước ở trang Email.
Phiên bản PHP và thư mục gốc
Tab PHP & cấu hình chứa các thiết lập chạy website:
| Trường | Ý nghĩa |
|---|---|
| Phiên bản PHP | Bất kỳ phiên bản nào đã cài, hoặc Không dùng PHP (tĩnh / proxy). Đổi lúc nào cũng được, pool PHP-FPM của tài khoản tự cập nhật theo. |
| Quy tắc rewrite | Mặc định, WordPress hoặc Laravel. Quy tắc WordPress còn chặn xmlrpc.php, file PHP trong wp-content/uploads và truy cập trực tiếp wp-config.php, readme.html, license.txt. |
| Thư mục gốc | Tính từ thư mục tên miền và luôn nằm trong public_html, ví dụ public_html hoặc public_html/public. |
| Cổng ứng dụng | Cổng reverse proxy. Đặt 0 để tắt chế độ proxy. |
Với website không dùng PHP, nginx trả lỗi 403 cho file .php, .phtml, .phar, .inc thay vì để lộ mã nguồn. Trên mọi website, nginx chặn file ẩn (trừ .well-known) và các file backup, dump phổ biến như .sql, .env, .bak, .log.
Giới hạn bộ nhớ và thời gian thực thi tối đa lấy theo gói hosting của tài khoản. Các tuỳ chọn khác như upload_max_filesize hay date.timezone được đặt riêng cho từng website ở Công cụ → Thiết lập PHP cho website (xem Công cụ website). Mỗi request tải lên tối đa 256 MB trên mọi website.
Chế độ Apache cho .htaccess
Mặc định ZoPanel phục vụ website bằng nginx nên file .htaccess không có tác dụng. Website chuyển từ cPanel, DirectAdmin hoặc ứng dụng có sẵn rule .htaccess có thể chuyển sang chế độ Apache:
- Mở tab Công cụ của website.
- Bật Hỗ trợ .htaccess (chế độ Apache). Lần đầu bật, Apache sẽ được cài lên máy chủ (khoảng 30 giây).
nginx vẫn lo SSL, tường lửa, chuyển hướng và các file tĩnh phổ biến; Apache chạy tại 127.0.0.1 áp dụng .htaccess rồi chuyển PHP cho pool PHP-FPM riêng của tài khoản.
Nội dung .htaccess trong chế độ Apache:
- Được hỗ trợ: rewrite, chuyển hướng, chặn truy cập (
Require,Deny/Allow), bảo vệ mật khẩu,ErrorDocument, header, expires, kiểu file vàSetEnv. - Bỏ qua vì lý do bảo mật: các dòng
Options,SetHandler/AddHandler… Chúng được ghi vào log Apache của website thay vì làm hỏng website. - Bỏ qua:
php_valuevàphp_flag. Hãy cấu hình PHP ở Thiết lập PHP cho website (ghi vào.user.ini).
Page cache tắt khi dùng chế độ Apache. Chế độ Apache dành cho website PHP và website tĩnh, không áp dụng cho website proxy.
Page cache
Website PHP có thể được phục vụ từ page cache của nginx, giúp WordPress nhanh hơn nhiều lần:
- Mở tab PHP & cấu hình.
- Bật Page cache.
Trang được cache trong 10 phút. ZoPanel không bao giờ cache:
- request khác GET và HEAD (ví dụ POST);
- khách có cookie đăng nhập WordPress, bài viết có mật khẩu, người bình luận, giỏ hàng hoặc session WooCommerce, hoặc cookie
laravel_session,PHPSESSID,XSRF-TOKEN; - URL chứa
/wp-admin,/wp-login.php,/wp-json,/xmlrpc.php,/cart,/checkout,/my-account,/feedhoặcsitemap; - URL có query string (tìm kiếm, bộ lọc, phân trang). Query chỉ gồm tham số theo dõi quảng cáo như
utm_*,fbclid,gclidđược coi như không có query, nên khách đến từ chiến dịch quảng cáo vẫn nhận trang đã cache.
Response có header X-Cache (HIT, MISS, BYPASS…) để bạn kiểm tra:
curl -sI https://example.com/ | grep -i x-cache
Muốn xoá cache, bấm Xoá cache ngay trong thẻ đó. Với website WordPress đã bật cache, ZoPanel còn cài một must-use plugin nhỏ (ZoPanel page cache) tự xoá cache của website mỗi khi bài viết, bình luận, menu, giao diện hoặc plugin thay đổi, nên chỉnh sửa hiển thị ngay. Plugin tự gỡ khi bạn tắt cache.
Website tĩnh và website proxy
- Website HTML phục vụ file trong thư mục gốc, ảnh, CSS, JavaScript và font được trình duyệt cache lâu dài.
- Website Node / Proxy chuyển mọi request tới
127.0.0.1:<cổng>. Với tài khoản khách hàng, ZoPanel tự cấp cổng cho từng website; chỉ quản trị viên được chọn cổng khác. Dùng tab Deploy để build và chạy ứng dụng (xem Ứng dụng Node.js và Python).
Giới hạn tốc độ request
Thẻ Giới hạn tốc độ request trong tab PHP & cấu hình chặn bot và tấn công flood từ một IP. Chọn Tắt, Nhẹ (20/giây), Vừa (8/giây) hoặc Chặt (2/giây); file tĩnh không bị tính, request vượt mức nhận lỗi HTTP 429.
Cấu hình nginx tuỳ chỉnh
Quản trị viên thấy thêm tab Nâng cao để chèn Cấu hình nginx tuỳ chỉnh vào khối server của website. Cấu hình được kiểm tra trước khi áp dụng (Kiểm tra & lưu), nên gõ sai cũng không làm nginx ngừng hoạt động.