Cách cài đặt Joomla trên Ubuntu 22.04

Tác giả Security+, T.Hai 05, 2024, 04:29:44 CHIỀU

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 1 Khách đang xem chủ đề.

Cách cài đặt Joomla trên Ubuntu 22.04


Joomla là một hệ thống quản lý nội dung (CMS) mã nguồn mở và miễn phí để tạo các trang web động. Nó dựa trên khung Model-View-Controller cho các ứng dụng web và cung cấp các giao diện trực quan cũng như nhiều chức năng. Joomla chủ yếu được viết bằng ngôn ngữ lập trình PHP với Giấy phép Công cộng GNU và cũng hỗ trợ hai RDBMS (Hệ thống quản lý cơ sở dữ liệu quan hệ) khác nhau: MySQL/MariaDB và PostgreSQL.

Joomla là một trong những hệ thống quản lý nội dung phổ biến nhất trên Internet. Nó rất linh hoạt: bạn có thể sử dụng Joomla để xuất bản nội dung web, diễn đàn, thư viện ảnh, thương mại điện tử và nhiều ứng dụng web. Nó hỗ trợ đa ngôn ngữ và SEO, đồng thời có thiết kế tuyệt vời và các tính năng tuyệt vời. Joomla là một CMS rất linh hoạt, có thể mở rộng và tùy chỉnh.

Hướng dẫn này sẽ chỉ cho bạn cách cài đặt Joomla CMS (Hệ thống quản lý nội dung) với ngăn xếp LAMP (Linux, Apache2, MariaDB và PHP) trên máy chủ Ubuntu 22.04. Tôi cũng sẽ chỉ cho bạn cách thiết lập máy chủ Apache2 ảo cho Joomla bằng SSL/HTTPS để bạn có được một Joomla CMS an toàn có bật SSL/HTTPS.

1. Điều kiện tiên quyết

Trước khi bắt đầu với hướng dẫn này, bạn phải đáp ứng các yêu cầu sau:

  • Máy chủ Ubuntu 22.04.
  • Người dùng không phải root có đặc quyền root/quản trị viên.
  • Một tên miền trỏ đến địa chỉ IP của máy chủ.

2. Cài đặt máy chủ web Apache2

Joomla CMS có thể được vận hành dưới nhiều máy chủ web khác nhau như Apache2, Nginx hoặc IIS (dành cho Windows). Hướng dẫn này chỉ cho bạn cách chạy Joomla với máy chủ web Apache2. Bây giờ hãy cài đặt máy chủ web Apache2 trên hệ thống Ubuntu của bạn.

Chạy lệnh apt sau để cập nhật và nâng cấp kho Ubuntu trước khi cài đặt gói Apache2.

Mã nguồn [Chọn]
sudo apt update
Bây giờ cài đặt máy chủ web Apache2 bằng lệnh sau. Nhập Y để xác nhận cài đặt và nhấn ENTER để bắt đầu cài đặt.

Mã nguồn [Chọn]
sudo apt install apache2

Sau khi quá trình cài đặt Apache2 hoàn tất, hãy chạy lệnh sau để kiểm tra và xác minh dịch vụ Apache2. Trên hệ thống Ubuntu, Apache2 được tự động kích hoạt và chạy. Vì vậy, bạn sẽ thấy dịch vụ Apache2 đã được "kích hoạt " và tự động chạy khi khởi động. Và trạng thái hiện tại của dịch vụ Apache2 là "đang chạy".

Mã nguồn [Chọn]
sudo systemctl is-enabled apache2
sudo systemctl status apache2


Nếu bạn có tường lửa UFW chạy trên hệ thống Ubuntu của mình, bạn cần thêm các cổng quy tắc Apache2 vào tường lửa. Cài đặt mặc định của Apache2 đi kèm với quy tắc ứng dụng UFW.

Chạy lệnh ufw bên dưới để thêm các cổng dịch vụ Apache2 (80 và 443 - HTTP và HTTPS) vào tường lửa UFW.

Mã nguồn [Chọn]
sudo ufw allow "Apache2 Full"
sudo ufw reload

Bây giờ hãy kiểm tra quy tắc tường lửa đã bật bằng lệnh sau. Bạn sẽ thấy ứng dụng "Apache2 Full" đã được thêm vào tường lửa UFWE.

Mã nguồn [Chọn]
sudo ufw status
3. Cài đặt máy chủ MariaDB

Joomla có thể được sử dụng với hai RDBMS (Hệ thống quản lý cơ sở dữ liệu quan hệ) khác nhau như MySQL/MariaDB và PostgreSQL. Trong hướng dẫn này, bạn sẽ tìm hiểu cách cài đặt Joomla với MariaDB làm cơ sở dữ liệu mặc định. Vì vậy đã đến lúc cài đặt cơ sở dữ liệu MariaDB trên máy chủ Ubuntu của bạn.

Chạy lệnh apt sau để cài đặt máy chủ cơ sở dữ liệu MariaDB, có sẵn theo mặc định trong kho Ubuntu. Nhập Y để xác nhận cài đặt và nhấn ENTER để bắt đầu cài đặt.

Mã nguồn [Chọn]
sudo apt install mariadb-server

Sau khi quá trình cài đặt máy chủ MariaDB hoàn tất, hãy chạy lệnh sau để kiểm tra và xác minh dịch vụ MariaDB. Bạn sẽ thấy dịch vụ MariaDB đã được kích hoạt, tức là nó được tự động thực thi khi khởi động. Ngoài ra, trạng thái hiện tại của dịch vụ MariaDB là "đang chạy".

Mã nguồn [Chọn]
sudo systemctl is-enabled mariadb
sudo systemctl status mariadb


Tiếp theo, bạn cần thiết lập triển khai MariaDB trên máy chủ của mình. Bạn có thể sử dụng dòng lệnh "mysql_secure_installation " để thiết lập và định cấu hình máy chủ MariaDB với một số cài đặt bảo mật cơ bản. Lệnh này có sẵn theo mặc định trên mỗi lần cài đặt máy chủ MariaDB.

Thực hiện lệnh "mysql_secure_installation " như sau.

Mã nguồn [Chọn]
sudo mysql_secure_installation
Bây giờ bạn sẽ được yêu cầu một số cài đặt máy chủ MariaDB:

  • Quá trình cài đặt MariaDB mặc định không có mật khẩu, vì vậy hãy nhấn ENTER để tiếp tục.
  • Nhập "n " nếu bạn muốn thay đổi xác thực gốc thành unix_socket.
  • Khi được hỏi có muốn thay đổi mật khẩu root hay không, hãy nhập " Y ". Sau đó nhập mật khẩu an toàn mới cho người dùng root MariaDB của bạn.
  • Nhập Y để xóa người dùng ẩn danh mặc định khỏi bản cài đặt MariaDB của bạn.
  • Khi được hỏi liệu bạn có muốn tắt/ngăn đăng nhập từ xa cho người dùng root MariaDB hay không, hãy nhập Y.
  • Bây giờ hãy nhập Y để xóa "kiểm tra " cơ sở dữ liệu mặc định khỏi cài đặt của bạn.
  • Cuối cùng, nhập lại Y để tải lại tất cả các quyền của bảng và áp dụng các thay đổi mới.

Điều này hoàn tất việc cài đặt và cấu hình MariaDB.

4. Cài đặt PHP 8.x

Bây giờ bạn đã cài đặt máy chủ web Apache2 và cơ sở dữ liệu MariaDB, đã đến lúc cài đặt PHP. Phiên bản mới nhất của Joomla yêu cầu ít nhất PHPv7.2.5 với phiên bản PHP 8.x được đề xuất. Và kho lưu trữ mặc định của Ubuntu cung cấp PHP 8.1 phù hợp với phiên bản cài đặt Joomla mới nhất.

Chạy lệnh apt sau để cài đặt các gói PHP. Gõ Y để xác nhận cài đặt và nhấn ENTER để tiếp tục và quá trình cài đặt PHP sẽ bắt đầu.

Mã nguồn [Chọn]
sudo apt install libapache2-mod-php php php-cli php-mysql php-json php-opcache php-mbstring php-intl php-xml php-gd php-zip php-curl php-xmlrpc

Sau khi quá trình cài đặt PHP hoàn tất, hãy chỉnh sửa tệp cấu hình "/etc/php/8.1/apache2/php.ini" bằng lệnh sau. Cần có một số cấu hình bổ sung để cài đặt Joomla CMS.

Mã nguồn [Chọn]
sudo nano /etc/php/8.*/apache2/php.ini
Thay đổi cài đặt PHP mặc định bằng các cấu hình sau.

Mã nguồn [Chọn]
memory_limit = 256M
upload_max_filesize = 80M
post_max_size = 120M
max_execution_time = 160

Lưu và đóng tập tin khi bạn hoàn tất.

Cuối cùng, chạy lệnh sau để khởi động lại dịch vụ Apache2 và áp dụng các thay đổi mới.

Mã nguồn [Chọn]
sudo systemctl restart apache2
5. Tạo cơ sở dữ liệu và người dùng Joomla

Trước khi bắt đầu cài đặt Joomla, bạn cũng cần tạo cơ sở dữ liệu MariaDB mới và người dùng mới để cài đặt Joomla.

Thực hiện lệnh sau để đăng nhập vào trình bao MariaDB. Bạn sẽ được yêu cầu nhập mật khẩu gốc MariaDB. Nhập đúng mật khẩu cho người dùng root MariaDB.

Mã nguồn [Chọn]
sudo mysql -u root -p
Tiếp theo, chạy các truy vấn sau để tạo người dùng MariaDB mới và cơ sở dữ liệu mới cho Joomla. Trong bản demo này, bạn sẽ tạo cơ sở dữ liệu "joomladb " với người dùng "joomla " và mật khẩu "yourpassword ". Bạn cũng có thể thay đổi chi tiết cấu hình cơ sở dữ liệu.

Mã nguồn [Chọn]
CREATE DATABASE joomladb;
CREATE USER joomla@localhost IDENTIFIED BY 'yourpassword';
GRANT ALL ON joomladb.* TO joomla@localhost WITH GRANT OPTION;
FLUSH PRIVILEGES;


Bây giờ hãy chạy truy vấn sau để kiểm tra và xác minh quyền của người dùng MariaDB " j Joomla ". Bạn sẽ thấy người dùng "joomla " có quyền truy cập vào cơ sở dữ liệu "joomldadb ".

Mã nguồn [Chọn]
SHOW GRANTS FOR joomla@localhost;
quit


6. Tải xuống mã nguồn Joomla

Khi bạn đã tạo cơ sở dữ liệu MariaDB và người dùng cho Joomla, đã đến lúc tải mã nguồn Joomla về máy chủ của bạn. Tại thời điểm viết bài này, phiên bản mới nhất của Joomla v4.1.5 đã ổn định và bạn sẽ cài đặt nó trên máy chủ Ubuntu.

Chạy lệnh wget bên dưới để tải xuống mã nguồn Joomla. Bạn sẽ thấy tập tin "joomla.tar.bz2 " trong thư mục hiện tại của bạn.

Mã nguồn [Chọn]
wget -O j Joomla.tar.bz https://downloads.joomla.org/cms/joomla4/4-1-5/Joomla_4-1-5-Stable-Full_Package.tar.bz2
Bây giờ hãy tạo một thư mục mới " /var/www/joomla " và trích xuất mã nguồn Joomla vào thư mục này bằng cách thực hiện lệnh sau. Thư mục "/var/www/joomla " sẽ là DocumentRoot mặc định cho quá trình cài đặt Joomla của bạn.

Mã nguồn [Chọn]
mkdir -p /var/www/joomla
sudo tar -xjf j Joomla.tar.bz -C /var/www/joomla

Cuối cùng, sử dụng lệnh sau để thay đổi quyền sở hữu và quyền đối với thư mục Joomla DocumentRoot "/var/www/j Joomla ". Chủ sở hữu phải là người dùng "dữ liệu www" và ủy quyền là "755 ".

Mã nguồn [Chọn]
sudo chown -R www-data:www-data /var/www/joomla
sudo chmod 755 /var/www/joomla


7. Thiết lập máy chủ ảo cho Joomla

Bây giờ bạn đã hoàn thành cài đặt ngăn xếp LAMP cơ bản và tạo cơ sở dữ liệu mới và người dùng mới cho Joomla. Bạn cũng đã tải mã nguồn Joomla về thư mục "/var/www/j Joomla ". Bây giờ bạn sẽ thiết lập cấu hình máy chủ ảo Apache2 s=cho Joomla.

Trước khi bạn bắt đầu chỉnh sửa các tệp conf Apache2, hãy chạy lệnh sau để kích hoạt một số mô-đun Apache2.

Mã nguồn [Chọn]
sudo a2enmod rewrite ssl headers deflate
Bây giờ hãy tạo cấu hình máy chủ ảo mới "/etc/apache2/sites-available/joomla.conf " bằng lệnh sau.

Mã nguồn [Chọn]
sudo nano /etc/apache2/sites-available/joomla.conf
Dán cấu hình sau vào tệp. Bạn cũng cần thay đổi tên miền mặc định và đường dẫn của chứng chỉ SSL. Trong ví dụ này chúng tôi sử dụng tên miền "hwdomain.io ".

Mã nguồn [Chọn]
<VirtualHost *:80>
ServerName hwdomain.io
ServerAdmin [email protected]

# Redirect Requests to SSL
Redirect permanent "/" "https://hwdomain.io/"

ErrorLog ${APACHE_LOG_DIR}/hwdomain.io.error.log
CustomLog ${APACHE_LOG_DIR}/hwdomain.io.access.log combined

</VirtualHost>

<IfModule mod_ssl.c>

<VirtualHost _default_:443>

ServerName hwdomain.io
ServerAdmin [email protected]
DocumentRoot /var/www/joomla

# Add security
php_flag register_globals off

ErrorLog ${APACHE_LOG_DIR}/hwdomain.io.error.log
CustomLog ${APACHE_LOG_DIR}/hwdomain.io.access.log combined

SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/hwdomain.io/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/hwdomain.io/privkey.pem

<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>

<Directory /var/www/joomla>
Options None FollowSymLinks
#Allow.htaccess
AllowOverride All
Require all granted
<IfModule security2_module>
SecRuleEngine Off
# or disable only problematic rules
</IfModule>
</Directory>

</VirtualHost>

</IfModule>

Lưu và đóng tệp khi bạn hoàn tất.

Tiếp theo, chạy lệnh sau để kích hoạt cấu hình máy chủ ảo "joomla.conf ". Sau đó kiểm tra cấu hình Apache2. Nếu cấu hình của bạn đúng, bạn sẽ thấy thông báo như "Cú pháp OK ". Nếu bạn nhận được thông báo lỗi, hãy kiểm tra lại tệp cấu hình " joomla.conf ".

Mã nguồn [Chọn]
sudo a2ensite joomla.conf
sudo apachectl configtest

Cuối cùng, thực hiện lệnh sau để khởi động lại dịch vụ Apache2 và áp dụng cấu hình của máy chủ ảo "joomla.conf".

Mã nguồn [Chọn]
sudo systemctl restart apache2

8. Bắt đầu cài đặt Joomla

Để bắt đầu cài đặt Joomla, hãy mở trình duyệt web và truy cập tên miền Joomla (ví dụ:   Đăng nhập để xem liên kết). Bạn sẽ thấy trang cài đặt Joomla.

Chọn ngôn ngữ để cài đặt Joomla của bạn. Sau đó nhập tên trang web cho Joomla của bạn và nhấp vào "Thiết lập dữ liệu đăng nhập ".


Nhập người dùng quản trị viên mới, mật khẩu và địa chỉ e-mail để cài đặt Joomla của bạn và nhấp vào "Thiết lập kết nối cơ sở dữ liệu ".


Chọn "MySQLi " làm loại cơ sở dữ liệu. Sau đó nhập tên cơ sở dữ liệu, người dùng, mật khẩu và tiền tố cơ sở dữ liệu. Cuối cùng bấm vào "Cài đặt Joomla ".


Sau khi cài đặt Joomla hoàn tất, bạn sẽ thấy thông báo như "Xin chúc mừng! Trang web Joomla của bạn đã sẵn sàng.". Nhấp vào "Mở trang " để mở trang chủ mặc định của cài đặt Joomla của bạn hoặc nhấp vào "Mở quản trị viên " để truy cập trang đăng nhập quản trị viên Joomla.


Bạn sẽ thấy trang chủ Joomla mặc định như trong ảnh chụp màn hình bên dưới.


Để đăng nhập quản trị viên Joomla, bạn có thể truy cập URL đường dẫn "/administrator " (tức là   Đăng nhập để xem liên kết ). Nhập người dùng và mật khẩu quản trị viên Joomla rồi nhấp vào "Đăng nhập ".


Nếu người dùng và mật khẩu quản trị viên của bạn chính xác, bạn sẽ thấy bảng điều khiển quản trị viên Joomla như sau.


Chúc mừng! Bây giờ bạn đã cài đặt thành công Joomla CMS với ngăn xếp LAMP trên máy chủ Ubuntu 22.04. Bây giờ bạn cũng đã bảo đảm cài đặt Joomla của mình bằng kết nối SSL/HTTPS. Bây giờ bạn có thể muốn bảo mật cài đặt Joomla của mình bằng cách thay đổi trang quản trị mặc định hoặc cài đặt một số plugin và chủ đề để mở rộng các tính năng của Joomla.