Chuyển tới nội dung chính
Version: 4.1

Ứng dụng PHP

Triển khai một ứng dụng PHP dựa trên Composer vào một tên miền có sẵn. Khác với các trình cài ứng dụng Node.js, Python, Ruby và Java chạy trong container, ứng dụng PHP không bao giờ có container riêng: nó không bao giờ tạo container mới, sửa docker-compose.yml hay cấu hình reverse proxy. Vhost hiện có của tên miền đã định tuyến tới container PHP-FPM (hoặc LiteSpeed) của nó, nên cài ứng dụng PHP thực chất chỉ là triển khai mã do Composer quản lý vào docroot của tên miền đó và, tuỳ chọn, chạy Composer trên đó.


Cài ứng dụng PHP​

Vào HiTechCloud > Trình cài đặt tự động và nhấn Install PHP Application.

Trên trang cài đặt, cấu hình:

  • Tên miền / Thư mục con – Tên miền (và thư mục con tuỳ chọn) để cài vào. Để trống thư mục con để cài tại gốc tên miền.
  • Initial project – Tuỳ chọn. Để trống để triển khai vào thư mục đã tồn tại và đã có composer.json riêng, hoặc cung cấp một trong các giá trị:
    • URL https:// tới tệp nén có đuôi .zip, .tar.gz, .tgz hoặc .tar — được tải về (tối đa 200MB) và giải nén trực tiếp vào docroot.
    • Tên gói Composer (vendor/package, ví dụ laravel/laravel) — được cài qua composer create-project.
  • Run composer install – Chạy composer install sau khi triển khai. Bắt buộc nếu thư mục chưa có sẵn thư mục vendor/ đã build.
  • Optimize autoloader – Thêm --optimize-autoloader vào lần chạy composer.

Không có Name, Port, Startup File/Command, Type, bộ chọn Version hay cấp CPU/bộ nhớ — không mục nào áp dụng, vì ứng dụng không có container riêng. Tên miền phải được gán phiên bản PHP (qua PHP Selector) trước khi cài; nếu không việc cài thất bại ngay lập tức.

Phía sau, thao tác này khởi động container php-fpm-<version> của tên miền nếu chưa chạy, rồi hoặc tải về và giải nén tệp nén ở phía máy chủ, hoặc chạy composer create-project <package> <path> --no-interaction bên trong container đó. Nếu đánh dấu Run composer install, nó sẽ chạy tiếp composer install --no-interaction (kèm --optimize-autoloader nếu được chọn) — cả hai lời gọi composer đều dùng --working-dir thay vì cờ thư mục làm việc riêng của podman exec, vì tệp nhị phân composer của container tự nó là một wrapper vốn đặt lại thư mục làm việc bất kể thế nào. Các thiết lập của ứng dụng (dự án ban đầu, cờ composer, thư mục làm việc) được ghi dưới dạng các khoá .env với một tiền tố tổng hợp, vì — khác với các loại ứng dụng chạy trong container — không có container riêng để gắn chúng vào. Sau đó website được thêm vào Trình quản lý website với loại PHP. Tiến trình được hiển thị trực tiếp khi từng bước hoàn tất.

Quản lý ứng dụng PHP​

Mọi ứng dụng PHP đều xuất hiện trên trang chung Trình quản lý website (/sites) cùng các website khác của bạn, liệt kê theo tên website. Không có trang tổng quan/trạng thái riêng như với các loại ứng dụng chạy trong container — không có container nào để báo trạng thái, mức sử dụng tài nguyên hay phiên bản — nên việc quản lý giới hạn ở vài thao tác chuyên biệt, chạy trên container PHP-FPM hiện tại của tên miền (theo phiên bản mà PHP Selector đang đặt):

  • Composer Install – Chạy lại composer install --no-interaction trên thư mục làm việc của ứng dụng.
  • Composer Update – Chạy composer update --no-interaction (tuỳ chọn kèm --optimize-autoloader).
  • Nhật ký – Hiển thị kết quả tích luỹ của mọi lần chạy Composer install/update trước đây cho website, mỗi mục kèm thời điểm, hoặc "No Composer runs recorded yet." nếu chưa có lần chạy nào.
  • Gỡ bỏ – Gỡ website khỏi Trình quản lý website và xoá các thiết lập .env đã lưu. Tệp trong docroot và mọi cơ sở dữ liệu được giữ nguyên — cùng hành vi "mọi dữ liệu website được giữ lại" mà trình cài Node.js/Python dùng khi xoá — vì không có container riêng để gỡ bỏ.

Không bao gồm​

Vì ứng dụng PHP không chạy trong container như ứng dụng Node.js/Python/Ruby/Java, những mục sau không áp dụng:

  • Container riêng — do đó cũng không có thao tác Start/Stop/Restart, không có giới hạn CPU/bộ nhớ/PID, và không có bộ chọn image/phiên bản Docker theo ứng dụng
  • Cổng tuỳ chỉnh, hoặc tệp/lệnh khởi động — vhost và PHP-FPM hiện có của tên miền đã xử lý việc định tuyến và thực thi
  • Đổi phiên bản PHP từ chính ứng dụng — nó luôn theo phiên bản mà tên miền đặt trong PHP Selector
  • Các thẻ tổng quan screenshot/trạng thái trên trang quản lý riêng — ứng dụng PHP được quản lý ngay trong Trình quản lý website
Trang này có hữu ích không?