Cách cài đặt Craft CMS với Nginx trên Debian 11

theanh

Administrator
Nhân viên
Craft CMS là một hệ thống quản lý nội dung mã nguồn mở và miễn phí được viết bằng PHP và dựa trên nền tảng Yii. Đây là một CMS an toàn và có khả năng mở rộng, cung cấp nhiều plugin giúp bạn tùy chỉnh trang web của mình một cách dễ dàng. Nó cho phép bạn tạo nội dung và cấu trúc dữ liệu ứng dụng của mình với khả năng kiểm soát mọi thứ, bao gồm cả HTML của riêng bạn. Đây là nền tảng CMS đơn giản, nhẹ và dễ sử dụng cho phép chủ sở hữu trang web cộng tác và tự động hóa các trải nghiệm hấp dẫn với người dùng trên nhiều thiết bị.

Bài đăng này sẽ chỉ cho bạn cách cài đặt Craft CMS với Nginx và Let's Encrypt SSL trên Debian 11.

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

  • Máy chủ chạy Debian 11.
  • Tên miền hợp lệ được trỏ đến IP máy chủ.
  • Mật khẩu gốc được cấu hình trên máy chủ.

Cài đặt Nginx, MariaDB và PHP​

Trước tiên, hãy cài đặt máy chủ web Apache, máy chủ MariaDB, PHP và các tiện ích mở rộng PHP cần thiết khác:
Mã:
apt-get install nginx mariadb-server php php-cli php-fpm php-common php-curl php-gd php-imagick php-json php-mbstring php-mysql php-pgsql php-zip php-intl php-xml sudo curl -y
Sau khi tất cả các gói được cài đặt, hãy chỉnh sửa tệp php.ini bằng lệnh sau:
Mã:
nano /etc/php/7.4/fpm/php.ini
Thay đổi các thiết lập sau:
Mã:
memory_limit = 512Mpost_max_size = 32Mupload_max_filesize = 32Mdate.timezone = Asia/Kolkata
Lưu và đóng tệp sau đó khởi động lại dịch vụ PHP-FPM để áp dụng các thay đổi:
Mã:
systemctl restart php7.4-fpm

Tạo Cơ sở dữ liệu cho Craft CMS​

Tiếp theo, bạn sẽ cần tạo cơ sở dữ liệu và người dùng cho Craft CMS. Để thực hiện, hãy đăng nhập vào shell MySQL bằng lệnh sau:
Mã:
mysql
Sau khi đăng nhập, hãy tạo cơ sở dữ liệu và người dùng bằng lệnh sau:
Mã:
MariaDB [(none)]> CREATE DATABASE craftdb;
MariaDB [(none)]> GRANT ALL ON craftdb.* TO 'craftuser' IDENTIFIED BY 'password';
Tiếp theo, xóa các đặc quyền và thoát khỏi shell MariaDB bằng lệnh sau:
Mã:
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.

Cài đặt Composer​

Composer là trình quản lý phụ thuộc cho PHP được sử dụng để cài đặt các phụ thuộc cần thiết cho dự án PHP của bạn. Bạn có thể cài đặt Composer bằng lệnh sau:
Mã:
curl -sS https://getcomposer.org/installer -o composer-setup.php
php composer-setup.php --install-dir=/usr/local/bin --filename=composer
Bạn sẽ thấy kết quả sau:
Mã:
Tất cả các thiết lập đều chính xác để sử dụng ComposerĐang tải xuống...Composer (phiên bản 2.1.8) đã được cài đặt thành công vào: /usr/local/bin/composerSử dụng: php /usr/local/bin/composer
Sau khi cài đặt hoàn tất, hãy xác minh phiên bản COmposer bằng lệnh sau:
Mã:
composer --version
Bạn sẽ thấy kết quả sau:
Mã:
Composer phiên bản 2.1.8 2021-09-15 13:55:14

Cài đặt Craft CMS​

Tiếp theo, bạn sẽ cần cài đặt Craft CMS bằng Composer. Trước tiên, hãy thay đổi quyền sở hữu thư mục gốc mặc định của Nginx thành www-data:
Mã:
chown -R www-data:www-data /var/www/html
Tiếp theo, điều hướng đến thư mục /var/www/html và cài đặt Craft CMS bằng lệnh sau:
Mã:
cd /var/www/html
sudo -u www-data composer create-project craftcms/craft craftcms
Bạn sẽ được yêu cầu cung cấp thông tin xác thực cơ sở dữ liệu, tên người dùng quản trị, mật khẩu và URL trang web như hiển thị bên dưới:
Mã:
> @php craft thiết lập/chào mừng ______ .______ ___ _______ .___________. / || _ \ / \ | ____|| | | ,----'| |_) | / ^ \ | |__ `---| |----` | | | / / /_\ \ | __| | | | `----.| |\ \----./ _____ \ | | | | \______|| _| `._____/__/ \__\ |__| |__| MỘT CẮM MÁY MỚI ______ .___ ___. _______. / || \/ | / | | ,----'| \ / | | (----` | | | |\/| | \ \ | `----.| | | | .----) | \______||__| |__| |_______/Đang tạo ID ứng dụng ... xong (CraftCMS--286d40e5-ec80-49e0-b64b-13bb7870375e)Đang tạo khóa bảo mật ... xong (5k8ygP059NnCLeTZvxRily-R4Wect6tY)Chào mừng đến với Craft CMS!Bạn đã sẵn sàng bắt đầu thiết lập chưa? (có|không) [không]:cóĐang tạo ID ứng dụng ... xong (CraftCMS--37ec6cd5-fde9-4b09-b2e8-1ad29edd4142)Bạn đang sử dụng trình điều khiển cơ sở dữ liệu nào? [mysql,pgsql,?]: mysqlTên máy chủ cơ sở dữ liệu hoặc địa chỉ IP: [127.0.0.1]Cổng cơ sở dữ liệu: [3306]Tên người dùng cơ sở dữ liệu: [root] craftuserMật khẩu cơ sở dữ liệu:Tên cơ sở dữ liệu: craftdbTiền tố bảng cơ sở dữ liệu:Đang kiểm tra thông tin xác thực cơ sở dữ liệu ... thành công!Lưu thông tin xác thực cơ sở dữ liệu vào tệp .env của bạn ... xongCài đặt Craft ngay? (có|không) [có]:cóTên người dùng: [admin]Email: [emailprotected]Mật khẩu:Xác nhận:Tên trang web: Craft SiteURL trang web: https://craftcms.example.comNgôn ngữ trang web: [en-US]
Sau khi Craft CMS đã được cài đặt, hãy thiết lập quyền sở hữu thích hợp cho thư mục craftcms:
Mã:
chown -R www-data:www-data /var/www/html/craftcms

Cấu hình Nginx cho Craft CMS​

Tiếp theo, bạn sẽ cần tạo tệp cấu hình máy chủ ảo Nginx để phục vụ Craft CMS. Bạn có thể tạo tệp này bằng lệnh sau:
Mã:
nano /etc/nginx/conf.d/craftcms.conf
Thêm các dòng sau:
Mã:
server {listen 80; server_name craftcms.example.com; root /var/www/html/craftcms/web; index index.php; location / { try_files $uri/index.html $uri $uri/ /index.php?$query_string; } location ~ [^/]\.php(/|$) { try_files $uri $uri/ /index.php?$query_string; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param HTTP_PROXY ""; }}
Lưu và đóng tệp, sau đó xác minh Nginx xem có lỗi cú pháp nào không bằng lệnh sau:
Mã:
nginx -t
Bạn sẽ thấy kết quả sau:
Mã:
nginx: cú pháp tệp cấu hình /etc/nginx/nginx.conf là oknginx: kiểm tra tệp cấu hình /etc/nginx/nginx.conf thành công
Tiếp theo, tải lại dịch vụ Nginx để áp dụng các thay đổi:
Mã:
systemctl reload nginx
Để kiểm tra trạng thái Nginx, hãy chạy lệnh sau:
Mã:
systemctl status nginx
Bạn sẽ thấy kết quả sau:
Mã:
? nginx.service - Máy chủ web hiệu suất cao và máy chủ proxy ngược Đã tải: đã tải (/lib/systemd/system/nginx.service; đã bật; cài đặt trước của nhà cung cấp: đã bật) Đang hoạt động: hoạt động (đang chạy) từ CN 2021-09-26 02:24:40 UTC; 6 giây trước Tài liệu: man:nginx(8) Tiến trình: 370207 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Tiến trình: 370208 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS) PID chính: 370209 (nginx) Nhiệm vụ: 5 (giới hạn: 9510) Bộ nhớ: 4,7M CPU: 53ms CGroup: /system.slice/nginx.service ??370209 nginx: tiến trình chính /usr/sbin/nginx -g daemon on; master_process on; ??370210 nginx: tiến trình làm việc ??370211 nginx: tiến trình làm việc ??370212 nginx: tiến trình làm việc ??370213 nginx: tiến trình làm việc26/09 02:24:40 debian11 systemd[1]: Đang khởi động Một máy chủ web hiệu suất cao và một máy chủ proxy ngược...26/09 02:24:40 debian11 systemd[1]: Đang khởi động Một máy chủ web hiệu suất cao và một máy chủ proxy ngược.

Bảo mật Craft CMS với Let's Encrypt SSL​

Tiếp theo, bạn sẽ cần cài đặt gói máy khách Certbot để cài đặt và quản lý Let's Encrypt SSL.

Trước tiên, hãy cài đặt Certbot bằng lệnh sau:
Mã:
apt-get install python3-certbot-nginx -y
Sau khi quá trình cài đặt hoàn tất, hãy chạy lệnh sau để cài đặt Let's Encrypt SSL trên trang web của bạn:
Mã:
certbot --nginx -d craftcms.example.com
Bạn sẽ được yêu cầu cung cấp địa chỉ email hợp lệ và chấp nhận các điều khoản dịch vụ như hiển thị bên dưới:
Mã:
Lưu nhật ký gỡ lỗi vào /var/log/letsencrypt/letsencrypt.logCác plugin đã chọn: Authenticator nginx, Installer nginxNhập địa chỉ email (dùng để gia hạn khẩn cấp và thông báo bảo mật) (Nhập 'c' đểhủy): [emailprotected]- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Vui lòng đọc Điều khoản dịch vụ tạihttps://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. Bạn phảiđồng ý để đăng ký với máy chủ ACME tạihttps://acme-v02.api.letsencrypt.org/directory- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -(A)gree/(C)ancel: A- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Bạn có sẵn lòng chia sẻ địa chỉ email của mình với Electronic Frontier Foundation, đối tác sáng lập của dự án Let's Encrypt và tổ chức phi lợi nhuận phát triển Certbot không? Chúng tôi muốn gửi cho bạn email về công việc của chúng tôimã hóa web, tin tức EFF, các chiến dịch và các cách hỗ trợ tự do kỹ thuật số.- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -(C)ó/(K)o: CNhận chứng chỉ mớiThực hiện các thử thách sau:Thử thách http-01 cho craftcms.example.comĐang chờ xác minh...Dọn dẹp các thử tháchTriển khai chứng chỉ cho VirtualHost /etc/nginx/conf.d/craftcms.conf
Tiếp theo, chọn có chuyển hướng lưu lượng HTTP sang HTTPS hay không như hiển thị bên dưới:
Mã:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -1: Không chuyển hướng - Không thực hiện thêm bất kỳ thay đổi nào đối với cấu hình máy chủ web.2: Chuyển hướng - Chuyển hướng tất cả các yêu cầu đến quyền truy cập HTTPS an toàn. Chọn tùy chọn này chocác trang web mới hoặc nếu bạn tin chắc rằng trang web của mình hoạt động trên HTTPS. Bạn có thể hoàn tác thay đổi nàybằng cách chỉnh sửa cấu hình máy chủ web của bạn.- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Chọn số thích hợp [1-2] sau đó [enter] (nhấn 'c' để hủy): 2
Nhập 2 và nhấn Enter để hoàn tất cài đặt. Bạn sẽ thấy đầu ra sau:
Mã:
Đang chuyển hướng tất cả lưu lượng truy cập trên cổng 80 sang ssl trong /etc/nginx/conf.d/craftcms.conf- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Xin chúc mừng! Bạn đã bật thành công https://craftcms.example.comBạn nên kiểm tra cấu hình của mình tại:https://www.ssllabs.com/ssltest/analyze.html?d=craftcms.example.com- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -LƯU Ý QUAN TRỌNG: - Xin chúc mừng! Chứng chỉ và chuỗi của bạn đã được lưu tại: /etc/letsencrypt/live/craftcms.example.com/fullchain.pem Tệp khóa của bạn đã được lưu tại: /etc/letsencrypt/live/craftcms.example.com/privkey.pem Chứng chỉ của bạn sẽ hết hạn vào ngày 26-05-2022. Để có phiên bản mới hoặc đã chỉnh sửa của chứng chỉ này trong tương lai, chỉ cần chạy lại certbot với tùy chọn "certonly". Để gia hạn không tương tác *tất cả* chứng chỉ của bạn, hãy chạy "certbot renew" - Thông tin đăng nhập tài khoản của bạn đã được lưu trong thư mục cấu hình Certbot tại /etc/letsencrypt. Bây giờ bạn nên sao lưu an toàn thư mục này. Thư mục cấu hình này cũng sẽ chứa các chứng chỉ và khóa riêng do Certbot thu thập, do đó, việc sao lưu thường xuyên thư mục này là lý tưởng. - Nếu bạn thích Certbot, vui lòng cân nhắc hỗ trợ công việc của chúng tôi bằng cách: Quyên góp cho ISRG / Let's Encrypt: https://letsencrypt.org/donate Quyên góp cho EFF: https://eff.org/donate-le - Chúng tôi không thể đăng ký cho bạn danh sách gửi thư EFF vì địa chỉ email của bạn có vẻ không hợp lệ. Bạn có thể thử lại sau bằng cách truy cập https://act.eff.org.

Truy cập Craft CMS​

Bây giờ, hãy mở trình duyệt web của bạn và truy cập Craft CMS bằng URL . Bạn sẽ thấy màn hình sau:



Nhấp vào Đi đến bảng điều khiển của bạn. Bạn sẽ thấy trang đăng nhập Craft CMS:



Cung cấp thông tin đăng nhập của bạn và nhấp vào nút Đăng nhập. Bạn sẽ thấy bảng điều khiển Craft CMS trên màn hình sau:


Kết luận​

Xin chúc mừng! bạn đã cài đặt thành công CraftCMS với Nginx và Let's Encrypt SSL trên Debian 11. Bây giờ bạn có thể dễ dàng xây dựng trang web của mình từ bảng điều khiển Craft CMS. Hãy thoải mái hỏi tôi nếu bạn có bất kỳ câu hỏi nào.
 
Back
Bên trên