본문 바로가기

How to/컴퓨터

웹서버 나만의 NAS (8) EPM 설정 및 실행

EPM 설정

http://pyd.io/nginx


Nginx

$ sudo vim /etc/nginx/nginx.conf

user apache; worker_processes auto;


$ sudo vim /etc/nginx/conf.d/pydio.conf

server {
    listen 55555;

    root /usr/share/pydio;

    index index.php;

    server_name localhost;

    keepalive_requests    10;
    keepalive_timeout     60 60;

    access_log /var/log/nginx/access_pydio6.log;
    error_log /var/log/nginx/error_pydio6.log;

    client_max_body_size 15M;
    client_body_buffer_size 128k;

    rewrite ^/dashboard|^/settings|^/welcome|^/ws- /index.php last;

    if ( !-e $request_filename ) {
        # WebDAV Rewrites
        rewrite ^/shares /dav.php last;
        # Sync client
        rewrite ^/api /rest.php last;
        # External users
        rewrite ^/user ./index.php?get_action=user_access_point last;
        # Public shares
        rewrite ^/data/public/([a-zA-Z0-9_-]+)\.php$ /data/public/share.php?hash=$1?;
    }

    rewrite ^/data/public/([a-zA-Z0-9_-]+)--([a-z]+)$ /data/public/share.php?hash=$1&lang=$2?;
    rewrite ^/data/public/([a-zA-Z0-9_-]+)$ /data/public/share.php?hash=$1?;

    # Prevent Clickjacking
    add_header X-Frame-Options "SAMEORIGIN";

    # Only allow these request methods and do not accept DELETE, SEARCH and other methods
    if ( $request_method !~ ^(GET|HEAD|POST|PROPFIND|OPTIONS)$ ) {
        return 444;
    }

    location ~* ^/(?:\.|conf|data/(?:files|personal|logs|plugins|tmp|cache)|plugins/editor.zoho/agent/files) {
        deny all;
    }

    # php setting
    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_pass unix:/var/run/php7-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    # Enables Caching
    location ~* \.(ico|css|js)$ {
        expires 7d;
        add_header Pragma public;
        add_header Cache-Control "public, must-revalidate, proxy-revalidate";
    } #deny access to .htaccess files.

location ~ /\.ht {         deny all;

}

}


Php


    nginx와 php를 연동시켜주는 php-fpm를 추가로 설치해준다.

$ sudo yum install php-fpm


php설정에 들어가 아래와 같이 변경한다.

$ sudo vim /etc/opt/remi/php70/php.ini

file_uploads = On post_max_size = 20G upload_max_filesize = 20G max_file_uploads = 20000 output_buffering = Off


php-fpm설정에 들어가 아래와 같이 변경한다.

$ sudo vim /etc/opt/remi/php70/php-fpm.d/www.conf
;listen = 127.0.0.1:9000
listen = /var/run/php7-fpm.sock

listen.owner = apache
listen.group = apache
listen.mode = 0660


mariaDB 설정

우선 mariaDB의 root 비밀번호를 설정한다.

sudo mysqladmin password


이제 mariaDB에 들어가 pydio와 연동할 db와 user를 생성하고 권한을 준다. 그전에 원하는 비밀번호는 꼭 작은 따옴표 ' ' 안에 적어야함을 주의한다.

$ mysql -u root -p

MariaDB [(none)]> use mysql;

MariaDB [mysql]> create database pydiodb; MariaDB [mysql]> create user pydio@localhost identified by '원하는비밀번호'; MariaDB [mysql]> grant all privileges on pydiodb.* to pydio@localhost identified by '원하는비밀번호' with grant option; MariaDB [mysql]> exit


pydio접속 및 설치

     우선 EPM을 재시작한다.

$ sudo systemctl reload nginx $ sudo systemctl restart nginx $ sudo systemctl restart mariadb $ sudo systemctl restart php-fpm


SELinux 설정

https://pydio.com/en/docs/kb/security/pydio-security-enhanced-linux-selinux

$ sudo semanage fcontext -a -t httpd_cache_t "/var/cache/pydio(/.*)?"
$ sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/lib/pydio(/.*)?"
$ sudo semanage fcontext -a -t httpd_sys_content_t "/etc/pydio(/.*)?"
$ sudo semanage fcontext -a -t httpd_sys_script_exec_t "/usr/share/pydio(/.*)?"
$ sudo restorecon -Rv /var/lib/pydio 
$ sudo restorecon -Rv /etc/pydio
$ sudo restorecon -Rv /usr/share/pydio
$ sudo restorecon -Rv /var/cache/pydio


이제 웹브라우져에서 www.myurl.com:55555 혹은 IP-ADDRESS:55555 로 접속한다. 그럼 pydio설치에 필요한 요소들이 다 설치되어있는지 알려 줄것이다. 필자의 경우 ssl을 제외한 모든것이 설치되어 있었고, 바로 pydio 설치에 돌입했다. 이제 별로 건드릴 요소는 없고, 아주 쉽고 간단하게 설치가 가능하다. DB연동에서 MySQL로 설정하고 DB를 pydio로 설정하고, 아까 위에 mariaDB설정에서 설정한 id인 pydio와 원하는 비밀번호를 입력하면 된다. 그럼 이제 마음것 이용하면 된다!