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