Cài đặt Init Uploader trên Ubuntu 24.04 (LEMP: Nginx + PHP)

Hướng dẫn này giúp bạn cài đặt Init Uploader tại cdn.example.com với Nginx và PHP-FPM 8.3, hỗ trợ upload dung lượng lớn, thời gian chờ dài, và cài SSL bằng Certbot.

Cài đặt Init Uploader trên Ubuntu 24.04 (LEMP: Nginx + PHP)

1) Cài Nginx và PHP 8.3

sudo apt update && sudo apt upgrade -y
sudo apt install nginx -y

# Cài PHP 8.3 và các extension cần thiết (GD hoặc Imagick, Fileinfo, cURL, Zip, XML, MBString)
sudo apt install php8.3-fpm php8.3-cli php8.3-common \
  php8.3-gd php-imagick php8.3-mbstring php8.3-xml php8.3-zip php8.3-curl php8.3-fileinfo unzip -y

php -v

2) Tạo thư mục cài đặt

sudo mkdir -p /var/www/init-uploader
sudo chown -R $USER:$USER /var/www/init-uploader

3) Tải và giải nén Init Uploader (không cần SFTP)

Sử dụng link tải chính thức để cài trực tiếp trên server.

cd /var/www/init-uploader
sudo wget -O init-uploader.zip "https://inithtml.com/releases/tools/init-uploader.zip?v=1.1.0"
sudo unzip -o init-uploader.zip

Cấu trúc sau khi giải nén:

/var/www/init-uploader/
├─ init-uploader.php
└─ uploads/

4) Thiết lập cấu hình Init Uploader (mục CONFIGURATION)

Mở file init-uploader.php và chỉnh thông tin phù hợp domain và bảo mật.

sudo nano /var/www/init-uploader/init-uploader.php

Cấu hình gợi ý cho bản demo:

// Xác thực
define('API_KEY',          'supersecretapikey123');
define('SECRET_KEY',       'supersecrethmackey456');
define('USE_HMAC_AUTH',    false);
define('HMAC_TIME_WINDOW', 300);

// Đường dẫn
define('UPLOAD_DIR',       __DIR__ . '/uploads');
define('BASE_URL',         'https://cdn.example.com');

// Giới hạn upload
define('MAX_FILE_SIZE',    200 * 1024 * 1024); // 200MB
define('ALLOWED_EXTENSIONS', ['jpg','jpeg','png','gif','webp']);

// Kiểm tra định dạng ảnh
define('STRICT_IMAGE_VALIDATION', false);

// Hệ thống
define('ENABLE_LOGGING', true);
define('REQUIRE_HTTPS',  true);

5) Cấp quyền cho web user

Đặt quyền sở hữu cho www-data để PHP-FPM có thể ghi và đọc dữ liệu.

sudo chown -R www-data:www-data /var/www/init-uploader
sudo find /var/www/init-uploader -type d -exec chmod 755 {} \;
sudo find /var/www/init-uploader -type f -exec chmod 644 {} \;

6) Điều chỉnh PHP 8.3 cho upload lớn

sudo nano /etc/php/8.3/fpm/php.ini

Chỉnh các giá trị sau:

upload_max_filesize  = 512M
post_max_size        = 512M
max_execution_time   = 600
max_input_time       = 600
memory_limit         = 1024M
sudo systemctl restart php8.3-fpm

7) Cấu hình Nginx cho cdn.example.com

sudo nano /etc/nginx/sites-available/cdn.example.com
server {
    listen 80;
    server_name cdn.example.com;

    root /var/www/init-uploader;
    index init-uploader.php index.php;

    # Giới hạn và timeout thoáng cho upload lớn
    client_max_body_size 512M;
    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 65;

    access_log /var/log/nginx/init-uploader.access.log;
    error_log  /var/log/nginx/init-uploader.error.log;

    location / {
        try_files $uri $uri/ /init-uploader.php?$query_string;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.3-fpm.sock;
        fastcgi_read_timeout 600;
    }

    location ~ /\.ht {
        deny all;
    }
}
sudo ln -s /etc/nginx/sites-available/cdn.example.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

8) Cài chứng chỉ HTTPS bằng Certbot

sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d cdn.example.com
sudo systemctl enable certbot.timer
sudo systemctl start certbot.timer

9) Kiểm tra hoạt động

Truy cập https://cdn.example.com. Nếu hiển thị JSON thông báo “No files uploaded” là server đã hoạt động.

Test upload bằng API key:

curl -X POST "https://cdn.example.com" \
  -H "X-API-Key: supersecretapikey123" \
  -F "file=@/path/to/test.jpg" \
  -F "path=manga/demo"

10) Gợi ý bảo trì

  • Xoá hoặc xoay log /var/www/init-uploader/upload.log định kỳ.
  • Giữ quyền thư mục uploads/ cho www-data để PHP có thể ghi.
  • Bật USE_HMAC_AUTH = true nếu cần xác thực nâng cao cho môi trường production.
  • Khuyến nghị đặt CDN (Cloudflare, BunnyCDN, v.v.) trước thư mục /uploads để tối ưu tốc độ.

Bình luận


  • Không có bình luận.

Init Toolbox

Nhấn Ctrl + \ trên máy tính, hoặc vuốt sang trái ở bất kỳ đâu trên mobile.

Đăng nhập





Đang tải...