Cloud

Nextcloud 설치법

DaehanCNI 2021. 11. 22. 13:27

Nextcloud는 문서 공유 및 공동 작업, 이메일, 캘린더, 데이터 공유 등을 제공하고 있는 오픈소스 플랫폼입니다. 

CentOS 8.4.2105 에서 Nextcloud 설치 방법에 대해서 알아보도록 하겠습니다. 

 

System Requirements

Platform Options
Operating System - Ubuntun 20.04 LTS (recommended)
- RedHat Enterprise Linux 8 (recommended)
- Debian 10 (Buster)
- SUSE LInux Enterprise Server 15
- openSUSE Leap 42.1+
- CentOS Stream
Database -MySQL 8.0+ or MariaDB 10.2/10.3/10.4/10.5 (recommended)
- Oracle Database 11g (only as part of an enterpise subscription)
- PostgreSQL 9.6/10/11/12/13
- SQLite (only recommended for testing and minimal-instances)

Webserver - Apache 2.4 with mod_php or php-fpm (recommended)
- nginx with php-fpm
PHP Runtime - 7.3
- 7.4
- 8.0 (recommended)

 

Memory

- minimum : 128MB

- recommend : 512MB

 

Desktop Client 

 - Windows 8.1+

 - macOS Lion (10.7)+ (64bit only)

 - Linux (CentOS 6.5+, Ubuntu 14.04+, Fedora 21+, openSUSE 13, SUSE Linux Enterprise 11 SP3+, Debian 8 (Jessie)+, Red Hat Enterprise Linux 7)

 

Mobile apps

 - iOS 11.x+

 - Android 4.x+

 

Web browser

 - Microsoft Edge

 - Mozilla Firefox

 - Google Chrome / Chromium

 - Apple Safari

 

 

1. 유틸리티 설치 

관련 유틸리티를 설치

dnf install -y epel-release yum-utils unzip curl wget bash-completion policycoreutils-python-utils mlocate bzip2

 

시스템 업데이트 

dnf update -y

 

2. 아파치 설치

아파치 설치

dnf install -y httpd

 

아파치 config 파일 설정. (/etc/httpd/conf.d/nextcloud.conf 생성 후, 삽입)

<VirtualHost *:80>
  DocumentRoot /var/www/html/nextcloud/
  ServerName  your.server.com

  <Directory /var/www/html/nextcloud/>
    Require all granted
    AllowOverride All
    Options FollowSymLinks MultiViews

    <IfModule mod_dav.c>
      Dav off
    </IfModule>

  </Directory>
</VirtualHost>

 

아파치 웹 서비스 활성화 및 시작

systemctl enable httpd.service
systemctl start httpd.service

 

3. PHP 설치 (7.4)

Package 활성화 

 

- Remi repository configuration package 로 설치하는 방법

dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm

 - yum-utils package 로 설치하는 방법

dnf install yum-utils

 - 7.4 module stream 활성화 

dnf module reset php
dnf module install php:remi-7.4
dnf update

 

php 및 필수 모듈 설치

dnf install -y php php-gd php-mbstring php-intl php-pecl-apcu php-mysqlnd php-opcache php-json php-zip

 

옵션 모듈 redis/imagick 설치

dnf install -y php-redis php-imagick

 

4. 데이터 베이스 설치 (MySQL / MariaDB 설치, SQLite 사용시 불필요)

데이터베이스 설치

dnf install -y mariadb mariadb-server

 

데이터 베이스 서비스 활성화 및 재시작

systemctl enable mariadb.service
systemctl start mariadb.service

 

데이터 베이트 보완 설정 (MySQL/MariaDB 의 root 패스워드 설정 후, 실행)

mysql_secure_installation

데이터 베이스에 Nextcloud 에서 사용하게 될 database 및 사용자 추가 (Nextcloud 위자드에서 설정 추가 설정)

 

5. redis 설치

dnf install -y redis
systemctl enable redis.service
systemctl start redis.service

 

6. Nextcloud 설치

Nextcloud을 다운로드 https://nextcloud.com/install/#instructions-server

 

Install – Nextcloud

Nextcloud is the most deployed on-premises file share and collaboration platform. Access & collaborate across your devices. Your data remains under your control.

nextcloud.com

 

압축 풀기

unzip nextcloud-*.zip

 

웹서버로 Nextcloud 소스 복사 (/var/www/html/)

cp -R nextcloud/ /var/www/html/

 

Nextcloud에 필요한 데이터 폴더 생성

mkdir /var/www/html/nextcloud/data

 

웹 서버의 읽기 및 쓰기 권한 변경

chown -R apache:apache /var/www/html/nextcloud

 

아파치 재 시작

systemctl restart httpd.service

 

아파치에 대한 방화벽 업데이트

firewall-cmd --zone=public --add-service=http --permanent
firewall-cmd --reload

 

7. SELinux 설정

보안을 위한 SELinux 설정

semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/nextcloud/data(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/nextcloud/config(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/nextcloud/apps(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/nextcloud/.htaccess'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/nextcloud/.user.ini'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/nextcloud/3rdparty/aws/aws-sdk-php/src/data/logs(/.*)?'

restorecon -R '/var/www/html/nextcloud/'

setsebool -P httpd_can_network_connect on

※ 첫번째 명령어 (data 폴더 설정) 에서 에러가 발생할수 있습니다. 무시하시고 다음을 진행하시면 됩니다. 

 

모든 설정이 끝나면 한번 재시작합니다. 이후,  웹을 통하여 Nextcloud Wizard를 통하여 설정을 연동하시면 됩니다. 

 

 

Ref:

https://docs.nextcloud.com/server/latest/admin_manual/installation/example_centos.html

 

Example installation on CentOS 8 — Nextcloud latest Administration Manual latest documentation

For the sake of the walk-through, we grabbed the latest version of Nextcloud in the form a zip file, confirmed the download with the above-mentioned command, and now we will extract it: Copy the content over to the root directory of your webserver. In our

docs.nextcloud.com

https://docs.nextcloud.com/server/latest/admin_manual/installation/system_requirements.html

 

System requirements — Nextcloud latest Administration Manual latest documentation

Linux (CentOS 6.5+, Ubuntu 14.04+, Fedora 21+, openSUSE 13, SUSE Linux Enterprise 11 SP3+, Debian 8 (Jessie)+, Red Hat Enterprise Linux 7)

docs.nextcloud.com

https://nextcloud.com/install/#install-clients

 

Install – Nextcloud

Nextcloud is the most deployed on-premises file share and collaboration platform. Access & collaborate across your devices. Your data remains under your control.

nextcloud.com