概要
Amazon Lightsail にCentOS 7.x + Nginx + php-fpm + MariaDBの構成で、Owncloudをインストールしてみました。Nginx + php-fpm + MariaDBのインストール及び設定が終わっていることを前提で手順を作成しています
PHPの設定を変更
php.ini を編集して容量が大きいファイルをアップロードできるようします
$ sudo vi /etc/php.ini post_max_size = 10G upload_max_filesize = 10G
Nginx と php-fpm を連携できるように「/etc/php-fpm.d/www.conf」の user、group、listen、listen.owner 、listen.group を変更します。listen.owner 、listen.groupを未設定だとunixソケットがrootとなりNginx と php-fpm を連携できないためです
$ sudo vi /etc/php-fpm.d/www.conf user = nginx group = nginx listen = /var/run/php-fpm/php-fpm.sock listen.owner = nginx listen.group = nginx
私の環境では、/var/lib/php/session/ の所有者をroot:apcacheとなっていたので、nginxに統一します
$ ls -l /var/lib/php/ total 0 drwxrwx--- 2 root apache 6 Mar 6 02:44 apcache drwxrwx--- 2 root apache 6 Mar 6 02:44 session drwxrwx--- 2 root apache 6 Mar 6 02:44 wsdlcache # nginxグループに変更 $ sudo chown -R root:nginx /var/lib/php/session/ $ ls -l /var/lib/php/ total 0 drwxrwx--- 2 root apache 6 Mar 6 02:44 opcache drwxrwx--- 2 root nginx 6 Mar 6 02:44 session drwxrwx--- 2 root apache 6 Mar 6 02:44 wsdlcache
nginxの設定変更
owncloudのログディレクトリ作成と、無料証明書のSSL発行する為に80番(HTTP)でowncloudのヴァーチャルホストを起動します
owncloud用のログディレクトリを作成します。ディレクトリ構成は以下のようにしています
- コンテンツディレクトリ:/var/www/vhosts/owncloud/html
- ログディレクトリ:/var/www/vhosts/owncloud/log
# コンテンツディレクトリ $ sudo mkdir -p /var/www/vhosts/owncloud/html # ログディレクトリ $ sudo mkdir /var/www/vhosts/owncloud/log # 所有者をnginxに変更します # chown -R nginx:nginx /var/www/vhosts/owncloud
無料証明書のSSL(Let’s Encrypt)発行のため、owncloudで使用するドメインでNginxが起動できるように「/etc/nginx/conf.d/owncloud.conf」を新規作成します
$ sudo vi /etc/nginx/conf.d/owncloud.conf
server {
listen 80;
server_name cloud.example.com;
root /var/www/vhosts/owncloud/html;
}
$ sudo systemctl start nginx
無料証明書のSSL(Let’s Encrypt)発行します
$ sudo cd /usr/local/certbot $ sudo systemctl stop nginx $ sudo ./certbot-auto certonly --webroot -w /var/www/vhosts/owncloud/html -d cloud.example.com -m [メールアドレス] --agree-tos $ sudo ls /etc/letsencrypt/live/cloud.example.com cert.pem chain.pem fullchain.pem privkey.pem README
SSL証明書を発行したら、「/etc/nginx/conf.d/owncloud.conf」にSSL証明書の設定とSSL、Owncloud関連をします。常時SSL化するのでHTTPのアクセスはHTTPSに転送するようにします
$ sudo vi /etc/nginx/conf.d/owncloud.conf
# HTTPのアクセスはHTTPSに転送します
server {
listen 80;
server_name cloud.examle.com;
return 301 https://cloud.examle.com$request_uri;
}
server {
listen 443 ssl;
server_name cloud.examle.com;
root /var/www/vhosts/owncloud/html;
index index.php;
access_log /var/www/vhosts/owncloud/log/access_ssl.log main;
error_log /var/www/vhosts/owncloud/log/error_ssl.log;
ssl_certificate "/etc/letsencrypt/live/cloud.example.com/fullchain.pem";
ssl_certificate_key "/etc/letsencrypt/live/cloud.example.com/privkey.pem";
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers 'kEECDH+ECDSA+AES128 kEECDH+ECDSA+AES256 kEECDH+AES128 kEECDH+AES256 kEDH+AES128 kEDH+AES256 DES-CBC3-SHA +SHA !DH !aNULL !eNULL !LOW !kECDH !DSS !MD5 !EXP !PSK !SRP !CAMELLIA !SEED';
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
client_max_body_size 10G;
fastcgi_buffers 64 4K;
gzip off;
rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;
rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;
rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;
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(?:$|/) {
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 unix:/var/run/php-fpm/php-fpm.sock;
}
location ~* \.(?:jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
expires 30d;
access_log off;
}
}
$ sudo systemctl start nginx
$ sudo systemctl start php-fpm
OwnCloud をダウンロードする
OwnCloud をダウンロードしてコンテンツディレクトリに展開します
# コンテンツディレクトリに移動します $ sudo cd /var/www/vhosts/owncloud/html # owncloud-10.1.0.tar.bz2をダウンロードして、解凍します $ wget https://download.owncloud.org/community/owncloud-10.1.0.tar.bz2 $ tar xvf owncloud-10.1.0.tar.bz2 # 解凍したファイルをコンテンツディレクトリに移動します $ sudo mv owncloud/* . # 不要なファイル・ディレクトリを削除します $ sudo rm -f owncloud-10.1.0.tar.bz2 $ sudo rm -r owncloud # 所有者をNginxに変更します $ sudo chown -R nginx:nginx owncloud
ownCloud用のデータベースを作成
Owncloudで使用するデータベースを作成します
$ mysql -u root -p MariaDB [(none)]> CREATE USER 'ユーザー名'@'localhost' IDENTIFIED BY 'パスワード'; MariaDB [(none)]> CREATE DATABASE IF NOT EXISTS データベース名; MariaDB [(none)]> GRANT ALL PRIVILEGES ON データベース名.* TO 'ユーザー名'@'localhost' IDENTIFIED BY 'パスワード'; MariaDB [(none)]> FLUSH PRIVILEGES;
ブラウザでowncloudにアクセスする
ブラウザでowncloudをアクセスして初期設定をおこないます




コメント