Cấu hình để upload file dung lượng lớn lên NextCloud

Giới thiệu

Sau khi cài đặt thành công NextCloud, khi chúng ta thử upload file lên server thì với file nặng hơn 1M sẽ xảy ra lỗi

Nguyên nhân

Do Web Server NGINX và PHP giới hạn kích thước file upload lên server. Ngoài ra, lỗi này có thể phát sinh trong một số trường hợp như
→ NextCloud không upload được file nặng quá 1Mb
→ phpMyAdmin xảy ra lỗi 413 Request Entity Too Large khi upload database
→ Wordpress upload theme nặng cũng không được
→ ...và nhiều trường hợp khác

Xử lý

Cấu hình chung cho cả server

Chúng ta sẽ config cả ở trên NGINX và PHP-FPM.

→ Với nginx
SSH vào server tìm đến file cấu hình nginx với đường dẫn

sudo nano /etc/nginx/nginx.conf

Sau đó thêm chỉ thị bên dưới vào block http {…}, server {…} hoặc location {…} tùy bạn.

client_max_body_size 20M;

Cấu hình trên mình cho phép dung lượng file up lên tối đa là 20M, thông thường theme hoặc plugin wordpress chỉ khoảng 10M hoặc hơn một chút là kịch kim rồi.
Tùy mục đích mà bạn có thể thay đổi giá trị client_max_body_size trong đó

→ Với PHP-FPM
Mỗi hệ điều hành khác nhau thì đường dẫn file cấu hình PHP khác nhau một chút. Với mình là Ubuntu 20.04LTS, phiên bản PHP 7.4 thì đường dẫn là ở "/etc/php/7.4/fpm/"

nano /etc/php/7.4/fpm/php.ini

Bạn sửa lại giá trị

upload_max_filesize = 20M
post_max_size = 20M

Lưa lại thay đổi rồi khởi động lại nginx và php-fpm

#khởi động lại nginx
sudo systemctl restart nginx
#khởi động lại php-fpm
sudo systemctl restart php7.4-fpm

Kiểm tra lại với lệnh

sudo -u www-data php7.4 -i | grep upload_max_filesize
#Trả về như dưới đây là OK
upload_max_filesize => 20M => 20M

Cấu hình Nginx cho NextCloud

Với NextCloud thì chúng ta dùng làm cloud server, do vậy không thể để file upload tối đa có 20M được. Cá nhân mình thì để hẳn 16G, cũng có người dùng chứa film Blueray ...thì cần cao hơn nữa.
Để cấu hình riêng chúng ta sửa file cấu hình trong "/etc/nginx/sites-available/cloud.local" như ở bài trước
Mở file để sửa

sudo nano /etc/nginx/sites-available/cloud.local

Chèn thêm đoạn này vào sau "server_name cloud.local;"

client_max_body_size 16G;

Kiểm tra file cấu hình và khởi động lại Nginx

sudo nginx -t
sudo systemctl restart nginx

Kết luận

Vậy là đã cấu hình xong. Bạn có thể truy cập vào trang Cloud của mình và thử upload file có dung lượng cao để kiểm tra kết quả. Nếu có khó khăn hay có câu hỏi gì hãy đừng ngại ngần mà viết comment ở phần bên dưới nhé.

Tham khảo thêm

Cài đặt Ubuntu server 20.04 LTS
Hướng dẫn cài đặt LAMP(Linux, Apache, MariaDB, PHP) trên Ubuntu server 20.04
Hướng dẫn cài đặt Nginx trên Ubuntu Server 20.04
Cài đặt NextCloud lên Ubuntu Server