Nginx+OwnCloudでLightsailにインストール
概要
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をアクセスして初期設定をおこないます
ディスカッション
コメント一覧
まだ、コメントがありません