OshiHa.com

ConoHaでAlpine Linux 3.8

Nextcloud14 のインストール・設定

2018/09/04  2018/09/20

◆◇◆ 【衝撃価格】VPS512MBプラン!月額630円/1時間1円【ConoHa】 ◆◇◆

Alpine Linux 3.8の環境にNextcloudを導入する。

事前に以下をインストール・設定しておく必要がある。

1. Nextcloud のインストール

alpine:~$ sudo apk add nextcloud

2. NextCloud用のデータベースとユーザーを MariaDB に登録

*****にはパスワードを入力する。

alpine:~$ sudo mysql -u root -p
MariaDB [(none)]> create database nextcloud;
MariaDB [(none)]> grant all privileges on nextcloud.* to nextcloud@'localhost' identified by '*****';
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit

3. Nextcloudサブドメイン用の SSL証明書を取得

alpine:~$ sudo rc-service nginx stop
alpine:~$ sudo certbot certonly --standalone -d *****.oshiha.com
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator standalone, Installer None
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for *****.oshiha.com
Waiting for verification...
Cleaning up challenges

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/*****.oshiha.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/*****.oshiha.com/privkey.pem
   Your cert will expire on 2018-12-04. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot
   again. To non-interactively renew *all* of your certificates, run
   "certbot renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le
alpine:~$ sudo rc-service nginx start

4. Nginx の設定

サブドメインでNextcloudを運用するので、設定ファイルを新規作成する。

設定ファイルは公式ページのドキュメントに設定例があるので、それをもとに作成していく。
https://docs.nextcloud.com/server/14/admin_manual/installation/nginx.html

alpine:~$ sudo vi /etc/nginx/conf.d/nextcloud.conf
upstream php-handler {
        server unix:/var/run/php7-fpm.sock;
}

server {
	listen 80;
	listen [::]:80;
	server_name *****.oshiha.com;
	return  301 https://*****.oshiha.com$request_uri;
}

server {
	listen 443 ssl;
	listen [::]:443 ssl;
	server_name *****.oshiha.com;

	ssl_certificate     /etc/letsencrypt/live/*****.oshiha.com/fullchain.pem;
	ssl_certificate_key /etc/letsencrypt/live/*****.oshiha.com/privkey.pem;

	add_header Strict-Transport-Security "max-age=31536000; includeSubdomains; preload;";
	add_header X-Content-Type-Options nosniff;
	add_header X-XSS-Protection "1; mode=block";
	add_header X-Robots-Tag none;
	add_header X-Download-Options noopen;
	add_header X-Permitted-Cross-Domain-Policies none;
	add_header Referrer-Policy "no-referrer";

	fastcgi_hide_header X-Powered-By;

	root /usr/share/webapps/nextcloud;

	location = /robots.txt {
		allow all;
		log_not_found off;
		access_log off;
	}

	location = /.well-known/carddav {
		return 301 $scheme://$host/remote.php/dav;
	}
	location = /.well-known/caldav {
		return 301 $scheme://$host/remote.php/dav;
	}
	
	client_max_body_size 512M;
	fastcgi_buffers 64 4K;

	location / {
		rewrite ^ /index.php$uri;
	}

	location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ {
		deny all;
	}
	location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) {
		deny all;
	}

	location ~ ^/(?:index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|ocs-provider/.+)\.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_param modHeadersAvailable true;
		fastcgi_param front_controller_active true;
		fastcgi_pass php-handler;
		fastcgi_intercept_errors on;
		fastcgi_request_buffering off;
	}

	location ~ ^/(?:updater|ocs-provider)(?:$|/) {
		try_files $uri/ =404;
		index index.php;
	}

	location ~* \.(?:css|js|woff|svg|gif)$ {
		try_files $uri /index.php$uri$is_args$args;
		add_header Cache-Control "public, max-age=15552000";
		add_header X-Content-Type-Options nosniff;
		add_header X-XSS-Protection "1; mode=block";
		add_header X-Robots-Tag none;
		add_header X-Download-Options noopen;
		add_header X-Permitted-Cross-Domain-Policies none;
		add_header Referrer-Policy no-referrer;
		access_log off;
	}

	location ~* \.(?:png|html|ttf|ico|jpg|jpeg)$ {
		try_files $uri /index.php$uri$is_args$args;
		access_log off;
	}
}

5. PHP拡張モジュールの確認・インストール

必要なPHP拡張モジュール

インストール済み拡張モジュールの確認

ブラウザで http://[PCのIPアドレス]/info.php にアクセスして、インストール済みの拡張モジュールを確認する。
もし、info.php を作成していなければ、以下で作成する。
$ sudo sh -c "echo '<?php phpinfo() ?>' > /var/www/html/info.php"

不足している拡張モジュールのインストール

alpine:~$ sudo apk add php7-pdo_mysql
alpine:~$ sudo apk add php7-apcu php7-opcache

6. PHP の設定

PHPコードキャッシュOPcache の設定

alpine:~$ sudo vi /etc/php7/php.ini
# 1767行目:コメントアウトを解除
- ;opcache.enable=1
+ opcache.enable=1

# 1770行目
- ;opcache.enable_cli=0
+ opcache.enable_cli=1

# 1773行目:コメントアウトを解除
- ;opcache.memory_consumption=128
+ opcache.memory_consumption=128

# 1776行目:コメントアウトを解除
- ;opcache.interned_strings_buffer=8
+ opcache.interned_strings_buffer=8

# 1780行目:コメントアウトを解除
- ;opcache.max_accelerated_files=10000
+ opcache.max_accelerated_files=10000

# 1798行目
- ;opcache.revalidate_freq=2
+ opcache.revalidate_freq=1

# 1805行目:コメントアウトを解除
- ;opcache.save_comments=1
+ opcache.save_comments=1

PHPその他エラー対策

alpine:~$ sudo vi /etc/php7/php-fpm.d/www.conf
# 394行目から:コメントアウトを解除
- ;env[HOSTNAME] = $HOSTNAME
- ;env[PATH] = /usr/local/bin:/usr/bin:/bin
- ;env[TMP] = /tmp
- ;env[TMPDIR] = /tmp
- ;env[TEMP] = /tmp
+ env[HOSTNAME] = $HOSTNAME
+ env[PATH] = /usr/local/bin:/usr/bin:/bin
+ env[TMP] = /tmp
+ env[TMPDIR] = /tmp
+ env[TEMP] = /tmp

7. 再起動

alpine:~$ sudo rc-service php-fpm7 restart
alpine:~$ sudo rc-service nginx restart

8. Nextcloudの初期設定

https://*****.oshiha.com/にアクセス。

管理者アカウント
ユーザ名 ******
パスワード ******
ストレージとデータベース
データフォルダー /var/lib/nextcloud/data(デフォルト)
データベース
データベースのユーザ名 nextcloud
データベースのパスワード *****
データベース名 nextcloud
データベースサーバ localhost

9. メモリーキャッシュAPCu の設定

Nextcloudの初期設定を終えるとconfig.phpが作成されるので、以下を編集する。

alpine:~$ sudo cp /etc/nextcloud/config.php /etc/nextcloud/config.php.org
alpine:~$ sudo vi /etc/nextcloud/config.php
# array内の最終行などに、以下を追加
'memcache.local' => '\OC\Memcache\APCu',

◆◇◆ 【衝撃価格】VPS512MBプラン!月額630円/1時間1円【ConoHa】 ◆◇◆

ConoHa VPSの攻略
Alpine Linux 3.8

TOP