글 작성자: drizzle_
728x90

저번 글에서 Owncloud를 설치하였지만 모바일 앱이 유료인게 아쉽고, 확장 기능들이 많이 없어서 Owncloud에서 파생되어 기능이 많아진 NextCloud를 설치하기로 하였다.


잡다한 이야기

Apache2, MariaDB 및 PHP 7.2 지원과 함께 Composer를 사용하여 Github에서 최신 버전의 NextCloud Server (13.0.6)를 설치하는 데 도움이 필요한 학생 및 신규 사용자의 경우 Compoer를 사용하는 것이 좋다.

Composer를 사용하여 NextCloud 패키지를 설치하면 Composer를 사용하여 명령 줄에서 쉽게 업그레이드 할 수 있다.
NextCloud를 업그레이드하려면 새 버전을 사용할 수있을 때 핵심 파일 및 기타 패키지를 수동으로 업그레이드해야한다. 일부 사용자에게는 이런 방법을 사용하는 것이 어려울 수 있다.


설치하기

전체적인 흐름은 저번 글과 비슷하다.

1. Apache 서버를 우분투에 설치하기

sudo apt update
sudo apt install apache2

1-1. Apache를 설치한 후, 서버가 재시작 되면 Apache가 자동으로 실행될 수 있게 하기

sudo systemctl stop apache2.service
sudo systemctl start apache2.service
sudo systemctl enable apache2.service

1-2. 방화벽 설정 및 테스트

sudo ufw allow 80

이런 화면이 뜨면 Apache설치는 완료된것이다.

2. MariaDB 설치하기

sudo apt-get install mariadb-server mariadb-client

MariaDB를 설치하고 나서, 다음 명령어를 실행해준다.

sudo systemctl stop mariadb.service
sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service

기본적인 Mysql은 보안에 취약하기에, 다음 명령어로 보안 설정을 해준다.

sudo mysql_secure_installation

몇가지 질문이 있을것이다.

 

- Enter current password for root (enter for none): 엔터

설정이 완료되었고 DB를 테스트 하려면 다음 커맨드를 입력한다.

sudo mysql -u root -p

3. PHP 7.2와 모듈들 설치하기

NextCloud가 Owncloud에서 파생된것이기에, PHP7.4이상을 지원하지 않는다.

PHP 구버전을 설치할 수 있게 다음 명령어를 입력한다.

sudo apt-get install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update

PHP를 설치한다.

sudo apt install php7.2 libapache2-mod-php7.2 php7.2-common php7.2-gmp php7.2-curl php7.2-intl php7.2-mbstring php7.2-xmlrpc php7.2-mysql php7.2-gd php7.2-xml php7.2-cli php7.2-zip

3-1. Apache 재시작

sudo service apache2 restart

4. NextCloud DB만들기

NextCloud가 작동하는 데 필요한 모든 패키지를 설치 했으므로 서버 구성을 시작한다. 먼저 아래 명령을 실행하여 빈 NextCloud 데이터베이스를 만든다.

 

Maria DB에 접속한다.

sudo mysql -u root -p

nextcloud라는 DB를 만든다.

CREATE DATABASE nextcloud;

그후, nextclouduser라는 유저를 만든다.

CREATE USER 'nextclouduser'@'localhost' IDENTIFIED BY '비밀번호';

nextcloud라는 유저에게 모든 권한을 준다.

GRANT ALL ON nextcloud.* TO 'nextclouduser'@'localhost' IDENTIFIED BY '비밀번호' WITH GRANT OPTION;

저장하고 빠져나온다.

FLUSH PRIVILEGES;
EXIT;

5. 최신 nextcloud 다운로드하기

아래 명령어를 실행해 최신 git과 composer를 다운로드한다.

sudo apt install curl git
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer

이제 nextcloud를 다운한다.

cd /var/www/html
sudo git clone --branch stable13 https://github.com/nextcloud/server.git nextcloud
cd /var/www/html/nextcloud
sudo composer install
sudo git submodule update --init

혹시모를 오류를 방지하기 위해 폴더의 권한을 설정해준다.

sudo chown -R www-data:www-data /var/www/html/nextcloud/
sudo chmod -R 755 /var/www/html/nextcloud/

6. Apache 설정하기

마지막으로 NextCloud에 대한 Apahce2 사이트 구성 파일을 구성해야한다. 이 파일은 사용자가 NextCloud 컨텐츠에 액세스하는 방법을 제어한다. 다음 명령을 실행하여 nextcloud.conf라는 새 구성 파일을 만든다.

sudo nano /etc/apache2/sites-available/nextcloud.conf

그 후 아래의 설정을 복사해서 붙여넣는다.

<VirtualHost *:80>
     ServerAdmin 이메일주소
     DocumentRoot /var/www/html/nextcloud/
     ServerName 서버 아이피 또는 URL
     ServerAlias 서버 아이피 또는 URL
  
     Alias /nextcloud "/var/www/html/nextcloud/"

     <Directory /var/www/html/nextcloud/>
        Options +FollowSymlinks
        AllowOverride All
        Require all granted
          <IfModule mod_dav.c>
            Dav off
          </IfModule>
        SetEnv HOME /var/www/html/nextcloud
        SetEnv HTTP_HOME /var/www/html/nextcloud
     </Directory>

     ErrorLog ${APACHE_LOG_DIR}/error.log
     CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

저장하고 nano에서 빠져나온다.

6-1. 모듈 활성화

sudo a2ensite nextcloud.conf
sudo a2enmod rewrite
sudo a2enmod headers
sudo a2enmod env
sudo a2enmod dir
sudo a2enmod mime

7. Apache2 재시작

sudo systemctl restart apache2.service

아무런 오류가 없이 apache가 재시작 된다면, 서버아이피/nextcloud에 접속해본다.


설정하기

관리자 계정을 만든다.

아까 설정했던 DB를 가지고 nextcloud를 설정한다.

완료되었다면, 즐기면 된다.

 

728x90
Email: b1@yeonw.me / 여기를 눌러 다른 연락 수단들 알아보기