Ubuntu Server에 Nextcloud와 홈페이지 함께 구축하기
들어가며
클라우드 스토리지와 개인 홈페이지를 하나의 서버에서 운영하고 싶다면? Ubuntu Server에 Nextcloud와 웹사이트를 함께 설치하는 방법을 단계별로 알아보겠습니다.
0부: 테스트 환경
이 가이드는 다음 하드웨어에서 테스트되었습니다.
하드웨어 스펙
모델: 2019 Apple MacBook Pro
CPU: Intel Core i5
저장공간: 512GB SSD
OS: Ubuntu Server 24.04 LTS (또는 22.04 LTS)
💡 참고: MacBook Pro에 Ubuntu Server를 설치하면 조용하고 전력 효율이 좋은 홈 서버로 활용할 수 있습니다. 다만 WiFi 드라이버 등 일부 하드웨어는 추가 설정이 필요할 수 있습니다.
필요한 최소 사양
Nextcloud와 웹사이트를 함께 운영하기 위한 권장 사양:
CPU: 듀얼 코어 이상
RAM: 최소 2GB (4GB 이상 권장)
저장공간: 최소 20GB (데이터 용량에 따라 추가)
네트워크: 유선 또는 무선 연결
1부: 기본 환경 준비
시스템 업데이트
서버 설치 후 가장 먼저 할 일은 시스템 업데이트입니다.
sudo apt update
sudo apt upgrade -y필수 패키지 설치
웹 서버 운영에 필요한 기본 패키지들을 설치합니다.
sudo apt install -y apache2 mariadb-server php php-mysql \
php-gd php-curl php-zip php-xml php-mbstring php-intl \
php-imagick php-bcmath php-gmp unzip wget주요 패키지 설명:
apache2: 웹 서버mariadb-server: 데이터베이스php: PHP 런타임 및 Nextcloud 필수 모듈들
2부: 데이터베이스 설정
MariaDB 보안 설정
MariaDB를 처음 설치하면 보안 설정을 해야 합니다.
sudo mysql_secure_installation설정 중 물어보는 질문들:
root 비밀번호 설정: Y (새 비밀번호 입력)
익명 사용자 제거: Y
원격 root 로그인 차단: Y
test 데이터베이스 제거: Y
권한 테이블 재로드: Y
Nextcloud용 데이터베이스 생성
sudo mysql -u root -pMariaDB 프롬프트에서 다음 명령어를 실행합니다:
CREATE DATABASE nextcloud;
CREATE USER 'nextclouduser'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextclouduser'@'localhost';
FLUSH PRIVILEGES;
EXIT;💡 Tip:
your_password부분은 강력한 비밀번호로 변경하세요!
3부: Nextcloud 설치
Nextcloud 다운로드 및 압축 해제
cd /tmp
wget https://download.nextcloud.com/server/releases/latest.zip
sudo unzip latest.zip -d /var/www/html/권한 설정
Apache가 Nextcloud 파일에 접근할 수 있도록 권한을 설정합니다.
sudo chown -R www-data:www-data /var/www/html/nextcloud
sudo chmod -R 755 /var/www/html/nextcloudApache 설정 파일 생성
Nextcloud용 가상 호스트 설정을 만듭니다.
sudo nano /etc/apache2/sites-available/nextcloud.conf다음 내용을 입력합니다:
<VirtualHost *:80>
ServerName your-domain.com
DocumentRoot /var/www/html/nextcloud
<Directory /var/www/html/nextcloud>
Options +FollowSymlinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/nextcloud_error.log
CustomLog ${APACHE_LOG_DIR}/nextcloud_access.log combined
</VirtualHost>📝 참고:
your-domain.com을 실제 도메인으로 변경하세요.
Apache 모듈 활성화 및 재시작
sudo a2ensite nextcloud.conf
sudo a2enmod rewrite headers env dir mime
sudo systemctl restart apache24부: Nextcloud 웹 설치 완료
브라우저에서 http://your-domain.com으로 접속하면 Nextcloud 설치 페이지가 나타납니다.
입력할 정보:
관리자 계정명과 비밀번호 생성
데이터 폴더:
/var/www/html/nextcloud/data(기본값 사용)데이터베이스 정보:
데이터베이스 사용자:
nextclouduser데이터베이스 비밀번호: 앞서 설정한 비밀번호
데이터베이스 이름:
nextcloud데이터베이스 호스트:
localhost
설치 완료 버튼을 클릭하면 몇 분 후 Nextcloud가 실행됩니다!
5부: 홈페이지 추가하기
Nextcloud와 별도로 메인 홈페이지를 추가해봅시다.
기본 사이트 설정
sudo nano /etc/apache2/sites-available/000-default.conf다음과 같이 수정합니다:
<VirtualHost *:80>
ServerName xxx.xxx.xxx.xxx
DocumentRoot /var/www/html/homepage
<Directory /var/www/html/homepage>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>홈페이지 디렉토리 생성 및 HTML 파일 작성
sudo mkdir -p /var/www/html/homepage
sudo nano /var/www/html/homepage/index.html간단한 HTML 예제:
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>나의 홈페이지</title>
<style>
body {
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
margin: 0;
padding: 0;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
min-height: 100vh;
display: flex;
justify-content: center;
align-items: center;
}
.container {
background: white;
padding: 3rem;
border-radius: 15px;
box-shadow: 0 10px 40px rgba(0,0,0,0.2);
text-align: center;
max-width: 600px;
}
h1 {
color: #333;
margin-bottom: 1rem;
}
p {
color: #666;
line-height: 1.6;
}
.links {
margin-top: 2rem;
}
.links a {
display: inline-block;
margin: 0.5rem;
padding: 0.75rem 1.5rem;
background: #667eea;
color: white;
text-decoration: none;
border-radius: 5px;
transition: background 0.3s;
}
.links a:hover {
background: #764ba2;
}
</style>
</head>
<body>
<div class="container">
<h1>🚀 나의 서버에 오신 것을 환영합니다!</h1>
<p>이 서버는 Ubuntu Server에서 운영되고 있으며,<br>
Nextcloud와 웹사이트를 함께 호스팅하고 있습니다.</p>
<div class="links">
<a href="/nextcloud">☁️ Nextcloud 접속</a>
<a href="#">📧 연락하기</a>
</div>
</div>
</body>
</html>권한 설정 및 Apache 재시작
sudo chown -R www-data:www-data /var/www/html/homepage
sudo chmod -R 755 /var/www/html/homepage
sudo systemctl restart apache26부: 접속 테스트
이제 다음과 같이 접속할 수 있습니다:
메인 홈페이지:
http://서버IP주소Nextcloud:
http://도메인주소또는http://서버IP주소/nextcloud
추가 팁
PHP 메모리 제한 늘리기
대용량 파일 업로드를 위해 PHP 설정을 조정합니다.
sudo nano /etc/php/8.1/apache2/php.ini다음 항목들을 찾아 수정:
memory_limit = 512M
upload_max_filesize = 500M
post_max_size = 500M
max_execution_time = 300⚠️ 주의: PHP 버전은 시스템에 따라 다를 수 있습니다.
php -v로 확인하세요.
방화벽 설정
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enableSSL 인증서 설치 (Let's Encrypt)
무료 SSL 인증서로 보안을 강화할 수 있습니다.
sudo apt install certbot python3-certbot-apache
sudo certbot --apache -d your-domain.com마무리
축하합니다! 🎉 이제 하나의 Ubuntu Server에서 Nextcloud와 개인 홈페이지를 동시에 운영할 수 있게 되었습니다.
이 구성의 장점:
💰 비용 절감 (하나의 서버로 두 가지 서비스)
🔒 데이터 소유권 확보
🛠️ 높은 커스터마이징 자유도
📚 시스템 관리 학습 기회
정기적인 백업과 업데이트를 잊지 마세요!
관련 글:
Nextcloud 최적화 가이드
Apache 성능 튜닝하기
서버 보안 체크리스트
댓글 없음:
댓글 쓰기