Cách cài đặt CraftCMS với Apache trên Debian

Tác giả Security+, T.Hai 05, 2024, 03:20:31 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 CraftCMS với Apache trên Debian


CraftCMS là một hệ thống quản lý nội dung nguồn mở và miễn phí để tạo các trang web và trải nghiệm kỹ thuật số trực quan, thân thiện với người dùng và linh hoạt. CraftCMS có thể được sử dụng cho nhiều mục đích khác nhau, từ hệ thống quản lý nội dung đơn giản đến Thương mại điện tử. Nó được viết bằng PHP và dựa trên khung Yii-2, Vuejs và Twig. Nó cũng hỗ trợ cơ sở dữ liệu MySQL/MariaDB và PostgreSQL.

CraftCMS là một khung web mạnh mẽ với API GraphQL được tạo tự động và có thể được mở rộng với hàng trăm mô-đun và plugin.

Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách cài đặt CraftCMS với Apache và MariaDB trên Debian 11.

1. Yêu cầu

  • Máy chủ Linux có phiên bản Debian 11 Bullseye mới nhất
  • Người dùng root và mật khẩu hoặc người dùng có quyền root sudo
  • Một tên miền trỏ đến địa chỉ IP của máy chủ của bạn

2. Cài đặt các gói phụ thuộc

Trước tiên, bạn cần cài đặt ngăn xếp LAMP trên hệ thống Debian của mình. CraftCMS là một ứng dụng dựa trên PHP, vì vậy bạn sẽ cần cài đặt các gói PHP cùng một số tiện ích mở rộng bổ sung mà CraftCMS yêu cầu.

Cài đặt Apache và MariaDB Server trên hệ thống Debian 11 bằng cách chạy lệnh sau:

Mã nguồn [Chọn]
sudo apt install apache2 mariadb-server mariadb-client -y
Sau khi tất cả các gói đã được cài đặt, hãy chạy lệnh sau để cài đặt các gói PHP có phần mở rộng bổ sung cho CraftCMS.

Mã nguồn [Chọn]
sudo apt install php libapache2-mod-php php-common php-mysql php-gmp php-curl php-intl php-mbstring php-xmlrpc php-gd php-bcmath php-xml php-cli php-intl php-zip -y
Tiếp theo, kiểm tra các dịch vụ MariaDB và Apache bằng lệnh sau. Trên hệ thống Debian và Ubuntu, các dịch vụ Apache và MariaDB được khởi động tự động sau khi cài đặt.

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

sudo systemctl status mariadb

Bây giờ bạn có thể thấy các dịch vụ Apache và MariaDB đang chạy trên hệ thống Debian của bạn.



3. Bảo mật cài đặt MariaDB bằng tập lệnh mysql_secure_installation

Nếu bạn đang cài đặt MariaDB lần đầu tiên, bạn nên sử dụng lệnh `mysql_secure_installation` để thiết lập mật khẩu gốc MariaDB và bảo mật quá trình triển khai MariaDB của bạn.

Thực hiện lệnh `mysql_secure_installation` để thiết lập mật khẩu gốc MariaDB của bạn.

Mã nguồn [Chọn]
sudo mysql_secure_installation
Bạn sẽ được nhắc nhập mật khẩu hiện tại cho MariaDB. Cài đặt MariaDB mặc định không có mật khẩu, nhấn `ENTER` để tiếp tục.

Mã nguồn [Chọn]
To log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
haven't set the root password yet, you should just press enter here.

Nhập mật khẩu hiện tại cho root (không nhập):
OK, đã sử dụng mật khẩu thành công, tiếp tục...

Bây giờ bạn sẽ được nhắc thiết lập xác thực mặc định cho người dùng root MariaDB. Vì lý do bảo mật, chúng tôi luôn khuyến nghị sử dụng phương thức xác thực "unix_socket " cho người dùng root MariaDB.

Nhập `Y` để bật xác thực MariaDB `unix_socket`.

Mã nguồn [Chọn]
Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.
You already have your root account protected, so you can safely answer 'n'.

Switch to unix_socket authentication [Y/n] Y
Enabled successfully!
Reloading privilege tables..
... Success!

Tiếp theo, nhập "Y " để xác nhận và thiết lập mật khẩu mới cho người dùng root MariaDB. Đảm bảo bạn sử dụng mật khẩu mạnh cho tài khoản gốc MariaDB của mình.

Mã nguồn [Chọn]
You already have your root account protected, so you can safely answer 'n'.
Change the root password? [Y/n] Y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
... Success!

Nhập lại " Y" để xóa người dùng mặc định ẩn danh cho MariaDB.

Mã nguồn [Chọn]
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Xóa người dùng ẩn danh? [Y/n] Y
... Thành công!

Bây giờ gõ "Y " để tắt tính năng đăng nhập từ xa cho người dùng root MariaDB. Nếu bạn cần đăng nhập từ xa MariaDB, hãy sử dụng một người dùng khác chứ không phải người dùng `root` để đăng nhập từ xa.

Mã nguồn [Chọn]
Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Không cho phép đăng nhập root từ xa? [Y/n] Y
... Thành công!

Xóa "kiểm tra " cơ sở dữ liệu mặc định và tất cả các quyền của nó bằng cách nhập " Y" vào dấu nhắc lệnh.

Mã nguồn [Chọn]
By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Xóa cơ sở dữ liệu thử nghiệm và truy cập vào nó? [Y/n] Y
- Xoá cơ sở dữ liệu kiểm tra...
...Thành công!
- Xóa đặc quyền trên cơ sở dữ liệu thử nghiệm...
... Thành công!

Cuối cùng, tải lại tất cả các quyền của bảng trên máy chủ MariaDB để áp dụng cài đặt mới.

Mã nguồn [Chọn]
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Tải lại bảng đặc quyền ngay bây giờ? [Y/n] Y
... Thành công!

Bây giờ bạn đã bảo mật quá trình cài đặt MariaDB bằng cách đặt mật khẩu mặc định cho root, vô hiệu hóa đăng nhập từ xa cho root và bật xác thực unix_socket cho người dùng root.

4. Thiết lập cơ sở dữ liệu và PHP cho CraftCMS

Trong bước này, bạn thiết lập cơ sở dữ liệu MariaDB mới và người dùng mới cho CraftCMS. Sau đó thực hiện một số điều chỉnh đối với cấu hình PHP `php.ini`, cần thiết cho quá trình cài đặt CraftCMS.

Để thiết lập cơ sở dữ liệu MariaDB và người dùng, bạn phải đăng nhập vào trình bao MariaDB bằng lệnh `mysql` bên dưới.

Mã nguồn [Chọn]
sudo mysql -u root -p
Bây giờ hãy chạy các truy vấn MySQL sau để tạo cơ sở dữ liệu mới `craftcms` và người dùng `craftuser` với mật khẩu `StrongPasswordCraftCMS`. Sau đó cho phép người dùng cơ sở dữ liệu `craftuser` truy cập cơ sở dữ liệu `craftcms` và tải lại tất cả các quyền của bảng để áp dụng các cài đặt mới.

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

Nhập `exit` để đăng xuất khỏi trình bao MariaDB.

Mã nguồn [Chọn]
exit

Tiếp theo, thay đổi cấu hình PHP `/etc/php/7.4/apache2/php.ini` bằng trình soạn thảo nano.

Mã nguồn [Chọn]
sudo nano /etc/php/7.4/apache2/php.ini
Thay đổi cài đặt mặc định với cấu hình sau cho CraftCMS.

Mã nguồn [Chọn]
file_uploads = On
allow_url_fopen = On
short_open_tag = On
memory_limit = 512M
upload_max_filesize = 100M
max_execution_time = 360
date.timezone = Europe/Paris

Lưu cấu hình và hoàn thành nó.

Bây giờ, bạn phải khởi động lại dịch vụ Apache2 để áp dụng những thay đổi mới trong cấu hình `php.ini`.

Mã nguồn [Chọn]
sudo systemctl restart apache2
5. Cài đặt Composer

Có một số cách để cài đặt CraftCMS, nhưng cách dễ nhất là cài đặt CfatCMS bằng công cụ Composer. Composer là trình quản lý gói cho PHP, tương tự như npm cho Nodejs, pip cho Python hoặc gem cho Ruby.

Ở bước này, bạn sẽ cài đặt công cụ Composer trên hệ thống Debian của mình.

Trước tiên, hãy chạy lệnh sau để tải xuống trình cài đặt cho Composer và xác minh tính toàn vẹn của tệp trình cài đặt.

Mã nguồn [Chọn]
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === '906a84df04cea2aa72f40b5f787e49f22d4c2f19492ac310e8cba5b96ac8b64115ac402c8cd292b8a03482574915d1a8') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"

Bạn sẽ nhận được thông báo như "Installerverified" nếu trình cài đặt hợp lệ.


Bây giờ hãy cài đặt Composer bằng cách thực thi tập lệnh cài đặt. Sau đó di chuyển tệp nhị phân của công cụ Composer sang `/usr/local/bin/composer`. Điều này cho phép người dùng chạy công cụ Composer một cách dễ dàng.

Mã nguồn [Chọn]
php composer-setup.php
php -r "unlink('composer-setup.php');"

Mã nguồn [Chọn]
sudo mv Composer.phar /usr/local/bin/composer

Cuối cùng, kiểm tra phiên bản Composer của bạn bằng lệnh sau.

Mã nguồn [Chọn]
sudo -u www-data composer --version
sudo -u www-data composer -v

Điều này sẽ cung cấp cho bạn phiên bản chi tiết của công cụ Composer được cài đặt trên hệ thống của bạn. Tại thời điểm viết bài, phiên bản mới nhất của công cụ Composer là v2.2.3.


Bây giờ bạn đã cài đặt công cụ Composer trên hệ thống của mình. Trong bước tiếp theo, bạn có thể cài đặt CraftCMS.

6. Cài đặt CraftCMS bằng công cụ Composer

Trong bước này, bạn cài đặt và định cấu hình CraftCMS bằng công cụ Composer. Đầu tiên, thiết lập thư mục dự án cho CraftCMS (bao gồm các quyền và quyền sở hữu chính xác), sau đó cài đặt CraftCMS trên hệ thống Debian và thiết lập CraftCMS theo cách thủ công qua thiết bị đầu cuối.

Thực hiện lệnh sau để tạo thư mục dự án mới cho CraftCMS. Đảm bảo rằng chủ sở hữu của thư mục dự án CraftCMS là người dùng "wwww-data". Điều này sẽ cho phép Apache2 và PHP đọc tất cả các tập lệnh PHP trong thư mục dự án.

Mã nguồn [Chọn]
mkdir -p /var/www/{.cache,.config,craftcms}
sudo chown -R www-data:www-data /var/www/{.cache,.config,craftcms}

Như bạn có thể thấy trong dòng lệnh, bạn tạo một số thư mục. Thư mục `.cache` được sử dụng để lưu trữ các gói PHP, thư mục `craftcms` là thư mục chính để cài đặt CraftCMS và thư mục `.config` được sử dụng để lưu trữ một số cấu hình bổ sung cho công cụ Composer.

Tiếp theo, thực hiện lệnh sau để cài đặt CraftCMS trong thư mục `/var/www/craftcms`.

Mã nguồn [Chọn]
su - www-data -s /bin/bash -c 'composer create-project craftcms/craft /var/www/craftcms'
Lệnh này sẽ tải xuống và cài đặt CraftCMS cùng với bất kỳ gói PHP nào mà nó phụ thuộc vào. Khi quá trình cài đặt hoàn tất, bạn sẽ nhận được kết quả đầu ra sau như trong ảnh chụp màn hình bên dưới.


Để thiết lập cài đặt CraftCMS của bạn, hãy chạy lệnh sau. Điều này giống như trình hướng dẫn cài đặt CraftCMS, nhưng trên dòng lệnh và ở chế độ đầu cuối.

Mã nguồn [Chọn]
su - www-data -s /bin/bash -c 'php /var/www/craftcms/craft setup'
  • Đối với trình điều khiển cơ sở dữ liệu tiêu chuẩn, hãy nhập "mysql ".
  • Nhập cơ sở dữ liệu MariaDB chi tiết và người dùng để cài đặt CraftCMS.
  • Nhập "Có " để xác nhận cài đặt CraftCMS.
  • Nhập người dùng quản trị viên mới, email và mật khẩu cho CraftCMS của bạn. Đây là tài khoản quản trị viên của bạn cho CraftCMS. Hãy chắc chắn rằng bạn sử dụng một mật khẩu mạnh.
  • Nhập thông tin chi tiết về cài đặt CraftCMS của bạn.


Khi quá trình cài đặt CraftCMS hoàn tất, bạn sẽ thấy thông báo "Craft đã cài đặt thành công ", như trong ảnh chụp màn hình bên dưới.


7. Thiết lập Máy chủ ảo Apache cho CraftCMS

Sau khi cài đặt CraftCMS, bạn cần thiết lập máy chủ ảo Apache2 để có thể truy cập CraftCMS. Trong ví dụ này, bạn sẽ thiết lập máy chủ ảo Apache2 cho CraftCMS có bật SSL. Vì vậy, hãy đảm bảo bạn có chứng chỉ SSL cho tên miền của mình.

Trước khi thiết lập máy chủ ảo Apache2, hãy chạy lệnh sau để kích hoạt mô-đun Apache `rewrite` và `ssl`.

Mã nguồn [Chọn]
sudo a2enmod rewrite ssl
Sau đó di chuyển thư mục làm việc sang thư mục `/etc/apache2/sites-available` và tạo cấu hình mới cho máy chủ ảo `craftcms.conf` bằng trình soạn thảo nano.

Mã nguồn [Chọn]
cd /etc/apache2/sites-available/
sudo nano craftcms.conf

Sao chép và dán cấu hình sau. Đảm bảo rằng bạn thay đổi tên miền và đường dẫn của chứng chỉ SSL.

Mã nguồn [Chọn]
<VirtualHost *:80>
    ServerName craftcms.example.io
    Redirect permanent / https://craftcms.example.io/
</VirtualHost>
<VirtualHost *:443>
ServerAdmin [email protected]
DocumentRoot /var/www/craftcms/web
ServerName craftcms.example.io

Protocols h2 http/1.1

SSLEngine On
SSLCertificateFile /etc/letsencrypt/live/craftcms.example.io/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/craftcms.example.io/privkey.pem

<Directory /var/www/craftcms/web/>
Options FollowSymlinks
AllowOverride All
Require all granted
</Directory>

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

<Directory /var/www/craftcms/web/>
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*) index.php [PT,L]
</Directory>
</VirtualHost>

Lưu cấu hình và hoàn thành nó.

Bây giờ hãy kích hoạt cấu hình của máy chủ ảo `craftcms.conf` và kiểm tra cấu hình Apache2.

Mã nguồn [Chọn]
sudo a2ensite craftcms.conf
sudo apchectl configtest

Nếu cấu hình Apache2 của bạn đúng, bạn sẽ thấy thông báo `SyntaxOK`.

Bây giờ hãy khởi động lại dịch vụ Apache2 để áp dụng cấu hình mới và CraftCMS hiện có thể truy cập được.

Mã nguồn [Chọn]
sudo systemctl restart apache2
8. Kiểm tra cài đặt CraftCMS

Bây giờ bạn đã hoàn tất việc cài đặt CraftCMS. Để kiểm tra cài đặt CraftCMS, giờ đây bạn có thể truy cập tên miền của mình thông qua trình duyệt web.

Mở trình duyệt web của bạn và nhập tên miền cài đặt CraftCMS của bạn.

  Đăng nhập để xem liên kết

Trong quá trình cài đặt ban đầu, bạn sẽ được chuyển hướng đến trang quản trị CraftCMS. Đăng nhập vào bảng điều khiển CraftCMS bằng người dùng và mật khẩu quản trị viên của bạn.


Nếu thông tin đăng nhập quản trị viên của bạn chính xác, bạn sẽ thấy bảng điều khiển CraftCMS như trong ảnh chụp màn hình bên dưới.


Như bạn có thể thấy ở góc trên cùng bên phải, CraftCMS của bạn đã được cập nhật.

Tiếp theo, mở miền chính của CraftCMS và bạn sẽ thấy trang chỉ mục mặc định của CraftCMS.


Chúc mừng! Bây giờ bạn đã học cách cài đặt CraftCMS với máy chủ web Apache2 và cơ sở dữ liệu MariaDB trên hệ thống Debian 11. Bây giờ bạn có thể thử thêm nội dung mới vào CraftCMS của mình hoặc xem các plugin có sẵn cho CraftCMS và cài đặt chúng.