OpenSUSE Leap 42.1에서 Nginx와 함께 ownCloud 9를 설치하는 방법
이 페이지에서
- 1단계 - SuSEfirewall2 설치
- 2단계 - Nginx 설치
- 3단계 - MariaDB 설치 및 구성
- 4단계 - PHP-FPM 설치 및 구성
- 5단계 - SSL 인증서 생성
- 6단계 - ownCloud 설치 및 구성
ownCloud는 PHP 프로그래밍 언어를 기반으로 하는 OpenSource 파일 공유 애플리케이션입니다. OwnCloud는 드롭박스, 메가 등과 같은 기능을 갖춘 모든 주요 모바일 및 데스크탑 플랫폼을 위한 멋진 웹 인터페이스 및 동기화 앱과 함께 자체 호스팅 파일 동기화 및 공유를 제공합니다. ownCloud를 사용하면 파일, 캘린더 및 연락처에 쉽게 액세스하고 동기화할 수 있습니다. 장치.
이 튜토리얼에서는 ownCloud로 자신만의 동기화 및 공유 서버 플랫폼을 만드는 방법을 안내합니다. 웹 서버로 Nginx, 데이터베이스로 MariaDB(MySQL 포크) 및 Linux OpenSUSE Leap 42.1에서 php에 대한 요청을 처리하기 위해 php-fpm과 함께 ownCloud를 설치합니다.
전제 조건
- OpenSUSE 도약 42.1
- 루트 권한\n
- zypper 명령 이해\n
1단계 - SuSEfirewall2 설치
SuSEfirewall은 "/etc/sysconfig/SuSEfirewall2" 파일에 구성을 저장하는 방화벽 스크립트입니다. SuSEfirewall2를 사용하면 "SuSEfirewall2" 파일을 편집하여 포트를 열 수 있습니다.
zypper 명령을 사용하여 SuSEfirewall2를 설치합니다.
zypper in SuSEfirewall2
방화벽이 설치되면 sysconfig 디렉토리로 이동하여 vim으로 "SuSEfirewall2" 구성을 편집합니다.
cd /etc/sysconfig/
vim SuSEfirewall2
253행으로 이동하여 사용하려는 모든 서비스의 포트를 추가하십시오. 이 단계에서는 ssh, http 및 https 포트를 추가합니다.
FW_SERVICES_EXT_TCP="22 80 443"
파일을 저장하고 편집기를 종료합니다.
다음으로 SuSEfirewall2를 시작하고 부팅 시 실행되도록 활성화합니다.
systemctl start SuSEfirewall2
systemctl enable SuSEfirewall2
이제 sshd 서비스를 다시 시작합니다.
systemctl restart sshd
SSH 서버 포트를 테스트하려면 telnet 명령을 사용하여 포트 22에 연결할 수 있습니다.
telnet 192.168.1.101 22
2단계 - Nginx 설치
Nginx는 메모리와 CPU 사용량이 적은 가벼운 웹 서버입니다. 우리는 자체 클라우드 설치를 위한 웹 서버로 nginx를 사용할 것입니다.
zypper 명령으로 nginx를 설치합니다.
zypper in nginx
nginx를 시작하고 systemctl 명령으로 부팅 시 실행되도록 활성화합니다.
systemctl start nginx
systemctl enable nginx
다음으로 index.html 파일을 추가하여 nginx가 작동하는지 테스트합니다.
echo "This is Nginx Page OpenSUSE Leap" > /srv/www/htdocs/index.html
이제 웹 브라우저에서 nginx 웹 서버에 액세스하거나 curl로 확인할 수 있습니다.
curl -I 192.168.1.101
curl 192.168.1.101
3단계 - MariaDB 설치 및 구성
MariaDB는 MySQL 데이터베이스의 OpenSource RDBMS 기반 포크입니다. 이 단계에서는 MariaDB를 설치하고 구성합니다. 그런 다음 ownCloud 설치를 위한 새 사용자 및 데이터베이스를 생성합니다.
아래 zypper 명령을 사용하여 MariaDB를 설치합니다.
zypper in mariadb mariadb-client
이제 MariaDB를 시작하고 시스템 시작에 추가하십시오.
systemctl start mysql
systemctl enable mysql
MariaDB가 시작되었으므로 이제 아래 명령어를 사용하여 MariaDB의 루트 비밀번호를 구성할 수 있습니다.
mysql_secure_installation
MariaDB/MySQL 암호를 설정합니다.
Enter current password for root (enter for none): PRESS ENTER
Set root password? [Y/n] Y
New password: TYPE YOUR PASSWORD
Re-enter new password: REPEAT PASSWORD
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Reload privilege tables now? [Y/n] Y
MariaDB 루트 암호가 구성되었습니다. 이제 MariaDB/MySQL 셸에 로그인하고 ownCloud를 위한 새 데이터베이스와 새 사용자를 생성할 수 있습니다.
MariaDB/MySQL 셸에 로그인합니다.
mysql -u root -p
TYPE your password
새 데이터베이스 "owncloud_db"와 비밀번호 "[email "로 새 사용자 "ownclouduser"를 만듭니다.
create database owncloud_db;
create user ';
flush privileges;
exit
ownCloud 설치를 위한 데이터베이스가 생성되었습니다.
4단계 - PHP-FPM 설치 및 구성
PHP-FPM(FastCGI Process Manager)은 방문자가 많은 사이트를 처리하기 위한 최신 FastCGI 대안입니다. PHP-FPM에는 고급 프로세스 관리 기능이 있으며 관리 및 구성이 쉽습니다.
이 단계에서는 php-fpm과 일부 PHP 확장 프로그램을 설치한 다음 php-fpm을 통해 php 파일 요청을 처리하도록 nginx 웹 서버를 구성합니다.
다음 "zypper in" 명령으로 php-fpm을 설치합니다.
zypper in php5-fpm php5-gd php5-mcrypt php5-mysql php5-pear php5-zip php5-curl php5-ldap php5-json
설치가 완료되면 php-fpm 디렉토리로 이동하여 기본 구성 파일을 복사합니다.
cd /etc/php5/fpm/
cp php-fpm.conf.default php-fpm.conf
vim 또는 nano 편집기로 php-fpm.conf 파일을 편집합니다.
vim php-fpm.conf
php-fpm 로그를 활성화하려면 32행의 주석을 제거하십시오. 나중에 PHP 스크립트에 오류가 있으면 \/var/log/\ 디렉토리에서 로그 파일을 찾을 수 있습니다.
error_log = log/php-fpm.log
프로세스의 유닉스 사용자/그룹에 대해 148 - 149행을 "nginx"로 변경합니다.
user = nginx
group = nginx
소켓 파일로 php-fpm을 실행하려면 159행의 값을 변경하십시오.
listen = /var/run/php-fpm.sock
170 - 172행의 값을 주석 해제하고 변경하여 유닉스 소켓의 권한을 설정하십시오.
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
파일을 저장하고 편집기를 종료합니다.
다음으로 cli 디렉토리에서 php.ini 파일을 편집합니다.
cd /etc/php5/cli/
vim php.ini
758행의 값을 주석 해제하고 변경하십시오.
cgi.fix_pathinfo=0
저장 및 종료.
php.ini 파일을 conf.d 디렉토리에 복사합니다:
cp php.ini /etc/php5/conf.d/
이제 PHP 세션 핸들러 경로를 구성하십시오. 이 튜토리얼에서는 nginx 사용자로 php-fpm을 실행하므로 nginx 사용자가 세션 디렉토리에 쓸 수 있는지 확인합니다. 1390행의 php.ini 파일에서 세션 경로 구성을 볼 수 있습니다.
session.save_path = "/var/lib/php5"
세션 디렉터리 "/var/lib/php5/"의 소유자를 변경하고 nginx 사용자를 디렉터리의 소유자로 만듭니다.
chown -R nginx:nginx /var/lib/php5/
다음으로 nginx 웹 서버에서 작동하도록 php-fpm을 구성합니다. 구성을 수정하기 전에 nginx 구성 디렉토리로 이동하여 nginx.conf 파일을 백업하세요.
cd /etc/nginx/
cp nginx.conf nginx.conf.backup
vim nginx.conf
65행에 다음 새 구성을 추가합니다. 이 구성은 모든 PHP 파일 요청을 처리합니다.
location ~ \.php$ {
root /srv/www/htdocs;
try_files $uri =404;
include /etc/nginx/fastcgi_params;
fastcgi_pass unix:/var/run/php-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
저장하고 종료한 다음 nginx 구성을 테스트하여 구성에 오류가 없는지 확인합니다.
nginx -t
오류가 없으면 아래와 같은 결과를 볼 수 있습니다.
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
이제 php-fpm을 시작하고 부팅 시 stat에 추가한 다음 nginx 서비스를 다시 시작합니다.
systemctl start php-fpm
systemctl enable php-fpm
systemctl restart nginx
Nginx 및 php-fpm이 구성되었으므로 웹 루트 디렉토리에 새 phpinfo() 파일을 생성하여 php 파일을 테스트할 수 있습니다.
cd /srv/www/htdocs/
echo "<?php phpinfo(); ?>" > info.php
브라우저를 열고 서버 IP를 방문하십시오.
또는 컬을 사용할 수 있습니다.
curl -I 192.168.1.101/info.php
5단계 - SSL 인증서 생성
보안 https 연결을 통해 ownCloud를 실행하는 것은 파일을 안전하게 비공개로 유지하는 데 매우 중요합니다. 자체 회사에서 ownCloud를 실행하는 경우 SSL 인증서를 구매하거나 무료 SSL 인증서를 원하는 경우 Lets-encrypt를 사용할 수 있습니다. 여기에서는 소위 "자체 서명" SSL 인증서를 생성합니다. 자체 서명 인증서의 암호화는 공식 인증서보다 낮지 않지만 서비스에 액세스할 때 브라우저에서 보안 경고를 수락해야 합니다. 처음으로.
새 "ssl" 디렉토리를 만들고 openssl 명령어로 인증서를 생성합니다.
cd /etc/nginx/
mkdir ssl; cd ssl/
openssl req -new -x509 -days 365 -nodes -out /etc/nginx/ssl/example-owncloud.crt -keyout /etc/nginx/ssl/example-owncloud.key
다음으로 키의 권한을 변경합니다.
chmod 600 example-owncloud.key
6단계 - ownCloud 설치 및 구성
이 단계에서는 ownCloud를 설치하고 ownCloud 도메인에 대한 새 nginx 가상 호스트를 구성합니다. 도메인 이름 "example-owncloud.co"로 owncloud를 설치하고 "/srv/www/owncloud/" 디렉토리에 웹 루트 파일을 설치합니다.
다운로드하기
"/srv/www/" 디렉토리로 이동하여 ownCloud 소스를 다운로드하고 압축을 풉니다.
cd /srv/www/
wget https://download.owncloud.org/community/owncloud-9.0.2.zip
unzip owncloud-9.0.2.zip
이제 owncloud 디렉터리 아래에 새 데이터 디렉터리를 생성하여 모든 사용자 데이터를 저장합니다. ownCloud 디렉터리의 소유자를 nginx 사용자로 변경합니다.
mkdir -p owncloud/data/
chown -R nginx:nginx owncloud/
ownCloud용 Nginx 가상 호스트 구성
nginx 디렉터리로 이동하여 가상 호스트 파일 구성을 위한 새 디렉터리를 만듭니다.
cd /etc/nginx/
mkdir vhosts.d/
vhosts.d 디렉터리로 이동하여 owncloud "example-owncloud.conf"에 대한 새 가상 호스트 파일을 만듭니다.
cd vhosts.d/
vim example-owncloud.conf
아래 구성을 붙여넣습니다.
upstream php-handler {
#server 127.0.0.1:9000;
server unix:/var/run/php-fpm.sock;
}
server {
listen 80;
server_name example-owncloud.co;
# enforce https
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name example-owncloud.co;
ssl_certificate /etc/nginx/ssl/example-owncloud.crt;
ssl_certificate_key /etc/nginx/ssl/example-owncloud.key;
# Path to the root of your installation
root /srv/www/owncloud/;
# set max upload size
client_max_body_size 10G;
fastcgi_buffers 64 4K;
# Disable gzip to avoid the removal of the ETag header
gzip off;
# Uncomment if your server is build with the ngx_pagespeed module
# This module is currently not supported.
#pagespeed off;
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 ~ ^/(?:\.htaccess|data|config|db_structure\.xml|README){
deny all;
}
location / {
# The following 2 rules are only needed with 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/ =404;
}
location ~ \.php(?:$|/) {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param HTTPS on;
fastcgi_pass php-handler;
fastcgi_intercept_errors on;
}
# Adding the cache control header for js and css files
# Make sure it is BELOW the location ~ \.php(?:$|/) { block
location ~* \.(?:css|js)$ {
add_header Cache-Control "public, max-age=7200";
# Add headers to serve security related headers
add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;";
add_header X-Content-Type-Options nosniff;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Robots-Tag none;
# Optional: Don't log access to assets
access_log off;
}
# Optional: Don't log access to other assets
location ~* \.(?:jpg|jpeg|gif|bmp|ico|png|swf)$ {
access_log off;
}
}
파일을 저장하고 편집기를 종료합니다.
nginx 구성을 테스트하고 모든 서비스를 다시 시작하는 것을 잊지 마십시오.
nginx -t
systemctl restart nginx
systemctl restart php-fpm
systemctl restart mysql
테스트
owncloud 도메인 방문:
example-owncloud.co
https 연결로 리디렉션됩니다.
그런 다음 관리 사용자 및 암호, 데이터베이스 이름, 사용자 및 암호를 입력하고 "설정 완료"를 클릭합니다.
잠시 기다리면 owncloud 파일 관리자가 표시됩니다.
OpenSUSE Leap 42.1에서 nginx 및 MariaDB와 함께 ownCloud 설치가 완료되었습니다.
참조
- https://linux-console.net/tutorial/how-to-install-owncloud-8-with-nginx-and-mariadb-on-centos-7/