Triển khai EzyPlatform trên Ubuntu
Cập nhật lúc 1750902725000Bổ sung ssh public keys
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.
Tham khảo: How To Set Up a Firewall with UFW on Ubuntu 20.04
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.
3005
cho socket2208
nếu bạn chỉ sử dụng ws.2812
nếu bạn sử dụng wss.2611
nế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
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ụ
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";
}
Site admin, ví dụ admin.
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;
}
}
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
}
server { listen 80; server_name admin.tvd12.com; } server { if ($host = admin.tvd12.com) { return 301 https://$host$request_uri; } # managed by Certbot server_name admin.tvd12.com; listen 80; return 404; # managed by Certbot }
Nó bị thừa đoạn:
server { listen 80; server_name admin.tvd12.com; }
Hãy xoá đoạn này đi và 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
:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64
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/0.6.5/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"
EZHTTP READY
và 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.