Triển khai EzyPlatform trên Ubuntu
Cập nhật lúc 1769779898000EzyPlatform có thể triển khai trên các hệ điều hành khác nhau, tuy nhiên tốt nhất và là các hệ điều hành linux như ubuntu hay centos để đảm bảo khả năng khởi động lại một cách tự động. Ở đây tôi sẽ sử dụng hệ điều hành ubuntu .
Cấu hình tối thiểu
- 1 core CPU.
- 2GB RAM.
Cấu hình đề xuất
- 2 core CPU
- 4GB RAM.
Truy cập vào máy chủ
Ví dụ bạn có máy chủ với địa chỉ ip v4 là
102.74.182.23 đang mở cổng ssh là 22, có tài khoản truy cập là root và mật khẩu là 12345678. Bạn có thể dùng lệnh sau để truy cập vào máy chủ:ssh root@102.74.182.23
Nhấn
Enter sau đó bạn nhập mật khẩu 12345678 là truy cập được.Bổ sung ssh public keys
Lần nào cũng phải ruy cập qua mật khẩu khá rườm rà nên bạn có thể bổ sung ssh public keys để đăng nhập cho tiện.
mkdir -p ~/.ssh nano ~/.ssh/authorized_keys # add key và close
Thay đổi timezone
timedatectl list-timezones | grep <keyword> sudo timedatectl set-timezone your_time_zone timedatectl
Cài đặt tường lửa
Lưu ý chỉ cần cài cho những loại server hoặc vps mà nhà cung cấp chưa có dịch vụ tường lửa.
sudo ufw default deny incoming sudo ufw default allow outgoing sudo ufw allow ssh sudo ufw enable sudo ufw allow http sudo ufw allow https
Nếu ứng dụng của bạn có sử dụng socket và websocket, bạn sẽ cần mở thêm các port.
-
3005cho socket -
2208nếu bạn chỉ sử dụng ws. -
2812nếu bạn sử dụng wss. -
2611nếu bạn sử dụng udp.
sudo ufw allow 3005 sudo ufw allow 2208 sudo ufw allow 2812 sudo ufw allow 2611/udp
Cài đặt mysql
Tham khảo: How To Install MySQL on Ubuntu 20.04 .
sudo apt update sudo apt install mysql-server sudo systemctl start mysql.service
Cấu hình mysql
sudo mysql ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '<new password>'; exit mysql -u root -p ALTER USER 'root'@'localhost' IDENTIFIED WITH auth_socket; exit sudo mysql_secure_installation
Bạn có thể sử dụng công cụ này để tạo mật khẩu ngẫu nhiên.
Tạo database
CREATE SCHEMA `new_schema` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin ;
Tạo user mới, ví dụ:
CREATE USER '<username>'@'localhost' IDENTIFIED BY '<password>'; GRANT ALL PRIVILEGES ON new_schema . * TO '<username>'@'localhost';
Cài đặt nginx
Tham khảo: How To Install Nginx on Ubuntu 20.04
sudo apt update sudo apt install nginx systemctl status nginx
Khởi động lại nginx:
sudo systemctl stop nginx sudo systemctl start nginx sudo systemctl restart nginx sudo systemctl reload nginx
Xoá file default tại 2 thư mục
/etc/nginx/sites-enabled và /etc/nginx/sites-available.Di chuyển vào thư mục
/etc/nginx/sites-enabled và tạo lần lượt 2 file cho site public và site admin.Site public, ví dụ <host name>:
server {
server_name <host name>;
location / {
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_pass "http://127.0.0.1:8080";
client_max_body_size 50M;
}
}
Nếu bạn muốn thêm
Cache-Control header cho web bạn có thể bổ sung:
location ~* \.(css|js|woff|woff2|ttf|gif|jpg|jpeg|png|svg|webp)$ {
expires 1h;
add_header Cache-Control "public, max-age=3600";
proxy_pass "http://127.0.0.1:8080";
}
Nếu bạn muốn chỉ định trình duyệt cache cả các tập tin âm thanh và video, bạn có thể bổ sung:
location ~* .(mp3|mp4|ogg)$ {
expires 24h;
add_header Cache-Control "public, max-age=86400";
add_header Accept-Ranges bytes;
proxy_pass "http://127.0.0.1:8080";
}
Nêu website của bạn cho phép người dùng upload, bạn có thể bổ sung:
location /api/v1/media/add {
proxy_pass http://127.0.0.1:8080;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_request_buffering off;
proxy_buffering off;
client_max_body_size 100M;
}
Site admin, ví dụ admin.<host name>:
server {
server_name admin.<host name>;
location / {
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_pass "http://127.0.0.1:9090";
client_max_body_size 100M;
}
location /api/v1/media/add {
proxy_pass http://127.0.0.1:9090;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_request_buffering off;
proxy_buffering off;
client_max_body_size 100M;
}
}
Nếu bạn muốn thêm
Cache-Control header cho admin bạn có thể bổ sung:
location ~* \.(css|js|woff|woff2|ttf|gif|jpg|jpeg|png|webp)$ {
expires 24h;
proxy_pass "http://127.0.0.1:9090";
}
Kiểm tra cấu hình nginx:
sudo nginx -t, nếu hiển thị thế này thì ok.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
sudo systemctl reload nginx
Cài đặt certbot
sudo apt install certbot python3-certbot-nginx sudo certbot
Sau khi sử dụng certbot xong có thể file cấu hình sẽ bị thay đổi thế này:
server {
server_name admin.tvd12.com;
location / {
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $http_host;
proxy_pass "http://127.0.0.1:9090";
client_max_body_size 100M;
}
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/tvd12.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/tvd12.com/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
Bây giờ bạn có thể khởi động lại nginx:
sudo systemctl reload nginx.Cài đặt JDK 8
Tham khảo: How To Install Java with Apt on Ubuntu 20.04.
sudo apt update java -version
Chạy 2 câu lệnh này sẽ hiển thị ra danh sách cái cài đặt của java.
apt install default-jre apt install openjdk-11-jre-headless apt install openjdk-8-jre-headless apt install openjdk-9-jre-headless
Chọn apt install
openjdk-8-jre-headless.Cài đặt
JAVA_HOME, sử dụng vim để thêm biến vào .bash_profile. Bạn có thể mở file này bằng lệnh:vi ~/.bash_profile
Sau đó bạn nhấn phím
i để chuyển sang chế độ sửa, bạn dán dòng sau vào file:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64
Tiếp theo bạn nhấn
Esc, nhấn Shift + : sau đó nhấn tiếp phím x và Enter để thoát trình soạn thảo vim.Sau đó chạy:
source ~/.bash_profile để áp dụng.Cài đặt ezyplatform
Bạn có thể tải bản mới nhất từ Home về sau đó sử dụng công cụ để copy lên server, hoặc là sử dụng
wget và inspect nút download tại Home để lấy bản mới nhất, ví dụ:wget https://ezyplatform.com/api/v1/platforms/1.0.4/download && mv download ezyplatform.zip
Sau đó unzip file:
unzip ezyplatform.zip.Tìm đến folder
ezyplatform/settings và thay đổi file setup.properties (ví dụ: nano settings/setup.properties) với các thông tin cơ sở dữ liệu bạn đã tạo trước đó, ví dụ:datasource.jdbc_url=jdbc:mysql://localhost:3306/<databaseName> datasource.driver_class_name=com.mysql.cj.jdbc.Driver datasource.username=<username> datasource.password=<password> tables.create_manually=false
Bắt đầu hãy start bằng chế độ
console trước để xem có lỗi gì không:
bash cli.sh "console admin"
Nếu bạn thấy ở console in ra
EZHTTP READYvà không có exception gì nghĩa là việc khởi động đã thành công.Từ đây hãy giả sử website tôi đang cần tạo là
tvd12.com hãy mở trình duyệt và mở lên: https://admin.tvd12.com/setup-admin bạn sẽ thấy màn hình để setup:
Hãy cài đặt các thông tin cần thiết và submit, sau đó màn hình home sẽ hiển thị ra:

Hãy đảm bảo bạn đã tắt hết các website của ezyplatform ở
localhost đang chạy đi và xoá bỏ toàn bộ cookie.Di chuyển vào
Dashboard > Admin và cập nhật Admin URL và Admin Properties, ví dụ:
https://admin.tvd12.com
cors.allowed_origins=https://admin.tvd12.com cors.enable=true server.host=0.0.0.0 server.multipart.file_size_threshold=100MB server.multipart.max_file_size=100MB server.multipart.max_request_size=100MB server.port=9090
Bây giờ hãy tắt chế độ console nhấn
Ctrl+C đi và bạn sẽ start bằng chế độ background:
bash cli.sh "start admin" ; tail -f logs/admin-server.log
Đợi khoảng 10, 15 giây cho server khởi động xong, trở lại trình duyệt, chọn vào
Dashboard > Web. Hãy cập nhật Web URL và Web properties, ví dụ:
https://tvd12.com
cors.allowed_origins=https://tvd12.com,https://admin.tvd12.com cors.enable=true management.enable=true management.port=18080 management.uris_expose=true resources.enable=true resources.locations=static resources.upload.enable=true server.allow_override_uri=true server.host=0.0.0.0 server.multipart.file_size_threshold=100MB server.multipart.max_file_size=100MB server.multipart.max_request_size=100MB server.port=8080
Sau đó nhấn vào nút start. Đợi 10, 15 giây và bạn có thể truy cập:
https://tvd12.com.Cài đặt SSL cho socket
Nếu bạn không sử dụng đến socket hoặc bạn đang ở localhost, bạn có thể bỏ qua bước này.
- Bạn có thể xem hướng dẫn tạo file keystore tại đây.
- Sau khi đã có file keystore, bạn có thể upload và set mật khẩu tại:
Dashboard > Socket > SSL configuration.
Vậy là bạn đã triển khai ezyplatform thành công trên server ubuntu, tiếp theo bạn có thể cài đặt các theme và plugin theo ý thích của bạn.
Đối với Java phiên bản từ 17 trở lên
Bạn sẽ cần tạo tập tin
vm-options.txt có nội dung như sau:--add-opens java.base/java.lang=ALL-UNNAMED
Vào các thư mục
admin, socket, web bên trong ezyplatform, sau đó khởi động ezyplatform bằng lệnh:
bash cli.sh "start admin" ; tail -f logs/admin-server.log
Nếu ezyplatform không khởi động được, bạn có thể chạy lệnh:
bash cli.sh "console admin"
Để có thông tin lỗi.