CentOS 7에서 Nginx 및 MariaDB와 함께 OwnCloud 8을 설치하는 방법

CentOS 7에서 Nginx 및 MariaDB와 함께 OwnCloud 8을 설치하는 방법

2022-10-19 last update

9 minutes reading linux centos nginx
OwnCloud는 오픈 소스 라이선스로 제공되는 사용하기 쉬운 웹 기반 프런트엔드로 데이터 동기화 및 파일 공유를 위한 서버 소프트웨어입니다. Owncloud는 Linux 또는 Windows 웹 서버에 설치할 수 있으며 구성이 쉽고 포괄적인 온라인 설명서가 있습니다. 기본 클라이언트는 Windows, MacOS 및 Linux(데스크톱 애플리케이션)에서 사용할 수 있습니다. Android 및 iOS용 모바일 앱도 있습니다.
이 튜토리얼에서는 nginx 웹 서버 및 MariaDB 데이터베이스를 사용하여 CentOS 7에 Owncloud 8을 설치하는 방법을 설명합니다.
현재 최신 버전은 OwnCloud 8.0입니다.

전제 조건


  • CentOS 7
  • 할 것


    이 가이드에서 수행할 단계는 다음과 같습니다.
  • SELinux를 비활성화하고 firewalld를 구성합니다.
  • Nginx, MariaDB, php-fpm을 설치하고 구성합니다.
  • 데이터베이스를 생성하고 SSL을 구성합니다.
  • OwnCloud를 설치합니다.
  • OwnCloud에 대한 가상 호스트를 구성합니다.
  • 브라우저에서 OwnCloud를 테스트하십시오.
  • SELinux 비활성화 및 방화벽 구성


    SELinux를 비활성화하려면/etc/sysconfig/selinux 파일을 편집하고 적용을 비활성화로 변경합니다.
    vim /etc/sysconfig/selinux

    이 명령을 실행하여 방화벽에서 포트 80/http 및 443/https를 열어 나중에 http 및 https로 OwnCloud 인터페이스에 연결할 수 있습니다.
    firewall-cmd --permanent --add-service=http
    firewall-cmd --permanent --add-service=https
    firewall-cmd --reload

    LEMP 설치 및 구성


    OwnCloud를 실행할 기본 LEMP(Linux - Nginx - MariaDB - PHP) 서버를 설정하는 단계입니다.

    1단계 - epel-repository 활성화


    LEMP(Linux, Nginx, MariaDB 및 PHP)를 설치하려면 epel-repository 을 활성화해야 합니다.
    yum -y install epel-release

    2단계 - Nginx, MariaDB 및 php-fpm 설치


    sudo 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 vim

    3단계 - MariaDB 시작 및 구성


    systemctl start mariadb
    mysql_secure_installation
    처음에는 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

    4단계 - php-fpm 구성


    /etc/php-fpm.d/www.conf 파일을 편집합니다.
    vim /etc/php-fpm.d/www.conf
    수신 라인이 다음과 같은지 확인하십시오.
    listen = 127.0.0.1:9000
    그리고 user - group 행을 편집하십시오.
    user = nginx
    group = nginx
    세션 경로에 대한 디렉토리를 작성하십시오.
    mkdir -p /var/lib/php/session
    chown nginx:nginx -R /var/lib/php/session/
    php-fpm을 시작합니다.
    systemctl start php-fpm

    5단계 - nginx 시작


    systemctl start nginx
    이 단계에서 웹 서버 http://192.168.1.101/을 방문할 수 있습니다.
    Nginx CentOS 7

    데이터베이스 생성 및 SSL 구성


    1단계 - 데이터베이스 및 사용자 생성


    mysql 명령줄 클라이언트를 사용하여 MariaDB에 로그인합니다.
    mysql -u root -p
    데이터베이스 생성:
    create database owncloud_db;
    사용자 추가:
    create user [email protected] identified by 'ownclouduser';
    사용자에게 데이터베이스에 대한 권한 부여
    grant all privileges on owncloud_db.* to [email protected] identified by 'ownclouduser';
    flush privileges;

    2단계 - SSL 인증서 생성


    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
    이 명령은/etc/nginx/cert/디렉토리에 owncloud.crt 및 owncloud.key를 생성합니다.
    권한 인증서 파일을 변경합니다.
    chmod 600 owncloud.crt
    chmod 600 owncloud.key

    OwnCloud 설치


    wget으로 애플리케이션 소스를 다운로드합니다.
    yum -y install wget
    cd /tmp/
    wget https://download.owncloud.org/community/owncloud-8.0.0.tar.bz2
    owncloud 디렉토리를 추출하여/usr/share/nginx/html로 이동합니다.
    tar -xjvf owncloud-8.0.0.tar.bz2
    mv owncloud/ /usr/share/nginx/html/
    owncloud 디렉토리의 소유자를 nginx로 변경합니다.
    cd /usr/share/nginx/html/
    chown nginx:nginx -R owncloud/
    owncloud 디렉토리에 data라는 디렉토리를 생성하고 소유자를 nginx로 변경합니다.
    mkdir -p owncloud/data/
    chown nginx:nginx -R owncloud/data/

    OwnCloud용 가상 호스트 구성


    마지막 단계는 owncloud에 대한 가상 호스트를 구성하는 것입니다.
    cd /etc/nginx/conf.d/
    mv default.conf default
    /etc/nginx/conf.d/에 owncloud 구성 추가
    vim owncloud.conf
    아래에 구성 붙여넣기:

    upstream php-handler {
        server 127.0.0.1:9000;
        #server unix:/var/run/php5-fpm.sock;
    }
    
    server {
            listen 80;
            server_name 192.168.1.101; #YourIP or domain
            return 301 https://$server_name$request_uri;  # redirect all to use ssl
    }
    
    
    server {
            listen 443 ssl;
            server_name 192.168.1.101; #YourIP or domain
    
            #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;
            }
    
    }
    
    
    그런 다음 LEMP 스택을 다시 시작합니다.
    systemctl restart nginx mariadb php-fpm
    이제 부팅 시 시작하도록 LEMP 서비스를 구성합니다.
    systemctl enable nginx
    systemctl enable php-fpm
    systemctl enable mariadb
    그런 다음 서버를 재부팅합니다.
    reboot

    오운클라우드 테스트


    http://192.168.1.101 그리고 SSL 연결 https://192.168.1.101로 리디렉션됩니다.
    관리자 계정을 만들고 모든 데이터베이스(사용자 이름, 비밀번호, dbname)를 입력한 다음 설정 완료를 클릭합니다.

    결론


    OwnCloud는 오늘날 프라이빗 클라우드에 적합한 솔루션입니다. 사용 및 구성이 쉽고 사용자 친화적인 인터페이스로 사용 및 설치가 간편합니다. Owncloud는 빠르고 안정적이며 많은 기능을 갖추고 있습니다.

    연결


  • Owncloud
  • CentOS
  • Nginx
  • MariaDB
  • PHP