CentOS7 + nginx + mariaDB로 ownCloud 설치 ~ Dropbox 연계까지 ~
개요
VPS에 ownCloud를 도입했을 때의 절차 비망록.
Dropbox가 기기 수에 제한을 가했기 때문에 매우 사용하기 어려워졌기 때문에 마이그레이션했다. (과금해도 되지만, 별도로 1TB도 필요 없다)
통상 ownCloud에서는 apache를 이용하는 경우가 많지만, 이번은 원래 도입이 끝난 nginx를 이용해 인스톨을 실시했다.
또, ownCloud를 wget로 패키지를 다운로드하는 것이 아니라, 리포지토리를 등록해 dnf로부터 인스톨했다.
환경·구성
미카카계의 초저렴 VPS.
[puri@gbgb ~]$ cat /etc/redhat-release
CentOS Linux release 7.7.1908 (Core)
SSL 인증서는 이전에 Let's Encrypt에서 취득했습니다. 또한 방화벽 설정도 이미 설정되었습니다.
필요한 패키지
미카카계의 초저렴 VPS.
[puri@gbgb ~]$ cat /etc/redhat-release
CentOS Linux release 7.7.1908 (Core)
SSL 인증서는 이전에 Let's Encrypt에서 취득했습니다. 또한 방화벽 설정도 이미 설정되었습니다.
필요한 패키지
yum의 후계. ownCloud를 설치하는 데 필요합니다.
yum -y install wget
yum -y install epel-release
yum -y install dnf
참고
ownCloud 동작에는 PHP5.6 이상이 필요.
CentOS에서 보통 yum하면 PHP5.4가 설치되므로 remi 리포지토리를 추가해야합니다.
// remiリポジトリ追加
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
yum --enablerepo=remi-php71 install php \
php-dom \
php-fpm \
php-gd \
php-mbstring \
php-mysqlnd \
php-pdo \
php-pdo_mysql \
php-pecl-zip \
php-intl
상세 생략
owncloud 설치
공식 사이트 을 참고로 인스톨 한다.
pm --import https://download.owncloud.org/download/repositories/production/CentOS_7/repodata/repomd.xml.key
dnf config-manager --add-repo http://download.owncloud.org/download/repositories/production/CentOS_7/ce:stable.repo
dnf clean all
dnf install owncloud-files; dnf upgrade owncloud-files
이상의 순서로, /var/www/html/owncloud
에 여러 개의 파일이 배치된다.
PHP 설정 파일 편집
다음 두 파일을 다시 작성해야 합니다. 이 사이트 을 참고했다.
pm --import https://download.owncloud.org/download/repositories/production/CentOS_7/repodata/repomd.xml.key
dnf config-manager --add-repo http://download.owncloud.org/download/repositories/production/CentOS_7/ce:stable.repo
dnf clean all
dnf install owncloud-files; dnf upgrade owncloud-files
다음 두 파일을 다시 작성해야 합니다. 이 사이트 을 참고했다.
/etc/php.ini
/etc/php-fpm.d/www.conf
또한 다음 디렉토리의 소유 그룹을
apache
에서 nginx
로 변경합니다.chown -R root:nginx /var/lib/php/session
nginx 구성 파일 편집
/etc/nginx/nginx.conf
는 http 연결시 https 연결로 리디렉션하도록 설정되었습니다.
덧붙여 Dropbox와 제휴할 때는 https가 필수.
/etc/nginx/nginx.conf[puri@gbgb ~]$ cat /etc/nginx/nginx.conf
# 省略
http {
# 省略
# 下記設定でリダイレクト
server {
server_name www.example.com;
return 301 https://www.example.com$request_uri;
}
}
/etc/nginx/conf.d/owncloud.conf
에서 owncloud 관련 설정을 한다.
/etc/nginx/conf.d/owncloud.conf[puri@gbgb ~]$ cat /etc/nginx/conf.d/owncloud.conf
upstream php-handler {
#server 127.0.0.1:9000;
# UNIXソケットファイルを指定して、処理をphp-fpmへ転送する
server unix:/var/run/php-fpm/php-fpm.sock;
}
server {
listen 443 ssl http2;
ssl_certificate "/etc/letsencrypt/live/<domain>/fullchain.pem";
ssl_certificate_key "/etc/letsencrypt/live/<domain>/privkey.pem";
# ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 10m;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;
#charset koi8-r;
#access_log /var/log/nginx/log/host.access.log main;
# rootに以下のパスを指定することでwww.example.com/owncloudでowncloudにアクセスできる
root /var/www/html/;
client_max_body_size 5G;
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 ~ ^/(?:\.htaccess|data|config|db_structure\.xml|README) {
deny all;
}
location / {
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(?:$|/) {
root /var/www/html;
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_pass php-handler;
include fastcgi_params;
}
# dataディレクトリにユーザのデータが保存される。リモートからのアクセスを禁止するか、ドキュメントルートの外に配置する。
location /owncloud/data/ {
allow 127.0.0.1;
deny all;
}
}
SELinux 설정
SELinux가 활성화되면 ownCloud가 디렉토리에 액세스하지 못하고 제대로 작동하지 않을 수 있습니다.
SELinux를 무효로 해 운용해도 되지만, 시큐리티를 고려해 SELinux의 문맥을 변경해 운용하는 것도 가능. 그 경우, Redhat의 SELinux 를 참고로 포트, 디렉토리의 문맥을 변경한다.
적어도, 이하의 디렉토리에는 기입을 허가하는 문맥이 필요.
[puri@gbgb owncloud]$ pwd
/var/www/html/owncloud
chcon -R -t httpd_sys_rw_content_t config/
chcon -R -t httpd_sys_rw_content_t apps/
chcon -R -t httpd_sys_rw_content_t apps-external/
서비스 시작, MariaDB 설정
방금 전 사이트 과 같이 설정한다.
mariaDB는 가네 모리 마리아 느낌이 좋다, 귀엽다.
Dropbox와의 연동 설정
Dropbox 측 설정
App key와 App secret을 가져옵니다. 또한 Redirect URIs 설정이 필요합니다.
Dropbox 개발자 페이지로 이동하여 'Create app'을 클릭하십시오. 여러분의 설정을 실시해, app를 작성한다.
만들고 다음 페이지로 전환하면 Redirect URIs 열이 있으므로,https://www.example.com/owncloud/index.php/settings/admin?sectionid=storage
를 입력합니다.
ownCloud 측 설정
왼쪽 상단의 마켓을 클릭합니다.
스토리지 카테고리를 선택하고 그 중에서 'External Storage: Dropbox'를 선택하여 설치합니다(Dropbox 로고가 표시되는 것).
App key와 App Secret을 입력하는 란이 있으므로, 방금전의 Dropbox 개발자 페이지의 그것을 copipe한다.
마지막으로 Dropbox의 인증 페이지로 날아가 허가하면 연계된다.
요약
현명한 사람은 Dropbox의 장치 수 제한의 관계로 무엇인가 알아차리는 것이 아닐까요? 꼭 여러분도 ownCloud를 세웁시다.
Reference
이 문제에 관하여(CentOS7 + nginx + mariaDB로 ownCloud 설치 ~ Dropbox 연계까지 ~), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/gbgb-ojisan/items/4921caf9d8f626c7b331
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
[puri@gbgb ~]$ cat /etc/nginx/nginx.conf
# 省略
http {
# 省略
# 下記設定でリダイレクト
server {
server_name www.example.com;
return 301 https://www.example.com$request_uri;
}
}
[puri@gbgb ~]$ cat /etc/nginx/conf.d/owncloud.conf
upstream php-handler {
#server 127.0.0.1:9000;
# UNIXソケットファイルを指定して、処理をphp-fpmへ転送する
server unix:/var/run/php-fpm/php-fpm.sock;
}
server {
listen 443 ssl http2;
ssl_certificate "/etc/letsencrypt/live/<domain>/fullchain.pem";
ssl_certificate_key "/etc/letsencrypt/live/<domain>/privkey.pem";
# ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 10m;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;
#charset koi8-r;
#access_log /var/log/nginx/log/host.access.log main;
# rootに以下のパスを指定することでwww.example.com/owncloudでowncloudにアクセスできる
root /var/www/html/;
client_max_body_size 5G;
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 ~ ^/(?:\.htaccess|data|config|db_structure\.xml|README) {
deny all;
}
location / {
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(?:$|/) {
root /var/www/html;
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_pass php-handler;
include fastcgi_params;
}
# dataディレクトリにユーザのデータが保存される。リモートからのアクセスを禁止するか、ドキュメントルートの外に配置する。
location /owncloud/data/ {
allow 127.0.0.1;
deny all;
}
}
SELinux가 활성화되면 ownCloud가 디렉토리에 액세스하지 못하고 제대로 작동하지 않을 수 있습니다.
SELinux를 무효로 해 운용해도 되지만, 시큐리티를 고려해 SELinux의 문맥을 변경해 운용하는 것도 가능. 그 경우, Redhat의 SELinux 를 참고로 포트, 디렉토리의 문맥을 변경한다.
적어도, 이하의 디렉토리에는 기입을 허가하는 문맥이 필요.
[puri@gbgb owncloud]$ pwd
/var/www/html/owncloud
chcon -R -t httpd_sys_rw_content_t config/
chcon -R -t httpd_sys_rw_content_t apps/
chcon -R -t httpd_sys_rw_content_t apps-external/
서비스 시작, MariaDB 설정
방금 전 사이트 과 같이 설정한다.
mariaDB는 가네 모리 마리아 느낌이 좋다, 귀엽다.
Dropbox와의 연동 설정
Dropbox 측 설정
App key와 App secret을 가져옵니다. 또한 Redirect URIs 설정이 필요합니다.
Dropbox 개발자 페이지로 이동하여 'Create app'을 클릭하십시오. 여러분의 설정을 실시해, app를 작성한다.
만들고 다음 페이지로 전환하면 Redirect URIs 열이 있으므로,https://www.example.com/owncloud/index.php/settings/admin?sectionid=storage
를 입력합니다.
ownCloud 측 설정
왼쪽 상단의 마켓을 클릭합니다.
스토리지 카테고리를 선택하고 그 중에서 'External Storage: Dropbox'를 선택하여 설치합니다(Dropbox 로고가 표시되는 것).
App key와 App Secret을 입력하는 란이 있으므로, 방금전의 Dropbox 개발자 페이지의 그것을 copipe한다.
마지막으로 Dropbox의 인증 페이지로 날아가 허가하면 연계된다.
요약
현명한 사람은 Dropbox의 장치 수 제한의 관계로 무엇인가 알아차리는 것이 아닐까요? 꼭 여러분도 ownCloud를 세웁시다.
Reference
이 문제에 관하여(CentOS7 + nginx + mariaDB로 ownCloud 설치 ~ Dropbox 연계까지 ~), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/gbgb-ojisan/items/4921caf9d8f626c7b331
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Dropbox 측 설정
App key와 App secret을 가져옵니다. 또한 Redirect URIs 설정이 필요합니다.
Dropbox 개발자 페이지로 이동하여 'Create app'을 클릭하십시오. 여러분의 설정을 실시해, app를 작성한다.
만들고 다음 페이지로 전환하면 Redirect URIs 열이 있으므로,
https://www.example.com/owncloud/index.php/settings/admin?sectionid=storage
를 입력합니다.ownCloud 측 설정
왼쪽 상단의 마켓을 클릭합니다.
스토리지 카테고리를 선택하고 그 중에서 'External Storage: Dropbox'를 선택하여 설치합니다(Dropbox 로고가 표시되는 것).
App key와 App Secret을 입력하는 란이 있으므로, 방금전의 Dropbox 개발자 페이지의 그것을 copipe한다.
마지막으로 Dropbox의 인증 페이지로 날아가 허가하면 연계된다.
요약
현명한 사람은 Dropbox의 장치 수 제한의 관계로 무엇인가 알아차리는 것이 아닐까요? 꼭 여러분도 ownCloud를 세웁시다.
Reference
이 문제에 관하여(CentOS7 + nginx + mariaDB로 ownCloud 설치 ~ Dropbox 연계까지 ~), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/gbgb-ojisan/items/4921caf9d8f626c7b331
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(CentOS7 + nginx + mariaDB로 ownCloud 설치 ~ Dropbox 연계까지 ~), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/gbgb-ojisan/items/4921caf9d8f626c7b331텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)