# Ứng dụng PHP

> Cài Joomla, OpenCart, PrestaShop, phpBB, MediaWiki hoặc Laravel bằng một chạm, tìm trang quản trị của từng ứng dụng và chạy ứng dụng PHP bạn tự tải lên.

Source: https://zopanel.net/vi/docs/php-apps  
Updated: 2026-10-09

ZoPanel cài các ứng dụng PHP phổ biến vào một website PHP trống chỉ bằng một chạm: tải bản ổn định mới nhất từ nguồn chính thức, tạo database MariaDB và chạy trình cài đặt dòng lệnh của chính ứng dụng dưới quyền tài khoản hosting. Hãy dùng tính năng này để dựng nhanh một website mới; với code bạn phát triển trên Git, dùng [Git deploy](/vi/docs/git-deploy), còn WordPress xem [WordPress Toolkit](/vi/docs/wordpress).

## Trước khi bắt đầu

- **Một website PHP còn trống.** Tạo website loại **PHP** ở **Website → Thêm website** (xem [Website và PHP](/vi/docs/hosting)). Trình cài đặt từ chối thư mục đã có file; chỉ chấp nhận `index.html` mặc định, `.well-known` và `.user.ini`.
- **Còn chỗ cho một database.** Mỗi ứng dụng có database riêng, tính vào giới hạn database của gói và của license (bản Free: 10 database, xem [License](/vi/docs/licensing)).
- **Phiên bản PHP phù hợp** đã cài ở mục **Runtime** (xem bảng bên dưới). Laravel còn cần **Composer**, cài ở **Runtime → Composer**.
- Gói hosting phải bật **Cài ứng dụng & công cụ WordPress**. Nếu không, thẻ cài ứng dụng sẽ không hiện.

Hãy trỏ tên miền về máy chủ và bật SSL trước khi cài: ứng dụng chỉ được cấu hình với `https://` khi website đã có chứng chỉ.

## Ứng dụng được hỗ trợ

| Ứng dụng | Nhóm | Dải PHP trong panel | Web server | Trang quản trị |
| --- | --- | --- | --- | --- |
| Joomla | Quản trị nội dung | 8.3+ | nginx | `/administrator/` |
| OpenCart | Cửa hàng online | 8.1+ | Chế độ Apache | `/admin/` |
| PrestaShop | Cửa hàng online | 7.4–8.1 | Chế độ Apache | `/admin<ngẫu-nhiên>/` (bí mật) |
| phpBB | Diễn đàn | 7.2+ | nginx | `/adm/` |
| MediaWiki | Wiki | 8.3+ | nginx | `/index.php/Special:SpecialPages` |
| Laravel | Framework PHP | 8.2+ | nginx, thư mục gốc `public` | `/` (không có trang quản trị) |

Panel kiểm tra theo dải trên, dải này theo đúng bản phát hành được cài:

| Ứng dụng | Bản được cài | Yêu cầu PHP của nhà phát triển |
| --- | --- | --- |
| Joomla | Bản ổn định mới nhất (Joomla 6) | PHP 8.3 trở lên ([yêu cầu](https://manual.joomla.org/docs/next/get-started/technical-requirements/)) |
| OpenCart | Gói phát hành mới nhất (4.1) | PHP 8.1 trở lên |
| PrestaShop | Bản mới nhất có gói tải về (8.2) | PHP 7.2–8.1 |
| phpBB | Bản ổn định mới nhất (3.3) | PHP 7.2 trở lên |
| MediaWiki | Nhánh ổn định mới nhất | PHP 8.3 trở lên với bản 1.46 ([tương thích](https://www.mediawiki.org/wiki/Compatibility)) |
| Laravel | Bản mới nhất mà Composer cài được trên PHP đã chọn | Laravel 13 cần PHP 8.3; trên PHP 8.2 Composer cài bản chính cũ hơn |

Nếu phiên bản PHP của website nằm ngoài dải của panel, ZoPanel chuyển website sang phiên bản mới nhất đã cài nằm trong dải. Nếu không có phiên bản nào, quá trình cài dừng với thông báo "*<Ứng dụng>* needs PHP *<dải>*; ask the administrator to install a suitable PHP version". Muốn tự chọn phiên bản, hãy đặt **Phiên bản PHP** ở tab **PHP & cấu hình** trước khi cài.

## Cài ứng dụng

1. Mở website (**Website → Quản lý**) và ở lại tab **Tổng quan**.
2. Trong thẻ **Ứng dụng**, bấm vào ứng dụng cần cài. Thẻ này hiện khi website chạy PHP, thư mục gốc nằm trong `public_html` và chưa cài ứng dụng nào.
3. Xem các nhãn: dải PHP, **Chế độ Apache (.htaccess)** nếu ứng dụng cần, và đường dẫn tới website của dự án.
4. Điền các trường:

| Trường | Ứng dụng | Quy tắc |
| --- | --- | --- |
| Tên website | Tất cả | 1 đến 100 ký tự. Mặc định là tên miền. |
| Email quản trị | Joomla, OpenCart, PrestaShop, phpBB | Địa chỉ hợp lệ. Mặc định là email tài khoản của bạn. |
| Tài khoản quản trị | Tất cả trừ Laravel | 3 đến 40 ký tự gồm chữ, số, `.`, `_` hoặc `-`. Mặc định `admin`; nên đổi tên khác. |
| Mật khẩu quản trị | Tất cả trừ Laravel | 8 đến 128 ký tự, không chứa `:`. Panel đề xuất sẵn mật khẩu ngẫu nhiên 16 ký tự. |

5. Bấm **Cài đặt**. Cửa sổ tác vụ hiển thị tiến trình.

Tác vụ này sẽ:

1. Bật chế độ Apache cho OpenCart và PrestaShop (lần đầu, Apache được cài lên máy chủ, xem [Chế độ Apache](/vi/docs/hosting)).
2. Tạo database và user tên `<tài-khoản>_<2 chữ cái><4 ký tự ngẫu nhiên>` với mật khẩu ngẫu nhiên 24 ký tự, liên kết với website.
3. Tải bản phát hành qua HTTPS (tự tải tiếp nếu mất kết nối), giải nén và chạy trình cài đặt. Mật khẩu không bao giờ xuất hiện trên dòng lệnh.
4. Xoá thư mục `install`/`installation` và đặt quyền để file chứa mật khẩu database chỉ tài khoản đọc được.
5. Kết thúc bằng dòng `Admin area: https://<tên-miền>/<đường-dẫn>`.

Nếu có bước nào lỗi, file cài dở và database bị xoá, website trở về như cũ, để bạn sửa nguyên nhân rồi cài lại.

**Lưu ý:** mật khẩu database không hiển thị trong panel mà nằm trong file cấu hình của ứng dụng (xem phần sau). Chỉ đổi mật khẩu ở **Cơ sở dữ liệu** nếu bạn cập nhật cả file đó.

## Sau khi cài

Khi đã cài ứng dụng, phần đầu trang website có nút **Trang quản trị** mở địa chỉ quản trị (trừ PrestaShop, xem bên dưới). Mọi ứng dụng được cài bằng tiếng Anh; hãy đổi ngôn ngữ trong trang quản trị của từng ứng dụng.

| Ứng dụng | Đăng nhập bằng | File cấu hình | Việc nên làm đầu tiên |
| --- | --- | --- | --- |
| Joomla | Tài khoản quản trị | `configuration.php` | Bật **Use URL Rewriting** trong Global Configuration để có URL gọn (nginx đã chuyển các URL này về `index.php`). Cài gói ngôn ngữ tiếng Việt nếu cần. |
| OpenCart | Tài khoản quản trị | `config.php`, `admin/config.php` | `.htaccess.txt` đã được đổi thành `.htaccess`, nên URL SEO chạy được trong chế độ Apache. Thiết lập thông tin cửa hàng, thanh toán, vận chuyển. |
| PrestaShop | **Email quản trị** và mật khẩu | `app/config/parameters.php` | Chép địa chỉ quản trị trong nhật ký tác vụ. Quốc gia mặc định là Việt Nam; đổi ở mục International. Không có email nào được gửi khi cài. |
| phpBB | Tài khoản quản trị | `config.php` | Email bị tắt khi cài: bật lại trong ACP ở Board configuration → Email settings. |
| MediaWiki | Tài khoản quản trị (MediaWiki tự viết hoa chữ cái đầu) | `LocalSettings.php` | Trang dùng URL dạng `/index.php/Tên_trang`. Sửa `LocalSettings.php` để cấu hình upload, giao diện và phân quyền. |
| Laravel | – | `.env` | Xem bên dưới. |

**Quan trọng:** thư mục quản trị của PrestaShop được đổi thành `admin` kèm 8 ký tự ngẫu nhiên, theo yêu cầu của PrestaShop. Địa chỉ này chỉ xuất hiện trong nhật ký tác vụ (**Tác vụ**). Hãy lưu lại; nếu quên, dùng Quản lý file tìm thư mục có tên bắt đầu bằng `admin` trong `public_html`.

### Laravel

Trình cài Laravel chạy `composer create-project laravel/laravel` bằng phiên bản PHP của website, sau đó:

- tạo `.env` từ `.env.example` với `APP_NAME` (tên website), `APP_ENV=production`, `APP_DEBUG=false`, `APP_URL` và kết nối MySQL (`DB_CONNECTION=mysql`, `DB_HOST=localhost`, database và user vừa tạo);
- chạy `php artisan key:generate --force`, `php artisan migrate --force` và `php artisan storage:link`;
- đặt thư mục gốc của website thành `public_html/public` và quy tắc rewrite **Laravel**.

Dự án nằm trong `public_html`, bên ngoài thư mục gốc web, nên không ai tải được `.env` hay `vendor`. Về scheduler, queue và deploy, xem [Laravel](/vi/docs/laravel).

Trình cài dùng được cho cả website loại **PHP** lẫn loại **Laravel**: dự án luôn nằm trong `public_html`, và thư mục gốc web thành `public_html/public`.

## Cập nhật ứng dụng

ZoPanel cài ứng dụng nhưng không cập nhật chúng: hãy dùng công cụ cập nhật của từng dự án. Sao lưu website và database trước (xem [Sao lưu](/vi/docs/backups)).

| Ứng dụng | Cách cập nhật |
| --- | --- |
| Joomla | System → Update → Joomla trong trang quản trị ([tài liệu](https://docs.joomla.org/)). |
| OpenCart | Làm theo hướng dẫn nâng cấp của phiên bản bạn dùng ([tài liệu](https://docs.opencart.com/)). |
| PrestaShop | Module Update Assistant ([tài liệu](https://devdocs.prestashop-project.org/8/basics/keeping-up-to-date/)). |
| phpBB | Làm theo hướng dẫn cập nhật trong gói phát hành ([tài liệu](https://www.phpbb.com/support/docs/en/3.3/ug/upgradeguide/)). |
| MediaWiki | Thay file mới rồi chạy `php maintenance/run.php update` ([tài liệu](https://www.mediawiki.org/wiki/Manual:Upgrading)). |
| Laravel | `composer update` qua SSH, sau đó `php artisan migrate --force`. |

Chạy các lệnh trong [Terminal SSH](/vi/docs/ssh-terminal) dưới quyền tài khoản hosting, với cùng phiên bản PHP của website, ví dụ `php8.3 maintenance/run.php update`.

## Ứng dụng PHP khác

Ứng dụng PHP không có trong danh sách có thể cài thủ công:

1. Tạo website **PHP** với phiên bản PHP mà ứng dụng cần.
2. Tải file lên `public_html` bằng [Quản lý file](/vi/docs/file-manager) hoặc [SFTP](/vi/docs/ftp-sftp).
3. Tạo database ở **Cơ sở dữ liệu** rồi chạy trình cài đặt web của ứng dụng.
4. Nếu ứng dụng chạy từ thư mục con (ví dụ `public` hoặc `web`), đặt **Thư mục gốc** ở tab **PHP & cấu hình**, ví dụ `public_html/public`. Thư mục này phải nằm trong `public_html`.
5. Nếu ứng dụng dựa vào rewrite trong `.htaccess`, bật **Hỗ trợ .htaccess (chế độ Apache)** ở tab **Công cụ**. Với quy tắc **Mặc định**, nginx đã chuyển URL không tồn tại về `index.php`, đủ cho hầu hết front controller.

### Composer

Khi dự án có `composer.json`, cài thư viện qua SSH bằng đúng phiên bản PHP của website (Composer phải được cài ở **Runtime**):

```bash
cd ~/domains/example.com/public_html
php8.3 /usr/local/bin/composer install --no-dev --optimize-autoloader
```

Nếu dự án nằm trên Git, [Git deploy](/vi/docs/git-deploy) tự chạy Composer mỗi lần phát hành và nhận diện Laravel, Symfony.

Các tuỳ chọn PHP như `upload_max_filesize` được đặt ở **Công cụ → Thiết lập PHP cho website**; dòng `php_value` trong `.htaccess` bị bỏ qua.

## Xử lý sự cố

| Thông báo hoặc hiện tượng | Cách xử lý |
| --- | --- |
| "the website folder is not empty: install applications into a new, empty website" | Cài vào website PHP mới, hoặc làm trống `public_html` trước. |
| "this website already runs an application; create a new website for …" | Mỗi website chỉ một ứng dụng. Hãy tạo website khác. |
| "applications need a PHP website" | Website không dùng PHP hoặc là website proxy. Chọn **Phiên bản PHP** hoặc tạo website PHP. |
| "… needs PHP …; ask the administrator to install a suitable PHP version" | Cài một phiên bản PHP trong dải yêu cầu ở **Runtime**. |
| "database limit reached" | Gói không cho tạo thêm database. Xoá bớt hoặc nâng gói. |
| "cannot find the latest … release" | Máy chủ không kết nối được GitHub hoặc trang tải của dự án. Thử lại sau. |
| Laravel: bản chính được cài cũ hơn | Website chạy PHP 8.2 nên Composer cài bản Laravel mới nhất hỗ trợ PHP này. Muốn có Laravel mới nhất, dùng PHP 8.3 trở lên. |
| Laravel: `composer failed` | Kiểm tra Composer đã cài ở **Runtime** và phiên bản PHP từ 8.2 trở lên. |
| Không thấy thẻ **Ứng dụng** | Website đã có ứng dụng, không dùng PHP, thư mục gốc nằm ngoài `public_html`, hoặc gói không bật **Cài ứng dụng & công cụ WordPress**. |

Toàn bộ output của trình cài được lưu trong **Tác vụ**.

## Xem thêm

- [Website và PHP](/vi/docs/hosting)
- [Laravel](/vi/docs/laravel)
- [Git deploy](/vi/docs/git-deploy)
- [Cơ sở dữ liệu](/vi/docs/databases)
- [Sao lưu](/vi/docs/backups)
- [Quản lý file](/vi/docs/file-manager)
