서버 설정 · 4 min read · Jan 23, 2026
CentOS 6.5에서 SSL 및 Nginx로 ownCloud 설치하기
CentOS 6.5에서 SSL 및 Nginx로 ownCloud 설치하기
버전: 3.0
저자: Aaron
CentOS는 많은 패키지를 업그레이드했으며, 제가 1년 전에 작성한 게시물은 더 이상 CentOS 6.5의 최신 업데이트에서 작동하지 않습니다.
저는 조사해보았고, 이것이 2014년에 nginx, postgresql 및 ssl로 centos에 owncloud를 설치하는 방법에 대한 첫 번째 튜토리얼이 될 것 같습니다. 요즘 nginx로 CentOS와 owncloud 설치를 찾기 힘들 것입니다. 대부분의 사람들은 간단한 문제를 해결하는 방법을 모르기 때문입니다.
제 서버가 영향을 받았고, 이것이 오늘 이 게시물을 작성하게 된 이유입니다.
EPEL 및 CentOS 저장소의 패키지는 구식이며, nginx, postgresql 및 owncloud는 조금 더 최신 패키지를 요구합니다. 당신은 파일에 접근하지 못하고 로그인 페이지에만 머물게 될 것이며, 무슨 일이 일어났는지 스스로에게 물어보게 될 것입니다. 로그 파일은 문제가 어디에서 오는지 보여주지 않으며 owncloud 자체도 마찬가지입니다.
owncloud 요구 사항은
PostgreSQL >= 9.0, 하지만 EPEL에는 8.8이 있으며, 최소 php 5.3.3이 필요하지만 해당 버전에서는 작동하지 않습니다. 또한 이러한 최신 패키지는 최신 안정적인 nginx 버전을 요구합니다.
우리가 해야 할 첫 번째 일은 모든 mysql 라이브러리를 제거하는 것입니다.
yum remove mysql* mysql-server mysql-devel mysql-libs일반적으로, 우리는 epel, remi 및 새로운 패키지인 최신 postgresql과 같은 제3자 저장소를 설치할 것입니다.
rpm -ivh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpmrpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpmrpm -ivh http://yum.postgresql.org/9.3/redhat/rhel-6-i386/pgdg-centos93-9.3-1.noarch.rpmepel 저장소를 편집하고 상단이 enabled=1인지 확인합니다.
vi /etc/yum.repos.d/epel.reporemi 저장소도 동일하게 편집하되, php 버전 5.6을 활성화해야 합니다.
vi /etc/yum.repos.d/remi.repo

nginx 저장소 구성 파일을 생성합니다.
vi /etc/yum.repos.d/nginx.repo그리고 다음을 추가합니다:
[nginx] name=nginx repo baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck=0 enabled=1
CentOS 서버를 업데이트하여 이러한 제3자 저장소를 추가합니다.
yum updateowncloud 요구 사항을 충족하기 위해 다음 패키지를 설치합니다:
yum install nginx postgresql93 postgresql93-libs postgresql93-server wget php-fpm php-gd php-ldap php-pear php-xml php-xmlrpc php-magickwand php-magpierss php-mbstring php-mcrypt php-shout php-snmp php-soap php-tidy php-pgsql php-pdoPostgreSQL을 시작하고, nginx를 임시로 시작한 후 chkconfig로 시스템 시작 서비스에 추가합니다.
service postgresql-9.3 initdb
service postgresql-9.3 start
chkconfig postgresql-9.3 on
service nginx start
chkconfig nginx on
service nginx stop새 PostgreSQL 사용자와 데이터베이스를 생성합니다.
su - -c "psql" postgresCREATE USER cloud WITH PASSWORD 'userpass';
CREATE DATABASE cloudbase OWNER cloud ENCODING 'UTF8';
GRANT ALL PRIVILEGES ON DATABASE cloudbase TO cloud;
\q시간대를 확인하고 기억합니다.
cat /etc/sysconfig/clockphp 구성 파일을 편집합니다.
vi /etc/php.inipost_max_size = 2Gcgi.fix_pathinfo = 0upload_max_filesize = 2Gdate.timezone = "your/timezone"tcp 대신 unix 소켓을 사용하도록 php-fpm 구성 파일을 편집합니다.
vi /etc/php-fpm.d/www.conflisten이 /var/run/php-fpm/php-fpm.sock을 가리키지 않도록 합니다.
listen = 127.0.0.1:9000php-fpm 서비스를 시작합니다.
chkconfig php-fpm on
service php-fpm startpostgresql 구성 파일을 편집하여 비밀번호 로그인을 허용합니다:
vi /var/lib/pgsql/9.3/data/pg_hba.confident을 비밀번호로 변경합니다 - 다음 그림에서 커서를 주목하세요:

postgresql 데이터베이스를 재시작합니다 service postgresql-9.3 restart
SSL 인증서를 저장할 빈 폴더를 생성합니다.
cd /etc/nginx
mkdir -p certapache 가상 호스트에 익숙하다면, 다음에 생성해야 할 파일은 바로 그것입니다.
cd conf.dvi cloud.confupstream php-handler {
server 127.0.0.1:9000;
#server unix:/var/run/php5-fpm.sock;
}
server {
listen 80;
server_name 10.10.10.110; # 도메인 이름이나 내부 서버 IP로 교체
return 301 https://$server_name$request_uri; # https 강제
}
server {
listen 443 ssl;
server_name 10.10.10.110; # 도메인 이름이나 내부 서버 IP로 교체
ssl_certificate /etc/nginx/cert/server.crt;
ssl_certificate_key /etc/nginx/cert/server.key;
# 설치의 루트 경로
root /var/www/owncloud/;
client_max_body_size 10G; # 최대 업로드 크기 설정
fastcgi_buffers 64 4K;
rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;
rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;
rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;
index index.php;
error_page 403 /core/templates/403.php;
error_page 404 /core/templates/404.php;
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location ~ ^/(data|config|\.ht|db_structure\.xml|README) {
deny all;
}
location / {
# 다음 두 규칙은 webfinger와 함께 필요합니다.
rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;
rewrite ^/.well-known/carddav /remote.php/carddav/ redirect;
rewrite ^/.well-known/caldav /remote.php/caldav/ redirect;
rewrite ^(/core/doc/[^\/]+/)$ $1/index.html;
try_files $uri $uri/ index.php;
}
location ~ ^(.+?\.php)(/.*)?$ {
try_files $1 = 404;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$1;
fastcgi_param PATH_INFO $2;
fastcgi_param HTTPS on;
fastcgi_pass php-handler;
}
# 선택 사항: 정적 자산에 긴 EXPIRES 헤더 설정
location ~* ^.+\.(jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
expires 30d;
# 선택 사항: 자산에 대한 접근 로그 기록 안 함
access_log off;
}
}
저는 이 nginx 구성 파일을 제 웹사이트에 업로드했으므로, 수동으로 작성하는 대신 wget http://linux.sytes.net/img/nginx1-6.conf.txt를 입력하고 cloud.conf와 같은 이름으로 바꾸세요.
위의 nginx “가상 호스트”에서 지정한 대로, 우리의 ownCloud 서버는 SSL을 사용할 것이므로, 인증서를 생성해봅시다.
cd ..
cd cert
openssl req -x509 -nodes -sha384 -days 3650 -newkey rsa:4096 -keyout server.key -out server.crt
chmod 600 server.key
chmod 600 server.csr다음으로, owncloud 아카이브를 다운로드하고 추출한 후 owncloud 폴더에 대한 권한을 설정합니다. 개발 버전의 owncloud를 다운로드할 것입니다.
cd /var/www
wget http://download.owncloud.org/community/daily/owncloud-daily-master.tar.bz2
tar xjf owncloud-daily-master.tar.bz2
mkdir -p owncloud/data
chmod 770 owncloud/data
chmod 777 owncloud/config/
chown -R root:apache owncloud
rm -rf owncloud-daily-master.tar.bz2서버 포트 80 및 443에 대한 수신 tcp 연결을 허용합니다. 당신이나 다른 사람이 서버 내부 IP를 호출하면 https://yourserverinternalip로 리디렉션됩니다. 이는 이전에 nginx “가상 호스트”에서 지정했기 때문입니다.
iptables -I INPUT 4 -p tcp -d 10.10.10.110 --dport 80 -j ACCEPT
iptables -I INPUT 4 -p tcp -d 10.10.10.110 --dport 443 -j ACCEPTservice iptables save
service iptables restart마지막으로 PostgreSQL을 재시작하고, 새로운 구성으로 nginx를 시작합니다:
service postgresql-9.3 restart
service nginx start이제 모든 것이 완료되었습니다. 브라우저를 열고 서버 IP를 입력하세요. 원하는 로그인 이름과 비밀번호를 선택하세요.

새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.