CentOS 7에 ownCloud 클라우드 스토리지 구축 가이드

개요

이 가이드는 CentOS 7 운영 체제에 LAMP(Linux, Apache, MariaDB, PHP) 스택을 사용하여 개인 클라우드 스토리지 솔루션인 ownCloud를 설치하고 구성하는 방법을 설명합니다. 원활한 작업을 위해 PuTTY, Xshell과 같은 SSH 클라이언트를 사용하여 가상 머신에 원격으로 접속하여 명령을 실행하는 것을 권장합니다.

YUM 저장소 설정

최신 패키지를 효율적으로 다운로드하고 설치하기 위해 시스템의 YUM 저장소를 구성합니다. 특히 PHP 7.0과 같은 특정 버전의 패키지를 위해 Remi 저장소를 추가합니다.

# 기존 YUM 저장소 백업 및 새 저장소 설정
sudo mkdir -p /root/yum_backup
sudo mv /etc/yum.repos.d/*.repo /root/yum_backup/ # 기존 .repo 파일들을 백업합니다.

# CentOS 기본, EPEL(Extra Packages for Enterprise Linux), Remi 저장소 구성 (미러 사용)
# CentOS 7 기본 저장소 설정 (예시: Aliyun 미러)
sudo curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# EPEL 저장소 추가
sudo curl -o /etc/yum.repos.d/CentOS-epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
# PHP 최신 버전을 위한 Remi 저장소 추가 (예시: Tsinghua 미러)
sudo curl -o /etc/yum.repos.d/CentOS-remi.repo https://mirrors.tuna.tsinghua.edu.cn/remi/enterprise/remi.repo

# Remi 저장소 설정 파일 수정 (미러 서버 강제 적용)
# mirrorlist를 주석 처리하고 baseurl을 활성화하여 Tsinghua 미러를 사용하도록 변경합니다.
sudo sed -i 's@mirrorlist@#mirrorlist@g' /etc/yum.repos.d/CentOS-remi.repo
sudo sed -i 's@#baseurl=http://rpms.remirepo.net@baseurl=http://mirrors.tuna.tsinghua.edu.cn/remi@g' /etc/yum.repos.d/CentOS-remi.repo

# YUM 캐시 정리 및 재구성
sudo yum clean all
sudo rm -rf /var/cache/yum/* # 모든 YUM 캐시를 삭제하여 새로운 캐시를 강제로 생성합니다.
sudo yum makecache

LAMP 스택 설치

ownCloud 구동에 필요한 Apache 웹 서버, MariaDB 데이터베이스, PHP 7.0 및 관련 모듈을 설치합니다.

# 필요한 LAMP 스택 및 추가 패키지 설치
# httpd (Apache 웹 서버), mariadb-server (MariaDB 데이터베이스 서버), php70-php (PHP 7.0) 및 관련 모듈
sudo yum -y install vim bzip2 bash-completion httpd mariadb mariadb-server \
php70-php php70-php-mysqlnd php70-php-cli php70-php-xml php70-php-mbstring \
php70-php-intl php70-php-gd php70-php-pecl-zip

LAMP 환경 구성

설치된 LAMP 서비스를 시작하고, MariaDB 데이터베이스를 보안 설정하며, ownCloud가 사용할 데이터베이스와 사용자를 생성합니다. 또한 방화벽을 구성하여 웹 서비스 접근을 허용합니다.

MariaDB 데이터베이스 설정

# MariaDB 서비스 시작
sudo systemctl start mariadb

# MariaDB 보안 설정 (초기 설치 시 권장)
# 루트 비밀번호 설정, 익명 사용자 제거, 원격 루트 로그인 비활성화, 테스트 데이터베이스 제거 등
sudo mysql_secure_installation

# ownCloud용 데이터베이스 및 사용자 생성
# YOUR_ROOT_PASSWORD 대신 mysql_secure_installation에서 설정한 루트 비밀번호를 사용하세요.
mysql -u root -pYOUR_ROOT_PASSWORD

# MySQL 프롬프트에서 다음 명령 실행:
-- ownCloud 데이터베이스 생성
CREATE DATABASE cloud_data_db;

-- ownCloud 데이터베이스에 접근할 사용자 생성 및 권한 부여
-- 'cloud_user_name'과 'cloud_user_password'를 강력한 값으로 변경하세요.
GRANT ALL PRIVILEGES ON cloud_data_db.* TO 'cloud_user_name'@'localhost' IDENTIFIED BY 'cloud_user_password';

-- 권한 변경 사항 적용
FLUSH PRIVILEGES;

-- MySQL 프롬프트 종료
EXIT;

Apache 웹 서버 및 방화벽 설정

# Apache 및 MariaDB 서비스 활성화 및 자동 시작 설정
sudo systemctl start httpd
sudo systemctl enable httpd
sudo systemctl enable mariadb

# 방화벽 설정: HTTP (80 포트) 서비스 허용
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --reload

ownCloud 배포

ownCloud 설치 파일을 서버로 전송하고 압축을 해제한 다음, 웹 서버가 파일을 읽고 쓸 수 있도록 적절한 파일 시스템 권한 및 SELinux 컨텍스트를 설정합니다.

# ownCloud 설치 파일 전송 및 압축 해제
# 먼저 ownCloud 아카이브 (예: owncloud-10.2.0.tar.bz2)를 서버의 임의의 위치로 전송합니다.
# ownCloud 공식 웹사이트에서 최신 버전을 다운로드할 수 있습니다: https://owncloud.org/download/
# (예: wget https://download.owncloud.org/community/owncloud-10.10.0.tar.bz2)
# 다운로드 후 /var/www/html/ 디렉터리로 압축을 해제합니다:
sudo tar -xf owncloud-10.2.0.tar.bz2 -C /var/www/html/

# ownCloud 디렉터리 권한 설정
# 모든 파일의 기본 소유자를 nobody로 설정합니다. 이는 Apache가 불필요하게 많은 파일에 대한 소유권을 갖지 않도록 합니다.
sudo chown -R nobody:nobody /var/www/html/owncloud

# ownCloud가 데이터 및 설정 파일을 쓸 수 있도록 특정 디렉터리에 대한 Apache 소유권 부여
# 이 디렉터리들은 웹 서버가 데이터를 저장하거나 설정을 변경하는 데 필요합니다.
sudo mkdir -p /var/www/html/owncloud/data /var/www/html/owncloud/apps-external
sudo chown -R apache:apache /var/www/html/owncloud/data /var/www/html/owncloud/apps /var/www/html/owncloud/apps-external /var/www/html/owncloud/config

# 특정 디렉터리에 대한 쓰기 권한 설정
# apps 및 config 디렉터리에 대해 그룹 쓰기 권한을 부여합니다.
sudo chmod 775 /var/www/html/owncloud/apps /var/www/html/owncloud/config

# SELinux 컨텍스트 설정
# ownCloud가 올바르게 작동하려면 SELinux 정책을 조정해야 합니다.
# httpd_sys_rw_content_t 타입은 웹 서버가 읽고 쓸 수 있는 콘텐츠를 의미합니다.
sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/owncloud/data(/.*)?'
sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/owncloud/config(/.*)?'
sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/owncloud/apps(/.*)?'
sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/owncloud/apps-external(/.*)?'
sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/owncloud/.htaccess'
sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/owncloud/.user.ini'

# 변경된 SELinux 컨텍스트를 파일 시스템에 적용
sudo restorecon -Rv '/var/www/html/owncloud/'

# ownCloud 디렉터리의 SELinux 사용자 컨텍스트를 system_u로 설정 (필요시)
# 이 단계는 특정 환경에서 SELinux 정책 강화를 위해 사용될 수 있습니다.
sudo chcon -R -u system_u /var/www/html/owncloud

웹 기반 ownCloud 초기 설정

모든 서버 측 구성이 완료되면 웹 브라우저를 열고 ownCloud가 설치된 서버의 IP 주소 또는 도메인으로 접속합니다. (예: http://your_server_ip/owncloud)

웹 인터페이스는 초기 설정 마법사를 안내할 것입니다. 다음 정보를 입력하여 설정을 완료합니다:

  • 관리자 계정 생성: ownCloud에 로그인할 관리자 사용자 이름과 비밀번호를 설정합니다. 강력한 비밀번호를 사용하십시오.
  • 데이터 폴더: ownCloud 파일이 저장될 경로를 확인합니다. 기본적으로 /var/www/html/owncloud/data로 설정되어 있어야 합니다.
  • 데이터베이스 구성:
    • 데이터베이스 유형: MySQL/MariaDB 선택
    • 데이터베이스 사용자: 이전 단계에서 생성한 cloud_user_name 입력
    • 데이터베이스 비밀번호: cloud_user_password 입력
    • 데이터베이스 이름: cloud_data_db 입력
    • 데이터베이스 호스트: localhost 또는 127.0.0.1

"설치 완료" 버튼을 클릭하여 설정을 마무리합니다. 이후 설정한 관리자 계정으로 ownCloud에 로그인하여 클라우드 스토리지 서비스를 사용할 수 있습니다.

태그: CentOS ownCloud LAMP MariaDB Apache

6월 15일 02:02에 게시됨