Jail/nas4free 에 owncloud 8 설치 – 이전

ownCloud는 인터넷기반 정보저장 기반을 구축하는 무료 소프트웨어로서 jail이 깔린 nas4free 에 설치하여 개인용 클라우드 저장장치를 구축할 수 있다. 여기서는 ownCloud를 jail on nas4free에 설치하는 방법을 설명한다.

1 . Webserver Nginx와 DB Mariadb100 그리고 php 설치

owncloud를 설치할 jail 의 JID 가 2라고 하자.

# jexec 2 csh

Jail에서 다음과 같은 명령으로 바이너리들을 설치한다.

# pkg upgrade
# pkg install nginx mariadb100-server php56 php56-extensions php56-bz2 php56-curl php56-exif php56-fileinfo php56-gd php56-mbstring php56-mcrypt php56-pdo_mysql php56-openssl php56-zip php56-zlib pecl-APCu pecl-intl

그리고 다음 명령을 수행하여 /etc/rc.conf 를 수정하여 준다.

# echo 'nginx_enable="YES"'  >> /etc/rc.conf
# echo 'php_fpm_enable="YES"'  >> /etc/rc.conf
# echo 'mysql_enable="YES"' >> /etc/rc.conf

nginx 의 세팅파일을 수정한다.

# mv /usr/local/etc/nginx/nginx.conf /usr/local/etc/nginx.conf.old
# vi /usr/local/etc/nginx/nginx.conf

nginx.conf에 다음 내용을 파일에 넣어준다. 이 설정에서는 https를 통해서 owncloud 서버에 접속하게 된다.

#user  nobody;
worker_processes  4;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include      mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush    on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;
    ssl_certificate /etc/ssl/nginx/owncloud.crt;
ssl_certificate_key /etc/ssl/nginx/owncloud.key;

    server {
    listen 443 ssl;
    root /usr/local/www;
    location = /robots.txt { allow all; access_log off; log_not_found off; }
    location = /favicon.ico { access_log off; log_not_found off; }
    location ^~ /owncloud {
        index index.php;
        try_files $uri $uri/ /index.php?$args;
        client_max_body_size 15G;
        location ~ ^/owncloud/(?:\.|data|config|db_structure\.xml|README) {
            deny all;
        }
        rewrite ^/owncloud/apps/([^/]+)/(.+\.(css|php))$ /owncloud/index.php?app
=$1&getfile=$2 last;
        rewrite ^/owncloud/remote/(.*)$ /owncloud/remote.php/$1 last;
        location ~ \.php/? {
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_pass unix:/var/run/php-fpm.sock;
            fastcgi_param PATH_INFO $fastcgi_path_info;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
        }
        location ~* \.(?:jpg|gif|ico|png|css|js|svg)$ {
            expires max; add_header Cache-Control public;
        }
    }
}

}

그리고 php.ini 를 수정하여 하래의 항목으로 변경하여 준다.

# cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini
# vi /usr/local/etc/php.ini
always_populate_raw_post_data = -1
date.timezone = Asia/Seoul
cgi.fix_pathinfo=0
upload_max_filesize = 512M
post_max_size = 512M

다음과 같은 명령으로 ssl용 키를 생성한다.

# mkdir /etc/ssl/nginx
# cd /etc/ssl/nginx
# openssl req -new -newkey rsa:2048 -nodes -keyout owncloud.key -out  owncloud.csr
# openssl req -new -nodes -out req.pem -keyout cert.pem
# openssl req -new -x509 -days 365 -key owncloud.key -out owncloud.crt

다음과 같이 php-fpm.conf 내의 항목을 수정해 준다.

vi /usr/local/etc/php-fpm.conf
listen = /var/run/php-fpm.sock
listen.owner = www
listen.group = www
env[PATH] = /usr/local/bin:/usr/bin:/bin

다음과 같이 MariaDB의 설정 파일을 수정해 준다.

vi /var/db/mysql/my.cnf
[server]
skip-networking
skip-name-resolve
expire_logs_days = 1
innodb_flush_method = O_DIRECT
skip-innodb_doublewrite
innodb_flush_log_at_trx_commit = 2
innodb_file_per_table

이제 nginx, php-fpm, mysql-server를 시작시킨다.

service nginx start && service php-fpm start && service mysql-server start

그리고 owncloud 용 데이타베이스를 생성시킨다. 먼저 root 사용자의 비밀번호를 설정한다.

/usr/local/bin/mysqladmin -u root password

아래의 명령어 수행은 데이타베이스의 보안을 강화하기 위해 추천.

mysql_secure_installation
mysql -u root -p 
    CREATE DATABASE owncloud;
    GRANT ALL PRIVILEGES ON owncloud.* TO 'oclouduser'@'localhost' IDENTIFIED BY 'ocpasswd';
    FLUSH PRIVILEGES;
    quit;

이제 owncloud를 설치한다.

cd /usr/local/www
fetch "http://download.owncloud.org/community/owncloud-8.0.2.tar.bz2"
tar jxf owncloud-*.tar.bz2 -C /usr/local/www
rm owncloud-*.tar.bz2
mkdir /mnt/ownCloud
chown -R www:www /usr/local/www/owncloud /mnt/ownCloud
crontab -u www -e

이제 owncloud 설정 파일을 아래와 같이 수정한다.

vi /usr/local/www/owncloud/config/config.php
'overwrite.cli.url' => 'http://165.132.63.87/owncloud',

선택 사항으로 다음과 같은 명령을 수행한다. (솔직히 왜 해야하는지 모르겠음.)

ln -s /usr/local/www/owncloud/robots.txt /usr/local/www

만약 owncloud에서 문서를 수정하거나 동영상을 보고 싶으면 다음의 같이 추가 파일을 설치한다.

pkg install libreoffice pecl-imagick
pkg install ffmpeg

이제 owncloud로 접속해보자. 웹 브라우저에서

https://(IP address of Owncloud)/owncloud

로 접속하고 owncloud 설정을 시작하자.

시작 시 DB 형태를 mysql/mariaDB 로, DB 이름을 owncloud 로, 사용자를 oclouduser, 비밀번호를 ocpassword 로 입력한다. 당연히 ocpassword 는 각자의 상황에 맞게 변경하여 사용한다.

참고문헌

1. [How-To] ownCloud using NGINX, PHP-FPM, and MySQL in FreeNAS

Jail/nas4free 에 owncloud 8 설치 – 이전

답글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.