====== 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_が付いたもの)が自動で生成され、実運用ではその専用アカウントが使われるようになる。| 「セットアップを完了します」を押して暫く待ち、ウェルカム画面が表示されれば成功。