Linux

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)

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_htmlDocument 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

Bài liên quan

Bài viết liên quan

Back to top button