Hướng dẫn cài đặt Nextcloud trên CentOS 7
Cài đặt Nextcloud trên CentOS 7 – Nextcloud là một trong những ứng dụng đồng bộ và chia sẻ tệp tin mã nguồn mở miễn phí phổ biến nhất hiện nay. Bạn có thể sử dụng nó để lưu trữ các tệp tin cá nhân, danh bạ, hình ảnh, âm nhạc …. và chia sẻ chúng với bạn bè của bạn bất cứ lúc nào.
Trong bài viết này TENTEN sẽ hướng dẫn các bạn cấu hình và cài đặt Nextcloud trên CentOS 7
Cài đặt Nextcloud trên CentOS 7
1.Yêu cầu
- CentOS 7
- RAM từ 1 GB trở lên
- Disk từ 10 GB trở lên
- CPU từ 1 Core trở lên
- PHP 7
2. Cài đặt Nextcloud trên CentOS 7
2.1. Bước 1: Cài đặt Webserver
Nextcloud được viết bằng ngôn ngữ PHP vì vậy để có thể chạy Nextcloud các bạn cần cài đặt Webserver trên VPS của mình. Các bạn có thể lựa chọn LAMP (Apache – MariaDB – PHP) hoặc LEMP (Nginx – MariaDB – PHP)
- Hướng dẫn cách cài đặt LEMP trên Centos 7
- Hướng dẫn cài đặt LAMP trên CentOS 7
2.2. Bước 2: Tạo Database
Sau khi hoàn tất cài đặt Webserver với các thành phần cần thiết các bạn tiến hành tạo database cho Nextcloud bằng cách chạy các lệnh dưới đây
mysql -u root create database nextcloud_db; create user 'nextcloud_user'@'localhost' identified BY 'Mật khẩu MYSQL'; grant all privileges on nextcloud_db.* to nextcloud_user@localhost; flush privileges; exit
Trong đó:
- nextcloud_db : Tên database (Database name) muốn tạo, các bạn có thể thay bằng tên tuỳ ý.
- nextcloud_user : User Mysql muốn tạo, các bạn có thể thay bằng tên tuỳ ý.
- Mật khẩu MYSQL : Mật khẩu Mysql, các bạn có thể thay bằng mật khẩu tuỳ ý.
2.3. Bước 3: Tạo Virtual host
Tạo Virtual host với tên miền bạn muốn sử dụng để chạy Nextcloud
- Đối với Nginx: Tạo file /etc/nginx/conf.d/nextcloud.conf với nội dung sau
listen 80;
#listen [::]:80 ;
server_name www.nextcloud.tenten.vn nextcloud.tenten.vn;
# Add headers to serve security related headers
add_header X-Download-Options "noopen" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Permitted-Cross-Domain-Policies "none" always;
add_header X-Robots-Tag "none" always;
# Remove X-Powered-By, which is an information leak
fastcgi_hide_header X-Powered-By;
# Path to the root of your installation
root /home/nextcloud.tenten.vn/public_html/;
location = /.well-known/carddav {
return 301 $scheme://$host:$server_port/remote.php/dav;
}
location = /.well-known/caldav {
return 301 $scheme://$host:$server_port/remote.php/dav;
}
# set max upload size
client_max_body_size 512M;
fastcgi_buffers 64 4K;
# Enable gzip but do not remove ETag headers
gzip on;
gzip_vary on;
gzip_comp_level 4;
gzip_min_length 256;
gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;
gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;
location / {
rewrite ^ /index.php;
}
location ~ ^\/(?:build|tests|config|lib|3rdparty|templates|data)\/ {
deny all;
}
location ~ ^\/(?:\.|autotest|occ|issue|indie|db_|console) {
deny all;
}
location ~ ^\/(?:index|remote|public|cron|core\/ajax\/update|status|ocs\/v[12]|updater\/.+|oc[ms]-provider\/.+)\.php(?:$|\/) {
fastcgi_split_path_info ^(.+?\.php)(\/.*|)$;
set $path_info $fastcgi_path_info;
try_files $fastcgi_script_name =404;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $path_info;
#fastcgi_param HTTPS on;
# Avoid sending the security headers twice
fastcgi_param modHeadersAvailable true;
# Enable pretty urls
fastcgi_param front_controller_active true;
fastcgi_pass unix:/var/run/php-fpm.sock;
fastcgi_intercept_errors on;
fastcgi_request_buffering off;
}
location ~ ^\/(?:updater|oc[ms]-provider)(?:$|\/) {
try_files $uri/ =404;
index index.php;
}
# Adding the cache control header for js, css and map files
location ~ \.(?:css|js|woff2?|svg|gif|map)$ {
try_files $uri /index.php$request_uri;
add_header Cache-Control "public, max-age=31536000";
add_header Referrer-Policy "no-referrer" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-Download-Options "noopen" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Permitted-Cross-Domain-Policies "none" always;
add_header X-Robots-Tag "none" always;
add_header X-XSS-Protection "1; mode=block" always;
access_log off;
}
location ~ \.(?:png|html|ttf|ico|jpg|jpeg|bcmap)$ {
try_files $uri /index.php$request_uri;
access_log off;
}
}
- Đối với Apache: Tạo file /etc/httpd/conf.d/nextcloud.conf với nội dung sau
<VirtualHost *:80> ServerAdmin admin@yourdomain.com DocumentRoot /home/nextcloud.tenten.vn/public_html ServerName nextcloud.tenten.vn ServerAlias www.nextcloud.tenten.vn <Directory /home/nextcloud.tenten.vn/public_html> Options +FollowSymlinks AllowOverride All <IfModule mod_dav.c> Dav off </IfModule> SetEnv HOME /home/nextcloud.tenten.vn/public_html SetEnv HTTP_HOME /home/nextcloud.tenten.vn/public_html </Directory> ErrorLog /home/nextcloud.tenten.vn/logs/nextcloud-error_log CustomLog /home/nextcloud.tenten.vn/logs/nextcloud-access_log common </VirtualHost>
Tiếp theo các bạn cần tạo thư mục chứa mã nguồn website và thư mục chứa file log bằng các lệnh sau
mkdir -p /home/nextcloud.tenten.vn/public_html mkdir -p /home/nextcloud.tenten.vn/logs
Khởi động lại Apache hoặc Nginx để load cấu hình
service httpd restart Hoặc service nginx restart
2.4. Bước 4: Cấu hình Firewalld
Nếu các bạn sử dụng Firewalld các bạn sẽ cần mở port để có thể truy cập Nextcloud
firewall-cmd --permanent --add-service=http firewall-cmd --permanent --add-service=https firewall-cmd --reload
2.5. Bước 5: Download và cài đặt Nextcloud
a. Download Nextcloud
Tại thời điểm viết bài phiên bản mới nhất của Nextcloud là 23.0.0. Bạn có thể truy cập link https://nextcloud.com/install/#instructions-server để lấy link download phiên bản mới nhất.
Để download Nextcloud về VPS các bạn chạy lần lượt các lệnh sau
cd /home/nextcloud.hostvn.net/public_html wget https://download.nextcloud.com/server/releases/nextcloud-23.0.0.zip unzip nextcloud-23.0.0.zip rm -rf nextcloud-23.0.0.zip
Trong đó /home/nextcloud.tenten.vn/public_html là Document root các bạn cấu hình ở bước 3.
Tiếp theo các bạn cần di chuyển toàn bộ file và thư mục trong thư mục nextcloud ra ngoài public_html
mv /home/nextcloud.tenten.vn/public_html/nextcloud/{.,}* /home/nextcloud.tenten.vn/public_html
Các bạn nhập A và ấn Enter khi được hỏi.
Để tránh các lỗi về quyền các bạn cần set owner cho file và thư mục
- Đối với Apache
chown -R apache:apache /home/nextcloud.tenten.vn/public_html chown -R apache:apache /home/nextcloud.tenten.vn/logs
- Đối với Nginx
chown -R nginx:nginx /home/nextcloud.tenten.vn/public_html chown -R nginx:nginx /home/nextcloud.tenten.vn/logs
c. Cài đặt Nextcloud
Để cài đặt Nextcloud các bạn truy cập tên miền trên trình duyệt web, trong ví dụ này sẽ là nextcloud.hostvn.net
Mục đầu tiên sẽ cho phép các bạn thiết lập tài khoản Admin. Tại đây hãy điền tài khoản admin và mật khẩu mà bạn muốn tạo. Lưu ý không nên sử dụng Admin làm tên đăng nhập và nên đặt một mật khẩu đủ mạnh.
Tiếp theo các bạn click vào liên kết Storage & database và chọn Mysql/Mariadb. Sau đó điền đầy đủ thông tin kết nối Mysql bao gồm: Database user, Database name, password mà các bạn đã tạo ở bước 3 và bấm nút Finish Setup
- Lưu ý: Để quá trình cài đặt được nhanh hơn các bạn nên bỏ chọn ô Install Recommentded apps
Quá trình cài đặt sẽ diễn ra các bạn chỉ cần chờ cho tới khi quá trình cài đặt hoàn tất.
DỊCH VỤ CLOUD SERVER TỐC ĐỘ XỬ LÝ VƯỢT TRỘI