PyroCMS là một CMS nguồn mở dựa trên các khuôn khổ web PHP và Laravel. Đây là một hệ thống quản lý nội dung mạnh mẽ với MySQL/MariaDB làm cơ sở dữ liệu và cũng cung cấp quản trị web trực quan và đơn giản để quản lý dễ dàng hơn.
Trong hướng dẫn này, chúng tôi sẽ hướng dẫn bạn cài đặt PyroCMS trên Ubuntu 24.04 với LEMP Stack (Linux, Nginx, MySQL/MariaDB và PHP-FPM) và Composer.
Trước tiên, hãy chạy lệnh apt sau để cập nhật chỉ mục gói của bạn và cài đặt LEMP Stack (Linux, Nginx, MySQL/MariaDB và PHP-FPM) và Composer.
Nhập Y để xác nhận cài đặt.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22292%22%3E%3C/svg%3E
Sau khi cài đặt, hãy kiểm tra các dịch vụ LEMP Stack để đảm bảo các dịch vụ đó đang chạy.
Kiểm tra máy chủ web Nginx bằng lệnh systemctl bên dưới.
Bây giờ hãy kiểm tra trạng thái máy chủ MariaDB bằng lệnh sau:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22221%22%3E%3C/svg%3E
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22246%22%3E%3C/svg%3E
Tiếp theo, chạy lệnh sau để kiểm tra dịch vụ PHP-FPM.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22228%22%3E%3C/svg%3E
Cuối cùng, hãy kiểm tra phiên bản Composer bằng lệnh bên dưới. Bạn sẽ thấy Composer 2.4.7 đã được cài đặt.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22539%22%20height=%2297%22%3E%3C/svg%3E
Mở tệp php.ini cho PHP-FPM bằng trình soạn thảo nano.
Thay đổi cấu hình mặc định bằng cấu hình sau và điều chỉnh các tùy chọn date.timezone và memory_limit với môi trường hiện tại của bạn.
Khi hoàn tất, hãy lưu tệp và thoát khỏi editor.
Bây giờ hãy chạy lệnh systemctl bên dưới để khởi động lại dịch vụ PHP-FPM và áp dụng các thay đổi của bạn trên php.ini.
Bảo mật cài đặt máy chủ MariaDB của bạn bằng lệnh mariadb-secure-installation bên dưới.
Bạn sẽ được hỏi về các cấu hình sau:
Đăng nhập vào máy chủ MariaDB bằng lệnh mariadb bên dưới. Nhập mật khẩu gốc của bạn khi được nhắc.
Bây giờ hãy chạy các truy vấn sau để tạo một cơ sở dữ liệu mới pyrocmsdb, một người dùng mới pyrocms@localhost và mật khẩu là passw0rd. Thay đổi tên cơ sở dữ liệu chi tiết, tên người dùng và mật khẩu nếu cần.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22158%22%3E%3C/svg%3E
Tiếp theo, chạy truy vấn bên dưới để xác minh quyền cho người dùng pyrocms@localhost. Bạn sẽ thấy cơ sở dữ liệu pyrocmsdb có thể truy cập được bằng người dùng pyrocms@localhost.
Cuối cùng, nhập quit để thoát khỏi máy chủ MariaDB.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22747%22%20height=%22290%22%3E%3C/svg%3E
Bây giờ hãy chạy lệnh composer bên dưới để tải xuống mã nguồn PyroCMS và cài đặt cũng như cập nhật các phụ thuộc PHP.
Bên dưới, bạn có thể thấy quá trình cài đặt PyroCMS thông qua composer lệnh:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22588%22%3E%3C/svg%3E
Sau khi cài đặt hoàn tất, hãy chuyển sang phần tiếp theo.
Tạo khối máy chủ Nginx mới /etc/nginx/sites-available/pyrocms.conf bằng trình chỉnh sửa nano.
Sao chép và dán cấu hình sau và đảm bảo thay đổi server_name bằng tên miền của bạn tên.
Khi hoàn tất, hãy lưu và thoát tệp.
Bây giờ hãy chạy lệnh bên dưới để tạo liên kết tượng trưng của tệp pyrocms.conf đến thư mục /etc/nginx/sites-enabled và xác minh cú pháp Nginx của bạn.
Nếu bạn có cú pháp Nginx phù hợp, bạn sẽ thấy một đầu ra kiểm tra thành công - cú pháp ổn.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22181%22%3E%3C/svg%3E
Cuối cùng, chạy lệnh systemctl sau để khởi động lại máy chủ web Nginx và áp dụng các thay đổi của bạn.
Cài đặt các gói certbot và python3-certbot-nginx bằng lệnh sau. Nhập Y để xác nhận cài đặt.
Bây giờ hãy chạy lệnh certbot bên dưới để tạo chứng chỉ SSL và bảo mật PyroCMS bằng HTTPS.
Sau khi quá trình hoàn tất, bạn sẽ nhận được chứng chỉ của mình trên thư mục /etc/letsencrypt/live/domain.com và PyroCMS của bạn hiện được bảo mật bằng HTTPS.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22582%22%3E%3C/svg%3E
Sau khi cài đặt hoàn tất, bạn sẽ thấy trang sau:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22305%22%3E%3C/svg%3E
Nhấp vào Xem trang web để truy cập trang chủ PyroCMS. Bên dưới bạn có thể thấy trang chỉ mục mặc định cho PyroCMS.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22513%22%3E%3C/svg%3E
Nhấp vào Đăng nhập để truy cập màn hình đăng nhập của PyroCMS. Nhập tên người dùng và mật khẩu quản trị viên của bạn, sau đó nhấp vào Đăng nhập.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22244%22%3E%3C/svg%3E
Nếu thành công, bạn sẽ thấy bảng điều khiển quản trị PyroCMS như sau:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22455%22%3E%3C/svg%3E
Trong hướng dẫn này, chúng tôi sẽ hướng dẫn bạn cài đặt PyroCMS trên Ubuntu 24.04 với LEMP Stack (Linux, Nginx, MySQL/MariaDB và PHP-FPM) và Composer.
Điều kiện tiên quyết
Trước khi bắt đầu, hãy đảm bảo bạn có những điều sau:- Máy chủ Ubuntu 24.04.
- Người dùng không phải root có quyền quản trị viên.
- Tên miền trỏ đến địa chỉ IP của máy chủ.
Cài đặt các phụ thuộc
PyroCMS là một hệ thống quản lý nội dung dựa trên Laravel với MySQL/MariaDB làm cơ sở dữ liệu. Trước khi cài đặt PyroCMS, bạn sẽ cài đặt LEMP Stack (Linux, Nginx, MySQL/MariaDB và PHP-FPM) và Composer vào hệ thống Ubuntu của bạn.Trước tiên, hãy chạy lệnh apt sau để cập nhật chỉ mục gói của bạn và cài đặt LEMP Stack (Linux, Nginx, MySQL/MariaDB và PHP-FPM) và Composer.
Mã:
sudo apt update sudo apt install nginx mariadb-server composer php-cli php-fpm php-mysql php-curl php-sqlite3 php-mbstring php-gd php-xml
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22292%22%3E%3C/svg%3E
Sau khi cài đặt, hãy kiểm tra các dịch vụ LEMP Stack để đảm bảo các dịch vụ đó đang chạy.
Kiểm tra máy chủ web Nginx bằng lệnh systemctl bên dưới.
Mã:
sudo systemctl is-enabled nginx
sudo systemctl status nginx
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22221%22%3E%3C/svg%3E
Mã:
sudo systemctl is-enabled mariadb
sudo systemctl status mariadb
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22246%22%3E%3C/svg%3E
Tiếp theo, chạy lệnh sau để kiểm tra dịch vụ PHP-FPM.
Mã:
sudo systemctl is-enabled php8.3-fpm
sudo systemctl status php8.3-fpm
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22228%22%3E%3C/svg%3E
Cuối cùng, hãy kiểm tra phiên bản Composer bằng lệnh bên dưới. Bạn sẽ thấy Composer 2.4.7 đã được cài đặt.
Mã:
sudo -u www-data composer --version
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22539%22%20height=%2297%22%3E%3C/svg%3E
Cấu hình PHP-FPM
Sau khi bạn đã cài đặt các phụ thuộc, bạn sẽ cấu hình PHP-FPM bằng cách thay đổi một số cấu hình mặc định thông qua Tệp php.ini và khởi động lại dịch vụ PHP-FPM.Mở tệp php.ini cho PHP-FPM bằng trình soạn thảo nano.
Mã:
sudo nano /etc/php/8.3/fpm/php.ini
Mã:
date.timezone = Europe/Amsterdam
max_execution_time = 130
memory_limit = 256M
allow_url_fopen = On
allow_url_include = Off
post_max_size = 128M
upload_max_filesize = 128M
max_input_vars = 5000
Bây giờ hãy chạy lệnh systemctl bên dưới để khởi động lại dịch vụ PHP-FPM và áp dụng các thay đổi của bạn trên php.ini.
Mã:
sudo systemctl restart php8.3-fpm
Cấu hình máy chủ MariaDB
Bây giờ bạn đã cấu hình PHP-FPM, bạn sẽ bảo mật cài đặt máy chủ MariaDB và tạo cơ sở dữ liệu và người dùng mới cho PyroCMS.Bảo mật cài đặt máy chủ MariaDB của bạn bằng lệnh mariadb-secure-installation bên dưới.
Mã:
sudo mariadb-secure-installation
- Chuyển sang xác thực unix_socket? Nhập n và nhấn ENTER.
- Người dùng gốc MariaDB mặc định đã được bảo vệ. tùy chọn, bạn cũng có thể bật nó bằng cách nhập y cho có.
- Thay đổi mật khẩu gốc. Nhập y để xác nhận và thiết lập mật khẩu gốc MariaDB mới của bạn.
- Xóa người dùng ẩn danh? Nhập y để xác nhận.
- Không cho phép đăng nhập gốc từ xa? Nhập y để xác nhận. Chỉ kết nối cục bộ mới được phép nếu bạn đang sử dụng MariaDB
- Xóa cơ sở dữ liệu thử nghiệm và truy cập cơ sở dữ liệu đó. Nhập y để xác nhận và xóa 'test' cơ sở dữ liệu mặc định.
- Cuối cùng, nhập y một lần nữa để tải lại tất cả các quyền bảng trên máy chủ MariaDB của bạn và áp dụng các thay đổi mới.
Đăng nhập vào máy chủ MariaDB bằng lệnh mariadb bên dưới. Nhập mật khẩu gốc của bạn khi được nhắc.
Mã:
sudo mariadb -u root -p
Mã:
CREATE DATABASE pyrocmsdb;
GRANT ALL PRIVILEGES ON pyrocmsdb.* TO pyrocms@localhost IDENTIFIED BY 'passw0rd';
FLUSH PRIVILEGES;
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22158%22%3E%3C/svg%3E
Tiếp theo, chạy truy vấn bên dưới để xác minh quyền cho người dùng pyrocms@localhost. Bạn sẽ thấy cơ sở dữ liệu pyrocmsdb có thể truy cập được bằng người dùng pyrocms@localhost.
Mã:
SHOW GRANTS FOR pyrocms@localhost;
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22747%22%20height=%22290%22%3E%3C/svg%3E
Tải xuống mã nguồn PyroCMS
Tạo thư mục mới cho Composer và PyroCMS, đi tới /var/www/pyrocms, sau đó thay đổi quyền sở hữu các thư mục mới cho người dùng www-data. Trong trường hợp này, /var/www/pyrocms sẽ được sử dụng làm gốc tài liệu cho PyroCMS.
Mã:
mkdir -p /var/www/{.config,.cache,pyrocms}; cd /var/www/pyrocms
sudo chown -R www-data:www-data /var/www/{.config,.cache,pyrocms}
Mã:
sudo -u www-data composer create-project pyrocms/pyrocms .
sudo -u www-data composer update
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22588%22%3E%3C/svg%3E
Sau khi cài đặt hoàn tất, hãy chuyển sang phần tiếp theo.
Thiết lập khối máy chủ Nginx
Trong phần này, bạn sẽ tạo cấu hình khối máy chủ Nginx mới để cài đặt PyroCMS. Vì vậy, hãy đảm bảo rằng bạn có tên miền được trỏ đến địa chỉ IP máy chủ Ubuntu của mình. Trong ví dụ này, bạn sẽ sử dụng tên miền howtoforge.local.Tạo khối máy chủ Nginx mới /etc/nginx/sites-available/pyrocms.conf bằng trình chỉnh sửa nano.
Mã:
sudo nano /etc/nginx/sites-available/pyrocms.conf
Mã:
server {
listen 80;
server_name howtoforge.local;
index index.php index.html;
root /var/www/pyro/public;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass unix:/run/php/php-8.3-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_index index.php;
}
}
Khi hoàn tất, hãy lưu và thoát tệp.
Bây giờ hãy chạy lệnh bên dưới để tạo liên kết tượng trưng của tệp pyrocms.conf đến thư mục /etc/nginx/sites-enabled và xác minh cú pháp Nginx của bạn.
Mã:
sudo ln -s /etc/nginx/sites-available/pyrocms.conf /etc/nginx/sites-enabled/
sudo nginx -t
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22181%22%3E%3C/svg%3E
Cuối cùng, chạy lệnh systemctl sau để khởi động lại máy chủ web Nginx và áp dụng các thay đổi của bạn.
Mã:
sudo systemctl restart nginx
Bảo mật PyroCMS bằng HTTPS thông qua Letsencrypt
Để bảo mật PyroCMS, bạn sẽ triển khai HTTPS thông qua Letsencrypt. Để làm được điều đó, bạn phải cài đặt Certbot để tạo chứng chỉ SSL/TLS và tự động triển khai HTTPS trên cài đặt PyroCMS của bạn.Cài đặt các gói certbot và python3-certbot-nginx bằng lệnh sau. Nhập Y để xác nhận cài đặt.
Mã:
sudo apt install certbot python3-certbot-nginx
Mã:
sudo certbot --nginx --agree-tos --no-eff-email --redirect --hsts --staple-ocsp --email [emailprotected] -d howtoforge.local
Cài đặt PyroCMS bằng trình cài đặt web
Mở trình duyệt web và truy cập tên miền của bạn như https://howtoforge.local/. Bây giờ bạn sẽ thấy một trang cài đặt PyroCMS duy nhất:- Chọn Tôi đồng ý để chấp nhận giấy phép cài đặt PyroCMS.
- Nhập tên cơ sở dữ liệu, người dùng và mật khẩu của bạn.
- Nhập người dùng quản trị mới, địa chỉ email và mật khẩu cho PyroCMS của bạn.
- Nhập thông tin chi tiết về trang web để cài đặt, chẳng hạn như tên miền, ngôn ngữ và múi giờ.
- Nhấp vào Cài đặt để xác nhận cài đặt.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22582%22%3E%3C/svg%3E
Sau khi cài đặt hoàn tất, bạn sẽ thấy trang sau:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22305%22%3E%3C/svg%3E
Nhấp vào Xem trang web để truy cập trang chủ PyroCMS. Bên dưới bạn có thể thấy trang chỉ mục mặc định cho PyroCMS.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22513%22%3E%3C/svg%3E
Nhấp vào Đăng nhập để truy cập màn hình đăng nhập của PyroCMS. Nhập tên người dùng và mật khẩu quản trị viên của bạn, sau đó nhấp vào Đăng nhập.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22244%22%3E%3C/svg%3E
Nếu thành công, bạn sẽ thấy bảng điều khiển quản trị PyroCMS như sau:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22455%22%3E%3C/svg%3E