====== FreeBSD 11でNextcloud 11サーバを作る ======
===== 試した環境 =====
* FreeBSD 11.1-RELEASE
* Nextcloud 12.0.2
* /usr/home/www/nextcoludにインストールする
===== 必要なソフトのインストールと設定 =====
==== Apache 2.4 ====
Apacheのインストール。
portmaster www/apache24
必要なモジュールは以下の通り。
=== 必須 ===
* REWRITE
=== 推奨 ===
* ENV
* DIR
* HEADERS
* MIME
必要なモジュールが読み込まれるようにhttpd.confを編集。
...
LoadModule mime_module libexec/apache24/mod_mime.so
LoadModule env_module libexec/apache24/mod_env.so
LoadModule headers_module libexec/apache24/mod_headers.so
LoadModule dir_module libexec/apache24/mod_dir.so
LoadModule rewrite_module libexec/apache24/mod_rewrite.so
...
Nextcloudのサイトの設定を作成。パスは適宜読み替えの事。
Alias /nextcloud "/usr/home/www/nextcloud/"
Options +FollowSymlinks
AllowOverride All
Dav off
SetEnv HOME /usr/home/www/nextcloud
SetEnv HTTP_HOME /usr/home/www/nextcloud
==== MariaDB 10.1 ====
サーバを入れるとクライアントも一緒に入る。
portmaster databases/mariadb101-server
バイナリログの形式をMIXEDにする。DB全体に影響するので、他のサービスを動かしてる場合は要注意。
[mysqld]
binlog_format = MIXED # mysqldセクションに追加する
==== PHP 7.1 ====
# portmaster lang/php71
# cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini
必要なPHPモジュールを入れる。
[[https://docs.nextcloud.com/server/11/admin_manual/installation/source_installation.html#prerequisites-label|公式マニュアル]]を参考に必要なモジュールを''php71-extensions''経由で入れる。
portmaster lang/php71-extensions
デフォルトでチェックが入っているものはそのままに、自分はてんこ盛り仕様で以下のモジュールを追加した。
=== 必須 ===
* CTYPE
* DOM
* GD
* ICONV
* JSON
* XML
* MBSTRING
* POSIX
* SIMPLEXML
* XMLWRITER
* ZIP
* ZLIB
* MYSQLI
* PDO_MYSQL
=== 推奨 ===
* CURL
* FILEINFO
* BZ2
* INTL
* MCRYPT
* OPENSSL
=== オプション ===
* FTP
* EXIF
* GMP
* PCNTL
更にmod_phpを入れる。
# portmaster www/mod_php71
mod_phpの設定。
...
LoadModule php7_module libexec/apache24/libphp7.so
...
SetHandler application/x-httpd-php
SetHandler application/x-httpd-php-source
=== ImageMagick ===
サムネイル生成用にImageMagickを入れる。
# portmaster graphics/ImageMagick-nox11
PHPのモジュールが必要になるが、graphics/pecl-imagickはPHP 5.6用なので使えない。よってPECLから手動で入れる必要があるが、peclコマンドを使うためにまずはdevel/pearを入れる。
# portmaster devel/pear
続いてimagickを入れるが、pcre.hが見つからんと怒られるので、インクルードパスを通してpeclコマンドを実行する必要がある。
# C_INCLUDE_PATH=/usr/local/include pecl install imagick
imagick.soをPHPに組み込む。
extension=imagick.so
=== FFmpeg ===
サムネイル生成用にFFMpegを入れる。
# portmaster multimedia/ffmpeg
===== Nextcloudのインストール =====
ZIPを取ってきて展開する。
cd /usr/home/www/nextcloud
sudo fetch https://download.nextcloud.com/server/releases/nextcloud-12.0.2.zip
sudo unzip nextcloud-12.0.2.zip
sudo chown -R www:www nextcloud
{{ :freebsd:nextclound12_setup_wizard_2.png|}}{{ :freebsd:nextclound12_setup_wizard_1.png|}}
ブラウザからアクセスし、各種情報を入力。
^ 管理者アカウント | 管理者アカウント名とパスワードを入力する。\\ このアカウント名はDBのユーザー名にも使われるので、気にする人は要注意。 |
^ データフォルダ | アップロードしたファイルなどの実データを保存するディレクトリを指定する。\\ Webサーバのドキュメントルート外が推奨されており、また所有者はWebサーバを動かしてるユーザーと同一にしなければならない。後から場所を変更するのは難しいらしいので、これまた要注意。|
^ データベースの設定 | MySQL/MariaDBを選択し、アカウント情報、Nextcloud用のDB名を入れる。\\ 管理者権限アカウントを入力すると、DBとNextcloud用の権限が抑えられたアカウント(先の管理者アカウント名にoc_が付いたもの)が自動で生成され、実運用ではその専用アカウントが使われるようになる。|
「セットアップを完了します」を押して暫く待ち、ウェルカム画面が表示されれば成功。