Rocky Linux 8.10에서 Nextcloud 설치 및 설정 가이드
이 가이드는 Rocky Linux 8.10에 Nextcloud를 설치하고 설정하는 과정을 단계별로 설명합니다. Nextcloud는 파일 공유, 협업, 클라우드 스토리지를 위한 오픈소스 플랫폼으로, Dropbox나 Google Drive의 대안으로 적합합니다.
사전 요구사항
- Rocky Linux 8.10이 설치된 서버 (최소 2GB RAM, 4GB 권장)
- 루트 또는 sudo 권한이 있는 비루트 사용자
- 인터넷 연결
1. 시스템 업데이트 및 SELinux 설정
시스템을 최신 상태로 유지하고 SELinux를 허용 모드로 설정하여 설치 중 제한을 방지합니다.
sudo dnf update -y
sudo setenforce 0
sudo sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config
2. LAMP 스택 설치
Nextcloud는 Apache, MariaDB, PHP로 구성된 LAMP 스택이 필요합니다.
2.1 Apache 설치
sudo dnf install httpd -y
sudo systemctl enable httpd
sudo systemctl start httpd
2.2 MariaDB 설치 및 보안
sudo dnf install mariadb-server -y
sudo systemctl enable mariadb
sudo systemctl start mariadb
sudo mysql_secure_installation
프롬프트에서 루트 비밀번호 설정, 익명 사용자 제거, 원격 루트 로그인 비활성화, 테스트 데이터베이스 제거를 선택하세요.
2.3 PHP 설치 (Remi 저장소 사용)
Rocky Linux 8.10의 기본 PHP는 7.2로, Nextcloud에 필요한 7.4 이상을 충족하지 않습니다. Remi 저장소에서 PHP 8.1을 설치합니다.
sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm -y
sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm -y
sudo dnf module reset php -y
sudo dnf module enable php:remi-8.1 -y
sudo dnf install php php-cli php-fpm php-gd php-curl php-zip php-mbstring php-opcache php-intl php-mysqlnd php-json php-pdo php-pecl-apcu php-ldap php-process -y
3. MariaDB에서 Nextcloud 데이터베이스 생성
Nextcloud용 데이터베이스와 사용자를 생성합니다.
sudo mysql -u root -p
CREATE DATABASE nextcloud_db;
CREATE USER 'nextcloud'@'localhost' IDENTIFIED BY 'StrongPassword';
GRANT ALL PRIVILEGES ON nextcloud_db.* TO 'nextcloud'@'localhost';
FLUSH PRIVILEGES;
EXIT;
StrongPassword를 안전한 비밀번호로 변경하세요.
4. Nextcloud 다운로드 및 설치
최신 Nextcloud 버전을 다운로드하고 Apache 웹 루트에 설치합니다.
sudo dnf install wget unzip -y
sudo wget https://download.nextcloud.com/server/releases/latest.zip -P /tmp
sudo unzip /tmp/latest.zip -d /var/www/html/
sudo chown -R apache:apache /var/www/html/nextcloud
sudo chmod -R 755 /var/www/html/nextcloud
5. Apache VirtualHost 설정
Nextcloud를 위한 Apache 설정 파일을 생성합니다.
sudo vi /etc/httpd/conf.d/nextcloud.conf
다음 내용을 추가하세요 (도메인 또는 IP를 적절히 수정):
<VirtualHost *:80>
ServerName your-domain.com
ServerAdmin admin@your-domain.com
DocumentRoot /var/www/html/nextcloud
# Nextcloud 디렉토리 설정
<Directory /var/www/html/nextcloud>
Options +FollowSymLinks
AllowOverride All
Require all granted
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>
Apache 설정을 적용합니다:
sudo systemctl restart httpd
6. 방화벽 설정
HTTP 포트(80)를 허용합니다.
sudo firewall-cmd --add-port=80/tcp --zone=public --permanent
sudo firewall-cmd --reload
7. PHP 최적화
성능 향상을 위해 PHP 설정을 조정합니다.
sudo vi /etc/php.ini
다음 값을 수정 또는 추가하세요:
upload_max_filesize = 512M
post_max_size = 512M
date.timezone = Asia/Seoul
max_execution_time = 300
OPcache 설정을 활성화합니다:
sudo vi /etc/php.d/10-opcache.ini
다음 내용을 추가하세요:
opcache.enable=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1
PHP 설정을 적용합니다:
sudo systemctl restart httpd
sudo systemctl restart php-fpm
8. Nextcloud 웹 인터페이스 설정
브라우저에서 서버 IP 또는 도메인(예: http://your-domain.com/nextcloud)에 접속합니다.
- 관리자 계정 사용자 이름과 비밀번호를 입력합니다.
- "스토리지 및 데이터베이스"에서 MariaDB를 선택합니다.
- 데이터베이스 정보 입력:
- 데이터베이스 사용자: nextcloud
- 데이터베이스 비밀번호: StrongPassword
- 데이터베이스 이름: nextcloud_db
- 호스트: localhost
- "설치 완료" 버튼을 클릭합니다.
설치가 완료되면 Nextcloud 대시보드에 로그인할 수 있습니다.
9. SSL 설정 (선택 사항)
보안을 위해 Let’s Encrypt를 사용하여 SSL을 설정합니다.
sudo dnf install certbot python3-certbot-apache -y
sudo certbot --apache -d your-domain.com
프롬프트에 따라 인증서를 설치하고 HTTP를 HTTPS로 리디렉션하도록 설정하세요.
참고: 도메인 DNS의 A 레코드가 서버 IP를 가리키도록 설정해야 SSL 인증서 발급이 가능합니다.