ownCloud là một mã nguồn mở miễn phí và ứng dụng web mạnh mẽ để đồng bộ hóa dữ liệu, chia sẻ tập tin, và lưu trữ từ xa của các tập tin. ownCloud được viết bằng ngôn ngữ PHP/javascript. Nó được thiết kế để làm việc với một số hệ thống quản lý cơ sở dữ liệu, bao gồm cả MySQL, MariaDB, SQLite, Oracle Database, và PostgreSQL.

Adminvietnam xin hướng dẫn các bạn cài đặt OwnCloud trên CentOS 7 với Nginx và MariaDB . Bài viết gồm các bước sau

  • Disable SELinux and configure firewalld.
  • Instal and configure Nginx, MariaDB, php-fpm.
  • Create a database and configure SSL.
  • Install OwnCloud.
  • Configure a virtualhost for OwnCloud.
  • Test OwnCloud in the browser

1.Disable SELinux and configure firewalld

Để tắt SELinux bạn phải chỉnh sửa file /etc/sysconfig/selinux , và sửa enforced thành disabled

# nano /etc/sysconfig/selinux

21

Chạy các dòng sau đây để mở port 80/http và 443/https trên firewall

# firewall-cmd --permanent --add-service=http
 # firewall-cmd --permanent --add-service=https
 # firewall-cmd --reload

2. Instal and configure Nginx, MariaDB, php-fpm

 B1. Bật epel-repository
rpm -ivh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-6.noarch.rpm
B2. Cài đặt Nginx, MariaDB và php-fpm
# rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
yum -y install nginx mariadb mariadb-server php-fpm php-cli php-gd php-mcrypt php-mysql php-pear php-xml bzip2

B3. Chạy và cấu hình MariaDB

# systemctl start mariadb
 # mysql_secure_installation

Trước tiên bạn chỉ cần bấm Enter

Change the root password? [Y/n] Y
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

B4. Cấu hình php-fpm

Edit file /etc/php-fpm.d/www.conf

# nano /etc/php-fpm.d/www.conf

Kiểm tra dòng listen

listen = 127.0.0.1:9000

Chỉnh sửa dòng user – group

22

Tạo thư mục cho session-path

# mkdir -p /var/lib/php/session
# chown nginx:nginx -R /var/lib/php/session/

Chạy php-fpm

# systemctl start php-fpm

B5. Chạy Nginx

# systemctl start nginx

Tại bước này bạn đã có thể vào web server bằng đường dẫn http://192.168.1.54

16

3. Create a database and configure SSL

B1. Tạo Database và User

Login vào MariaDB

MariaDB [(none)]>  mysql -u root -p

Tạo Database

MariaDB [(none)]> create database owncloud_db;

Tạo user

MariaDB [(none)]> create user [email protected] identified by 'ownclouduser';

Cấp quyền cho user sử dụng cơ sở dữ liệu

MariaDB [(none)]> grant all privileges on owncloud_db.* to [email protected] identified by 'ownclouduser';
MariaDB [(none)]> flush privileges;

Thoát

MariaDB [(none)]> quit;

B2. Tạo SSL Certificate

# mkdir -p /etc/nginx/cert/
# cd /etc/nginx/cert/
# openssl req -new -x509 -days 365 -nodes -out /etc/nginx/cert/owncloud.crt -keyout /etc/nginx/cert/owncloud.key

Lệnh trên sẽ tạo ra 2 file owncloud.crtowncloud.key trong thư mục /etc/nginx/cert/

Phân quyền cho file certificate

# chmod 600 owncloud.crt
 # chmod 600 owncloud.key

4. Install OwnCloud

Tải source owncloud với wget

# yum -y install wget
 # cd /tmp/
 # wget https://download.owncloud.org/community/owncloud-8.0.0.tar.bz2

Sau khi đã tải xong giải nén và move thư mục owncloud tới /usr/share/nginx/html

# tar -xjvf owncloud-8.0.0.tar.bz2
 # mv owncloud/ /usr/share/nginx/html/

Cấp quyền sở hữu thư mục owncloud cho nginx

# cd /usr/share/nginx/html/
 # chown nginx:nginx -R owncloud/

Tạo thư mục data trong thư mục owncloud và cấp quyền sở hữu cho nginx

# mkdir -p owncloud/data/
# chown nginx:nginx -R owncloud/data/

5. Configure a Virtualhost for Owncloud

Bước cuối cùng là cấu hình Virtualhost cho Owncloud

# cd /etc/nginx/conf.d/
 # mv default.conf default

Thêm cấu hình cho owncloud

# nano owncloud.conf

Paste cấu hình sau vào file

upstream php-handler {
    server 127.0.0.1:9000;
    #server unix:/var/run/php5-fpm.sock;
}

server {
        listen 80;
        server_name 192.168.1.54; #IP Owncloud server
        return 301 https://$server_name$request_uri;  # redirect all to use ssl
}


server {
        listen 443 ssl;
        server_name 192.168.1.54; #IP Owncloud server

        #SSL Certificate you created
        ssl_certificate /etc/nginx/cert/owncloud.crt; 
        ssl_certificate_key /etc/nginx/cert/owncloud.key;

        # owncloud path
        root /usr/share/nginx/html/owncloud/;

        client_max_body_size 10G; # set max upload size
        fastcgi_buffers 64 4K;

        rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;
        rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;
        rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;

        index index.php;
        error_page 403 /core/templates/403.php;
        error_page 404 /core/templates/404.php;

        location = /robots.txt {
            allow all;
            log_not_found off;
            access_log off;
        }

        location ~ ^/(data|config|\.ht|db_structure\.xml|README) {
                deny all;
        }

        location / {
                # The following 2 rules are only needed with webfinger
                rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
                rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;

                rewrite ^/.well-known/carddav /remote.php/carddav/ redirect;
                rewrite ^/.well-known/caldav /remote.php/caldav/ redirect;

                rewrite ^(/core/doc/[^\/]+/)$ $1/index.html;

                try_files $uri $uri/ index.php;
        }

        location ~ ^(.+?\.php)(/.*)?$ {
                try_files $1 = 404;

                include fastcgi_params;
                fastcgi_param SCRIPT_FILENAME $document_root$1;
                fastcgi_param PATH_INFO $2;
                fastcgi_param HTTPS on;
                fastcgi_pass php-handler;
        }

        # Optional: set long EXPIRES header on static assets
        location ~* ^.+\.(jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
                expires 30d;
                # Optional: Don't log access to assets
                access_log off;
        }

}

Khởi động lại Nginx , MariaDB , php-fpm

# systemctl restart nginx mariadb php-fpm

Cho các dịch vụ chạy khi khởi động

# systemctl enable nginx
 # systemctl enable php-fpm
 # systemctl enable mariadb

Reboot server

# reboot

6. Test OwnCloud

Truy cập http://192.168.1.54 và bạn sẽ được chuyển đến https://192.168.1.54

Tạo tài khoản admin

17

Click vào Storage & database để thêm thông tin về database

18

Sau khi hoàn tất click Finish Setup

20

Như vậy chúng ta đã hoàn tất quá trình cài đặt OwnCloud 8 trên CentOS 7 . Mọi thông tin khác các bạn có thêm xem thêm trên trang chủ https://owncloud.org/

LuanPM – Adminvietnam.org

Chia sẻ