Joomla là hệ thống quản lý nội dung linh hoạt và mã nguồn mở để xây dựng trang web và ấn phẩm trực tuyến. Được hỗ trợ bởi PHP, nó có thể được sử dụng cho nhiều tình huống, chẳng hạn như diễn đàn, thư viện ảnh, thương mại điện tử và các ứng dụng dựa trên web khác.
Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách cài đặt Joomla trên máy chủ Ubuntu 24.04. Bạn sẽ chạy Joomla với Nginx làm máy chủ web, máy chủ cơ sở dữ liệu MariaDB và PHP-FPM. Bạn cũng sẽ bảo mật Joomla bằng HTTPS.
Trước tiên, hãy chạy lệnh bên dưới để cập nhật chỉ mục gói Ubuntu của bạn.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22693%22%20height=%22195%22%3E%3C/svg%3E
Cài đặt các phụ thuộc LEMP Stack bằng lệnh bên dưới. 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=%22232%22%3E%3C/svg%3E
Sau khi cài đặt hoàn tất, hãy kiểm tra trạng thái dịch vụ Nginx bằng sau đây:
Bạn có thể thấy dịch vụ Nginx đang chạy.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22222%22%3E%3C/svg%3E
Bây giờ hãy kiểm tra dịch vụ MariaDB để đảm bảo rằng dịch vụ đang chạy và được bật bằng lệnh bên dưới:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22232%22%3E%3C/svg%3E
Cuối cùng, chạy lệnh sau để xác minh dịch vụ PHP-FPM. PHP-FPM sẽ chạy theo mặc định trên tệp sock.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22225%22%3E%3C/svg%3E
Mở cấu hình PHP-FPM '/etc/php/8.3/fpm/php.ini' bằng trình soạn thảo 'nano'.
Thay đổi cấu hình mặc định bằng lệnh sau:
Lưu tệp và thoát biên tập viên.
Bây giờ hãy khởi động lại dịch vụ PHP-FPM để áp dụng các thay đổi của bạn.
Cuối cùng, bạn có thể kiểm tra tệp sock PHP cho dịch vụ PHP-FPM bằng lệnh bên dưới.
Bạn có thể thấy bên dưới tệp sock cho PHP-FPM nằm ở '/var/run/php/php8.3-fpm.sock'.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22179%22%3E%3C/svg%3E
Để bảo mật máy chủ MariaDB, hãy chạy lệnh 'mariab-secure-installation' bên dưới.
Bây giờ bạn sẽ được yêu cầu thiết lập máy chủ MariaDB với những thông tin 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 MariaDB của bạn khi được nhắc.
Bây giờ hãy chạy các truy vấn sau để tạo cơ sở dữ liệu mới 'joomladb' và người dùng mới 'joomla' với mật khẩu 'p4ssword'.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22236%22%3E%3C/svg%3E
Tiếp theo, chạy truy vấn bên dưới để kiểm tra quyền của người dùng 'joomla'. Bạn sẽ thấy người dùng 'joomla' có thể truy cập cơ sở dữ liệu 'joomladb'.
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=%22750%22%20height=%22173%22%3E%3C/svg%3E
Đi đến thư mục '/var/www' và tải xuống mã nguồn Joomla bằng lệnh 'wget' bên dưới. Kiểm tra trang tải xuống Joomla và lấy liên kết cho phiên bản mới nhất.
Bây giờ hãy chạy lệnh 'unzip' bên dưới để giải nén mã nguồn Joomla vào thư mục 'joomla'.
Cuối cùng, hãy chạy lệnh 'chmod' bên dưới để thay đổi quyền sở hữu thư mục '/var/www/joomla' thành người dùng 'www-data'.
Tạo tệp máy chủ Nginx mới '/etc/nginx/sites-available/joomla' bằng trình chỉnh sửa 'nano' sau.
Chèn cấu hình bên dưới và thay đổi tùy chọn 'server_name' bằng tên miền của bạn name.
Lưu tệp và thoát khỏi trình chỉnh sửa.
Bây giờ hãy chạy lệnh bên dưới để kích hoạt khối máy chủ 'joomla' và xác minh cấu hình Nginx của bạn. Nếu bạn có cài đặt Nginx phù hợp, bạn sẽ thấy đầu ra 'Cú pháp là OK'.
Cuối cùng, hãy chạy lệnh 'systemctl' bên dưới để khởi động lại dịch vụ Nginx và áp dụng các thay đổi của bạn.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22190%22%3E%3C/svg%3E
Cài đặt 'Certbot' và plugin Certbot Nginx bằng lệnh 'apt' bên dưới. Nhập 'Y' để xác nhận cài đặt.
Sau khi cài đặt hoàn tất, hãy chạy lệnh 'certbot' sau để tạo chứng chỉ SSL/TLS và bảo mật cài đặt Joomla của bạn bằng HTTPS. Hãy đảm bảo thay đổi tên miền và địa chỉ email bằng thông tin của bạn.
Khi hoàn tất, cài đặt Joomla của bạn được bảo mật bằng HTTPS thông qua chứng chỉ SSL/TLS từ Letsencrypt.
Chọn ngôn ngữ mặc định của bạn và nhập tên trang web của bạn.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22557%22%3E%3C/svg%3E
Nhập tên người dùng quản trị mới, email và mật khẩu cho Joomla.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22724%22%3E%3C/svg%3E
Nhập thông tin chi tiết về cơ sở dữ liệu MariaDB và người dùng của bạn, sau đó nhấp vào 'Cài đặt Joomla' để tiếp tục cài đặt.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22708%22%20height=%22750%22%3E%3C/svg%3E
Sau khi cài đặt hoàn tất, hãy nhấp vào 'Mở trang web' để mở trang chủ mặc định hoặc 'Mở Administrator' để truy cập bảng điều khiển quản trị Joomla.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22466%22%3E%3C/svg%3E
Đối với trang chủ mặc định của Joomla, bạn sẽ thấy nội dung sau.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22334%22%3E%3C/svg%3E
Bây giờ hãy nhập tên người dùng và mật khẩu quản trị của bạn và nhấp vào 'Đăng nhập'.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22602%22%20height=%22559%22%3E%3C/svg%3E
Nếu bạn có tên người dùng và mật khẩu đúng, bạn sẽ thấy bảng điều khiển quản trị Joomla sau.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22357%22%3E%3C/svg%3E
Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách cài đặt Joomla trên máy chủ Ubuntu 24.04. Bạn sẽ chạy Joomla với Nginx làm máy chủ web, máy chủ cơ sở dữ liệu MariaDB và PHP-FPM. Bạn cũng sẽ bảo mật Joomla bằng HTTPS.
Điều kiện tiên quyết
Để hoàn thành hướng dẫn này, 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 được trỏ đến địa chỉ IP của máy chủ.
Cài đặt các phụ thuộc
Joomla là hệ thống quản lý nội dung dựa trên PHP. Để cài đặt, bạn phải cài đặt PHP trên hệ thống của mình. Trong phần này, bạn sẽ cài đặt LEMP Stack (Linux, Nginx, MariaDB và PHP-FPM) làm các thành phần phụ thuộc cho Joomla.Trước tiên, hãy chạy lệnh bên dưới để cập nhật chỉ mục gói Ubuntu của bạn.
Mã:
sudo apt update
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22693%22%20height=%22195%22%3E%3C/svg%3E
Cài đặt các phụ thuộc LEMP Stack bằng lệnh bên dưới. Nhập 'Y' để xác nhận cài đặt.
Mã:
sudo apt install nginx mariadb-server php-fpm php-curl php-common php-json php-intl php-xml php-gd php-mysql php-imagick php-mbstring php-zip
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22232%22%3E%3C/svg%3E
Sau khi cài đặt hoàn tất, hãy kiểm tra trạng thái dịch vụ Nginx bằng sau đây:
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=%22222%22%3E%3C/svg%3E
Bây giờ hãy kiểm tra dịch vụ MariaDB để đảm bảo rằng dịch vụ đang chạy và được bật bằng lệnh bên dưới:
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=%22232%22%3E%3C/svg%3E
Cuối cùng, chạy lệnh sau để xác minh dịch vụ PHP-FPM. PHP-FPM sẽ chạy theo mặc định trên tệp sock.
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=%22225%22%3E%3C/svg%3E
Cấu hình PHP-FPM
Bây giờ LEMP Stack đã được cài đặt, bạn sẽ cấu hình cài đặt PHP-FPM và thay đổi một số cấu hình mặc định khi cần thiết cho Joomla.Mở cấu hình PHP-FPM '/etc/php/8.3/fpm/php.ini' bằng trình soạn thảo 'nano'.
Mã:
sudo nano /etc/php/8.3/fpm/php.ini
Mã:
memory_limit=512M
upload_max_filesize=64M
post_max_size=64M
max_execution_time=120
output_buffering = Off
extension=intl
Bây giờ hãy khởi động lại dịch vụ PHP-FPM để áp dụng các thay đổi của bạn.
Mã:
sudo systemctl restart php8.3-fpm
Mã:
ss -pl | grep php
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22179%22%3E%3C/svg%3E
Cấu hình máy chủ MariaDB
Trong phần này, bạn sẽ bảo mật cài đặt máy chủ MariaDB, sau đó tạo cơ sở dữ liệu và người dùng mới cho Joomla. Bạn sẽ sử dụng 'mariadb-secure-installation' để bảo mật máy chủ MariaDB, sau đó thông qua máy khách 'mariadb' để tạo cơ sở dữ liệu và người dùng mới.Để bảo mật máy chủ MariaDB, hãy chạy lệnh 'mariab-secure-installation' bên dưới.
Mã:
sudo mariadb-secure-installation
- Đối với cài đặt máy chủ MariaDB mặc định không có mật khẩu gốc, hãy nhấn ENTER khi được hỏi về mật khẩu.
- Xác thực cục bộ cho người dùng gốc MariaDB được bảo mật theo mặc định, hãy nhập 'n' khi được yêu cầu thay đổi phương thức xác thực thành 'unix_socket'.
- Nhập 'Y' để tạo mật khẩu gốc MariaDB mới. Sau đó, nhập mật khẩu mạnh cho người dùng gốc MariaDB của bạn và lặp lại.
- Khi được yêu cầu tắt xác thực từ xa cho người dùng gốc MariaDB, hãy nhập 'Y' để đồng ý.
- Cài đặt máy chủ MariaDB mặc định đi kèm với cơ sở dữ liệu 'test' và cho phép người dùng ẩn danh truy cập vào đó.
- Nhập 'Y' cho cả hai cài đặt để xóa cơ sở dữ liệu mặc định 'test' và xóa đặc quyền ẩn danh.
- Cuối cùng, nhập 'Y' để xác nhận tải lại đặc quyền bảng.
Đă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 MariaDB của bạn khi được nhắc.
Mã:
sudo mariadb -u root -p
Mã:
CREATE DATABASE joomladb;
CREATE USER joomla@localhost IDENTIFIED BY 'p4ssword';
GRANT ALL PRIVILEGES ON joomladb.* TO joomla@localhost;
FLUSH PRIVILEGES;
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22236%22%3E%3C/svg%3E
Tiếp theo, chạy truy vấn bên dưới để kiểm tra quyền của người dùng 'joomla'. Bạn sẽ thấy người dùng 'joomla' có thể truy cập cơ sở dữ liệu 'joomladb'.
Mã:
SHOW GRANTS FOR joomla@localhost;
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22173%22%3E%3C/svg%3E
Tải xuống mã nguồn Joomla
Lúc này, bạn đã cài đặt và cấu hình các phụ thuộc cho Joomla. Bây giờ, bạn sẽ tải xuống mã nguồn Joomla và thiết lập thư mục document-root/webroot để cài đặt Joomla.Đi đến thư mục '/var/www' và tải xuống mã nguồn Joomla bằng lệnh 'wget' bên dưới. Kiểm tra trang tải xuống Joomla và lấy liên kết cho phiên bản mới nhất.
Mã:
cd /var/www/
wget https://downloads.joomla.org/cms/joomla5/5-1-4/Joomla_5-1-4-Stable-Full_Package.zip
Mã:
unzip Joomla_5-1-4-Stable-Full_Package.zip -d joomla
Mã:
sudo chown -R www-data:www-data /var/www/joomla
Thiết lập khối máy chủ Nginx
Bây giờ bạn sẽ tạo cấu hình khối máy chủ Nginx mới để chạy Joomla. Vì vậy, hãy đảm bảo rằng bạn đã chuẩn bị tên miền và trỏ đến địa chỉ IP của máy chủ.Tạo tệp máy chủ Nginx mới '/etc/nginx/sites-available/joomla' bằng trình chỉnh sửa 'nano' sau.
Mã:
sudo nano /etc/nginx/sites-available/joomla
Mã:
server {
listen 80;
server_name howtoforge.local;
server_name_in_redirect off;
access_log /var/log/nginx/localhost.access_log;
error_log /var/log/nginx/localhost.error_log info;
root /var/www/joomla;
index index.php index.html index.htm default.html default.htm;
# Support API
location /api/ {
try_files $uri $uri/ /api/index.php?$args;
}
# Support Clean (aka Search Engine Friendly) URLs
location / {
try_files $uri $uri/ /index.php?$args;
}
# add global x-content-type-options header
add_header X-Content-Type-Options nosniff;
# deny running scripts inside writable directories
location ~* /(images|cache|media|logs|tmp)/.*\.(php|pl|py|jsp|asp|sh|cgi)$ {
return 403;
error_page 403 /403_error.html;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /etc/nginx/fastcgi.conf;
}
# caching of files
location ~* \.(ico|pdf|flv)$ {
expires 1y;
}
location ~* \.(js|css|png|jpg|jpeg|gif|swf|xml|txt)$ {
expires 14d;
}
}
Bây giờ hãy chạy lệnh bên dưới để kích hoạt khối máy chủ 'joomla' và xác minh cấu hình Nginx của bạn. Nếu bạn có cài đặt Nginx phù hợp, bạn sẽ thấy đầu ra 'Cú pháp là OK'.
Mã:
sudo ln -s /etc/nginx/sites-available/joomla /etc/nginx/sites-enabled/
sudo nginx -t
Mã:
sudo systemctl restart nginx
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22190%22%3E%3C/svg%3E
Bảo mật Joomla bằng HTTPS
Trong hướng dẫn này, bạn sẽ bảo mật Joomla bằng HTTPS. Nếu bạn đang sử dụng miền công cộng, bạn có thể bảo mật Joomla thông qua chứng chỉ SSL/TLS thông qua Certbot và Letsencerypt.Cài đặt 'Certbot' và plugin Certbot Nginx bằng lệnh 'apt' bên dưới. Nhập 'Y' để xác nhận cài đặt.
Mã:
sudo apt install certbot python3-certbot-nginx
Mã:
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [emailprotected] -d howtoforge.local
Cài đặt Joomla
Mở trình duyệt web của bạn và truy cập tên miền Joomla của bạn như https://howtoforge.local/. Bạn sẽ thấy trình hướng dẫn cài đặt Joomla.Chọn ngôn ngữ mặc định của bạn và nhập tên trang web của bạn.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22557%22%3E%3C/svg%3E
Nhập tên người dùng quản trị mới, email và mật khẩu cho Joomla.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22724%22%3E%3C/svg%3E
Nhập thông tin chi tiết về cơ sở dữ liệu MariaDB và người dùng của bạn, sau đó nhấp vào 'Cài đặt Joomla' để tiếp tục cài đặt.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22708%22%20height=%22750%22%3E%3C/svg%3E
Sau khi cài đặt hoàn tất, hãy nhấp vào 'Mở trang web' để mở trang chủ mặc định hoặc 'Mở Administrator' để truy cập bảng điều khiển quản trị Joomla.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22466%22%3E%3C/svg%3E
Đối với trang chủ mặc định của Joomla, bạn sẽ thấy nội dung sau.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22334%22%3E%3C/svg%3E
Bây giờ hãy nhập tên người dùng và mật khẩu quản trị của bạn và nhấp vào 'Đăng nhập'.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22602%22%20height=%22559%22%3E%3C/svg%3E
Nếu bạn có tên người dùng và mật khẩu đúng, bạn sẽ thấy bảng điều khiển quản trị Joomla sau.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22357%22%3E%3C/svg%3E