Cách cài đặt Strapi CMS trên Rocky Linux 9

theanh

Administrator
Nhân viên
Strapi là một Hệ thống quản lý nội dung (CMS) mã nguồn mở, không có giao diện người dùng, được xây dựng bằng ngôn ngữ lập trình JavaScript. Giống như các CMS không có giao diện người dùng khác, Strapi không có giao diện người dùng ngay khi cài đặt. Nó sử dụng API cho giao diện người dùng, cho phép bạn xây dựng trang web bằng các khuôn khổ phổ biến như React và Next.js. Dựa trên hệ thống plugin, Strapi là một CMS linh hoạt có bảng điều khiển quản trị và API có thể mở rộng - và mọi phần đều có thể tùy chỉnh để phù hợp với bất kỳ trường hợp sử dụng nào. Strapi cũng có một hệ thống người dùng tích hợp để quản lý chi tiết những gì người quản trị và người dùng cuối có quyền truy cập.

Trong hướng dẫn này, bạn sẽ tìm hiểu cách cài đặt phiên bản cộng đồng của Strapi CMS trên máy chủ Rocky Linux 9 cùng với Nginx làm máy chủ proxy ngược.

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


  • Máy chủ chạy Rocky Linux 9 với tối thiểu 2GB RAM và 1 lõi CPU.

  • Người dùng không phải root có quyền sudo.

  • Tên miền đủ điều kiện (FQDN) như strapi.example.com.

  • Tạo chắc chắn mọi thứ đã được cập nhật.
Mã:
$ sudo dnf update
[*]
Một số gói mà hệ thống của bạn cần.
Mã:
$ sudo dnf install wget curl nano unzip yum-utils -y
Một số gói này có thể đã được cài đặt trên hệ thống của bạn.

Bước 1 - Cấu hình Tường lửa​

Bước đầu tiên là để cấu hình tường lửa. Rocky Linux sử dụng Tường lửa Firewalld. Kiểm tra trạng thái của tường lửa.
Mã:
$ sudo firewall-cmd --state
running
Tường lửa hoạt động với các vùng khác nhau và vùng công cộng là vùng mặc định mà chúng ta sẽ sử dụng. Liệt kê tất cả các dịch vụ và cổng đang hoạt động trên tường lửa.
Mã:
$ sudo firewall-cmd --permanent --list-services
Nó sẽ hiển thị thông tin sau đầu ra.
Mã:
cockpit dhcpv6-client ssh
Strapi cần có cổng HTTP và HTTPS để hoạt động. Mở chúng ra.
Mã:
$ sudo firewall-cmd --permanent --add-service=http
$ sudo firewall-cmd --permanent --add-service=https
Tải lại tường lửa để áp dụng các thay đổi.
Mã:
$ sudo firewall-cmd --reload
Liệt kê tất cả các dịch vụ một lần nữa.
Mã:
$ sudo firewall-cmd --permanent --list-services
Bạn sẽ nhận được kết quả sau.
Mã:
cockpit dhcpv6-client http https ssh

Bước 2 - Cài đặt và cấu hình PostgreSQL​

Strapi hoạt động với PostgreSQL 11 trở lên. Rocky Linux 9 mặc định đi kèm với PostgreSQL 13. Chúng tôi sẽ sử dụng PostgreSQL 15 cho hướng dẫn của mình.

Chạy lệnh sau để thêm khóa GPG của PostgreSQL.
Mã:
$ curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | sudo tee /usr/share/keyrings/postgresql-key.gpg >/dev/null
Cài đặt tệp RPM của kho lưu trữ PostgreSQL.
Mã:
$ sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm
Vô hiệu hóa PostgreSQL tích hợp module.
Mã:
$ sudo dnf -qy module disable postgresql
Bây giờ, bạn có thể cài đặt PostgreSQL bằng lệnh bên dưới.
Mã:
$ sudo dnf install -y postgresql15-server
Khởi tạo cơ sở dữ liệu.
Mã:
$ sudo /usr/pgsql-15/bin/postgresql-15-setup initdb
Kích hoạt dịch vụ PostgreSQL.
Mã:
$ sudo systemctl enable postgresql-15
Khởi động PostgreSQL dịch vụ.
Mã:
$ sudo systemctl start postgresql-15
Kiểm tra trạng thái của dịch vụ PostgreSQL.
Mã:
$ sudo systemctl status postgresql-15
? postgresql-15.service - PostgreSQL 15 database server Loaded: loaded (/usr/lib/systemd/system/postgresql-15.service; enabled; vendor preset: disabled) Active: active (running) since Wed 2023-02-01 13:21:27 UTC; 41min ago Docs: https://www.postgresql.org/docs/15/static/ Process: 53088 ExecStartPre=/usr/pgsql-15/bin/postgresql-15-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS) Main PID: 53093 (postmaster) Tasks: 7 (limit: 5727) Memory: 45.7M CPU: 1.112s CGroup: /system.slice/postgresql-15.service ??53093 /usr/pgsql-15/bin/postmaster -D /var/lib/pgsql/15/data/ ??53094 "postgres: logger " ??53095 "postgres: checkpointer " ??53096 "postgres: background writer " ??53098 "postgres: walwriter " ??53099 "postgres: autovacuum launcher " ??53100 "postgres: logical replication launcher "
Khởi chạy PostgreSQL shell.
Mã:
$ sudo -i -u postgres psql
Tạo cơ sở dữ liệu Strapi.
Mã:
postgres=# CREATE DATABASE strapidb;
Tạo người dùng Strapi và chọn mật khẩu mạnh.
Mã:
postgres-# CREATE USER strapiuser WITH PASSWORD 'Your_Password';
Thay đổi chủ sở hữu cơ sở dữ liệu thành người dùng Strapi.
Mã:
postgres-# ALTER DATABASE strapidb OWNER TO strapiuser;
Thoát khỏi shell.
Mã:
postgres-# \q
Xác minh rằng thông tin đăng nhập của bạn hoạt động.
Mã:
$ psql --username strapiuser --password --host localhost strapidb
Password:
psql (15.1)
Type "help" for help.
strapidb=>
Thoát khỏi shell bằng cách nhập \q.

Bước 3 - Cài đặt Node.js​

Rocky Linux 9 được tích hợp sẵn Node v16, phiên bản này đã lỗi thời. Chúng tôi sẽ cài đặt phiên bản LTS mới nhất của Node là v18 tại thời điểm viết hướng dẫn này.

Tải xuống trình cài đặt Node v18 từ Nodesource.
Mã:
$ curl -fsSL https://rpm.nodesource.com/setup_18.x | sudo bash -
Cài đặt Node.js.
Mã:
$ sudo dnf install nodejs -y
Xác minh Node.js phiên bản.
Mã:
$ node -v
v18.13.0

Bước 4 - Cài đặt Strapi​

Chạy lệnh sau để cài đặt Strapi.
Mã:
$ npx create-strapi-app@latest howtoforge-project
Need to install the following packages: [emailprotected]
Ok to proceed? (y) y
Nhập y để tiến hành cài đặt. Tiếp theo, bạn sẽ được yêu cầu chọn loại Cài đặt. Chọn Tùy chỉnh để tiếp tục và trả lời các câu hỏi như sau.
Mã:
? Choose your installation type Custom (manual settings)
? Choose your preferred language JavaScript
? Choose your default database client postgres
? Database name: strapidb
? Host: 127.0.0.1
? Port: 5432
? Username: strapiuser
? Password: Your_Password
? Enable SSL connection: No
Tùy thuộc vào yêu cầu của bạn, bạn có thể chọn Typescript hoặc JavaScript làm ngôn ngữ cho Strapi.

Sau khi cài đặt hoàn tất, bạn đã sẵn sàng để xây dựng dự án Strapi của mình.

Chuyển đến thư mục dự án.
Mã:
$ cd howtoforge-project
Chạy lệnh sau để xây dựng dự án, bao gồm Giao diện người dùng quản trị Strapi.
Mã:
$ NODE_ENV=production npm run build
Khởi động máy chủ Strapi bằng lệnh sau.
Mã:
$ node ~/howtoforge-project/node_modules/.bin/strapi start
Ứng dụng của bạn sẽ hiển thị trên URL . Nhưng trước tiên, hãy mở cổng trong tường lửa.
Mã:
$ sudo firewall-cmd --permanent --add-port=1337/tcp
$ sudo firewall-cmd --reload
Sau khi mở URL, bạn sẽ thấy màn hình sau.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22376%22%3E%3C/svg%3E


Nhấn Ctrl + C trong terminal để dừng máy chủ. Bạn nên xóa quy tắc tường lửa vì chúng ta không cần đến nó.
Mã:
$ sudo firewall-cmd --permanent --remove-port=1337/tcp
$ sudo firewall-cmd --reload

Bước 5 - Cài đặt và cấu hình PM2​

Thay vì khởi động máy chủ theo cách thủ công, chúng ta có thể sử dụng PM2 (Trình quản lý quy trình 2) để quản lý quy trình và tạo dịch vụ systemd cho quy trình đó.

Chuyển sang trang chủ thư mục.
Mã:
$ cd ~
Cài đặt PM2.
Mã:
$ sudo npm install pm2@latest -g
Tạo và mở tệp cấu hình PM2 cho chỉnh sửa.
Mã:
$ sudo nano ecosystem.config.js
Dán nội dung sau vào tệp. Đảm bảo nhập đúng tên thư mục cùng với thông tin đăng nhập Postgres.
Mã:
module.exports = { apps: [ { name: 'strapi', cwd: '/home/navjot/howtoforge-project', script: 'npm', args: 'start', env: { NODE_ENV: 'production', DATABASE_HOST: 'localhost', DATABASE_PORT: '5432', DATABASE_NAME: 'strapidb', DATABASE_USERNAME: 'strapiuser', DATABASE_PASSWORD: 'Your_Password', }, }, ],
};
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc sau khi hoàn tất.

Chạy phiên bản Strapi của bạn ở chế độ nền bằng PM2.
Mã:
$ pm2 start ecosystem.config.js
Bạn sẽ nhận được kết quả đầu ra sau.
Mã:
-------------
__/\\\\\\\\\\\\\____/\\\\____________/\\\\____/\\\\\\\\\_____ _\/\\\/////////\\\_\/\\\\\\________/\\\\\\__/\\\///////\\\___ _\/\\\_______\/\\\_\/\\\//\\\____/\\\//\\\_\///______\//\\\__ _\/\\\\\\\\\\\\\/__\/\\\\///\\\/\\\/_\/\\\___________/\\\/___ _\/\\\/////////____\/\\\__\///\\\/___\/\\\________/\\\//_____ _\/\\\_____________\/\\\____\///_____\/\\\_____/\\\//________ _\/\\\_____________\/\\\_____________\/\\\___/\\\/___________ _\/\\\_____________\/\\\_____________\/\\\__/\\\\\\\\\\\\\\\_ _\///______________\///______________\///__\///////////////__ Runtime Edition PM2 is a Production Process Manager for Node.js applications with a built-in Load Balancer. Start and Daemonize any application: $ pm2 start app.js Load Balance 4 instances of api.js: $ pm2 start api.js -i 4 Monitor in production: $ pm2 monitor Make pm2 auto-boot at server restart: $ pm2 startup To go further checkout: http://pm2.io/ -------------
[PM2] Spawning PM2 daemon with pm2_home=/home/navjot/.pm2
[PM2] PM2 Successfully daemonized
[PM2][WARN] Applications strapi not running, starting...
[PM2] App [strapi] launched (1 instances)
????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
? id ? name ? namespace ? version ? mode ? pid ? uptime ? ? ? status ? cpu ? mem ? user ? watching ?
????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
? 0 ? strapi ? default ? N/A ? fork ? N/A ? 0s ? 0 ? online ? 0% ? 0b ? navjot ? disabled ?
????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
Các ứng dụng chạy trên PM2 sẽ tự động khởi động lại nếu chúng bị sập hoặc bị tắt.

Tạo một tập lệnh systemd khởi động bằng lệnh sau.
Mã:
$ pm2 startup
Bạn sẽ nhận được thông báo sau đầu ra.
Mã:
[PM2] Init System found: systemd
[PM2] To setup the Startup Script, copy/paste the following command:
sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u navjot --hp /home/navjot
Sao chép lệnh từ đầu ra ở trên và chạy nó.
Mã:
$ sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u navjot --hp /home/navjot
Bạn sẽ nhận được thông tin sau đầu ra.
Mã:
-------------
__/\\\\\\\\\\\\\____/\\\\____________/\\\\____/\\\\\\\\\_____ _\/\\\/////////\\\_\/\\\\\\________/\\\\\\__/\\\///////\\\___ _\/\\\_______\/\\\_\/\\\//\\\____/\\\//\\\_\///______\//\\\__ _\/\\\\\\\\\\\\\/__\/\\\\///\\\/\\\/_\/\\\___________/\\\/___ _\/\\\/////////____\/\\\__\///\\\/___\/\\\________/\\\//_____ _\/\\\_____________\/\\\____\///_____\/\\\_____/\\\//________ _\/\\\_____________\/\\\_____________\/\\\___/\\\/___________ _\/\\\_____________\/\\\_____________\/\\\__/\\\\\\\\\\\\\\\_ _\///______________\///______________\///__\///////////////__ Runtime Edition PM2 is a Production Process Manager for Node.js applications with a built-in Load Balancer. Start and Daemonize any application: $ pm2 start app.js Load Balance 4 instances of api.js: $ pm2 start api.js -i 4 Monitor in production: $ pm2 monitor Make pm2 auto-boot at server restart: $ pm2 startup To go further checkout: http://pm2.io/ -------------
[PM2] Init System found: systemd
Platform systemd
Template
[Unit]
Description=PM2 process manager
Documentation=https://pm2.keymetrics.io/
After=network.target
[Service]
Type=forking
User=navjot
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
Environment=PATH=/home/navjot/.local/bin:/home/navjot/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/usr/bin:/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
Environment=PM2_HOME=/home/navjot/.pm2
PIDFile=/home/navjot/.pm2/pm2.pid
Restart=on-failure
ExecStart=/usr/lib/node_modules/pm2/bin/pm2 resurrect
ExecReload=/usr/lib/node_modules/pm2/bin/pm2 reload all
ExecStop=/usr/lib/node_modules/pm2/bin/pm2 kill
[Install]
WantedBy=multi-user.target
Target path
/etc/systemd/system/pm2-navjot.service
Command list
[ 'systemctl enable pm2-navjot' ]
[PM2] Writing init configuration in /etc/systemd/system/pm2-navjot.service
[PM2] Making script booting at startup...
[PM2] [-] Executing: systemctl enable pm2-navjot...
Created symlink /etc/systemd/system/multi-user.target.wants/pm2-navjot.service → /etc/systemd/system/pm2-navjot.service.
[PM2] [v] Command successfully executed.
+---------------------------------------+
[PM2] Freeze a process list on reboot via:
$ pm2 save
[PM2] Remove init script via:
$ pm2 unstartup systemd
Lưu danh sách quy trình PM2.
Mã:
$ pm2 save
[PM2] Saving current process list...
[PM2] Successfully saved in /home/navjot/.pm2/dump.pm2
Dịch vụ Strapi của bạn hiện đang chạy ở chế độ nền trong chế độ sản xuất.

Bước 6 - Cài đặt Nginx​

Rocky Linux 9 được tích hợp sẵn phiên bản Nginx cũ hơn. Bạn cần tải xuống kho lưu trữ Nginx chính thức để cài đặt phiên bản mới nhất.

Tạo và mở tệp /etc/yum.repos.d/nginx.repo để tạo kho lưu trữ Nginx chính thức.
Mã:
$ sudo nano /etc/yum.repos.d/nginx.repo
Dán mã sau vào nó.
Mã:
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Cài đặt máy chủ Nginx.
Mã:
$ sudo dnf install -y nginx
Xác minh cài đặt.
Mã:
$ nginx -v
nginx version: nginx/1.22.1
Bật và khởi động máy chủ Nginx.
Mã:
$ sudo systemctl enable nginx --now
Kiểm tra trạng thái của máy chủ.
Mã:
$ sudo systemctl status nginx
? nginx.service - nginx - high performance web server Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled) Active: active (running) since Wed 2023-02-01 15:01:29 UTC; 7s ago Docs: http://nginx.org/en/docs/ Process: 4637 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/SUCCESS) Main PID: 4638 (nginx) Tasks: 2 (limit: 10884) Memory: 1.9M CPU: 8ms CGroup: /system.slice/nginx.service ??4638 "nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf" ??4639 "nginx: worker process"

Bước 7 - Cài đặt SSL​

Chúng ta cần cài đặt Certbot để tạo chứng chỉ SSL.

Chúng ta sẽ sử dụng trình cài đặt gói Snapd cho việc đó. Vì Rocky Linux không đi kèm với nó, hãy cài đặt trình cài đặt Snapd. Yêu cầu kho lưu trữ EPEL để hoạt động.
Mã:
$ sudo dnf install -y epel-release
Cài đặt Snapd.
Mã:
$ sudo dnf install -y snapd
Bật và khởi động Snap dịch vụ.
Mã:
$ sudo systemctl enable snapd --now
Cài đặt gói lõi Snap và đảm bảo rằng phiên bản Snapd của bạn được cập nhật.
Mã:
$ sudo snap install core && sudo snap refresh core
Tạo các liên kết cần thiết để Snapd làm việc.
Mã:
$ sudo ln -s /var/lib/snapd/snap /snap
$ echo 'export PATH=$PATH:/var/lib/snapd/snap/bin' | sudo tee -a /etc/profile.d/snapd.sh
Phát hành lệnh sau để cài đặt Certbot.
Mã:
$ sudo snap install --classic certbot
Sử dụng lệnh sau để đảm bảo rằng lệnh Certbot có thể chạy được bằng cách tạo liên kết tượng trưng đến /usr/bin thư mục.
Mã:
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
Xác minh cài đặt.
Mã:
$ certbot --version
certbot 2.2.0
Chạy lệnh sau để tạo Chứng chỉ SSL.
Mã:
$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [emailprotected] -d strapi.example.com
Lệnh trên sẽ tải xuống chứng chỉ vào /etc/letsencrypt/live/strapi.example.com thư mục trên máy chủ của bạn.

Tạo chứng chỉ nhóm Diffie-Hellman.
Mã:
$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096
Để kiểm tra xem việc gia hạn SSL có hoạt động tốt không, hãy chạy thử quá trình.
Mã:
$ sudo certbot renew --dry-run
Nếu bạn không thấy lỗi nào, bạn đã hoàn tất. Chứng chỉ của bạn sẽ tự động gia hạn.

Bước 8 - Cấu hình Nginx​

Mở tệp /etc/nginx/nginx.conf để chỉnh sửa.
Mã:
$ sudo nano /etc/nginx/nginx.conf
Thêm dòng sau vào trước dòng include /etc/nginx/conf.d/*.conf;.
Mã:
server_names_hash_bucket_size 64;
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Tạo và mở tệp /etc/nginx/conf.d/strapi.conf để chỉnh sửa.
Mã:
$ sudo nano /etc/nginx/conf.d/strapi.conf
Dán mã sau vào đó.
Mã:
server { # Redirect any http requests to https listen 80; listen [::]:80; server_name strapi.example.com; return 301 https://$host$request_uri;
}
server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name strapi.example.com; access_log /var/log/nginx/strapi.access.log; error_log /var/log/nginx/strapi.error.log; # TLS configuration ssl_certificate /etc/letsencrypt/live/strapi.example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/strapi.example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/strapi.example.com/chain.pem; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384'; ssl_prefer_server_ciphers on; ssl_session_cache shared:SSL:50m; ssl_session_timeout 1d; # OCSP Stapling --- # fetch OCSP records from URL in ssl_certificate and cache them ssl_stapling on; ssl_stapling_verify on; ssl_dhparam /etc/ssl/certs/dhparam.pem; location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Host $http_host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://127.0.0.1:1337; }
}
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc sau khi hoàn tất.

Xác minh cú pháp tệp cấu hình Nginx.
Mã:
$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Khởi động lại Nginx dịch vụ.
Mã:
$ sudo systemctl restart nginx
Bây giờ bạn có thể truy cập Strapi CMS qua URL https://strapi.example.com. Bạn sẽ thấy trang sau cho thấy Strapi đang chạy ở chế độ sản xuất.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22712%22%20height=%22370%22%3E%3C/svg%3E


Truy cập URL https://strapi.example.com/admin để tạo người dùng quản trị viên.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22559%22%20height=%22750%22%3E%3C/svg%3E


Điền thông tin quản trị của bạn và nhấp vào nút Bắt đầu để chuyển đến màn hình bảng điều khiển quản trị.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22417%22%3E%3C/svg%3E


Từ đây, bạn có thể bắt đầu tạo nội dung trên Strapi.

Bước 9 - Nâng cấp Strapi​

Bước đầu tiên trong quá trình nâng cấp Strapi là dừng máy chủ.
Mã:
$ cd ~
$ pm2 stop ecosystem.config.js
Chuyển sang thư mục dự án và mở tệp package.json cho chỉnh sửa.
Mã:
$ cd howtoforge-project
$ nano package.json
Nâng cấp tất cả các số phiên bản gói Strapi lên phiên bản Strapi ổn định mới nhất. Bạn có thể tải phiên bản mới nhất có sẵn từ Trang phát hành GitHub của Strapi.
Mã:
"devDependencies": {}, "dependencies": { "@strapi/strapi": "4.5.5", "@strapi/plugin-users-permissions": "4.5.5", "@strapi/plugin-i18n": "4.5.5", "pg": "8.6.0" },
Tại đây, bạn cần thay đổi 4.5.5 thành phiên bản ổn định mới nhất. Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc sau khi hoàn tất.

Cài đặt phiên bản nâng cấp.
Mã:
$ npm install
Xây dựng lại bảng điều khiển Quản trị.
Mã:
$ NODE_ENV=production npm run build
Khởi động máy chủ một lần nữa.
Mã:
$ cd ~
$ pm2 start ecosystem.config.js
Cài đặt Strapi của bạn hiện đã được nâng cấp và đang chạy.

Kết luận​

Đây là kết thúc hướng dẫn của chúng tôi về cách cài đặt Strapi CMS trên máy chủ Rocky Linux 9 cùng với Nginx làm máy chủ proxy ngược. Nếu bạn có bất kỳ câu hỏi nào, hãy đăng chúng trong phần bình luận bên dưới.
 
Back
Bên trên