ソースの表示以前のリビジョンバックリンク全て展開する/折り畳む文書の先頭へ Share via Share via... Twitter LinkedIn Facebook Pinterest Telegram WhatsApp Yammer Reddit Teams最近の変更Send via e-Mail印刷パーマリンク × 目次 FreeBSD 12でNextcloud 16サーバを作る 試した環境 必要なソフトのインストールと設定 Apache 2.4 MariaDB 10.3 PHP 7.3 Nextcloudのインストール プレビューの文字化け対応 ユーザー追加 バックグラウンドジョブの設定 メモリキャッシュの設定 occコマンド FreeBSD 12でNextcloud 16サーバを作る 試した環境 FreeBSD 12.0-RELEASE Apache 2.4.41 MariaDB 10.3.16 PHP 7.3.8 Nextcloud 16.0.2 /usr/home/www/nextcoludにインストールする 必要なソフトのインストールと設定 うちではPHP 7.1が既に入っており、この機会にPHP 7.3に更新したいので7.1を消しておく。 # pkg remove -g php71\* # pkg remove mod_php71 Apache 2.4 Apacheのインストール。 portmaster www/apache24 必要なモジュールは以下の通り。 必須 REWRITE 推奨 ENV DIR HEADERS MIME 必要なモジュールが読み込まれるようにhttpd.confを編集。 /usr/local/etc/apache24/httpd.conf NameVirtualHost *:80 ... 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 ... WebDAVについて Nextcloudは自前のWebDAVサーバを持っているため、ApacheのWebDAVモジュールは不要。ApacheのWebDAVを使う場合はNextcloudの方は無効にしなければならない。 Nextcloudのサイトの設定を作成。パスは適宜読み替えの事。 /usr/local/etc/apache24/Includes/nextcloud.conf.inc Alias /nextcloud "/usr/home/www/nextcloud/" <Directory "/usr/home/www/nextcloud"> Options +FollowSymlinks AllowOverride All <IfModule mod_dav.c> Dav off </IfModule> <IfModule mod_headers.c> Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains" </IfModule> SetEnv HOME /usr/home/www/nextcloud SetEnv HTTP_HOME /usr/home/www/nextcloud </Directory> サイト設定を行っている設定ファイルの中で忘れずにインクルードする。この辺の作法は各々の環境に合わせてください。 <VirtualHost _default_:443> .... Include etc/apache24/Includes/nextcloud.conf.inc </VirtualHost> MariaDB 10.3 # pkg install mariadb103-server mariadb103-client バイナリログ形式、トランザクション分離レベル、文字コード等を変更する。DB全体に影響するので、他のサービスを動かしてたり既存のデータがある場合は要注意。 /usr/local/etc/my.cnf [client] default-character-set = utf8mb4 [mysqld] character-set-server = utf8mb4 collation-server = utf8mb4_general_ci transaction_isolation = READ-COMMITTED binlog_format = ROW innodb_file_per_table=1 PHP 7.3 # pkg install lang/php73 # cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini 必要なPHPモジュールを入れる。 公式マニュアルを参考に必要なモジュールをphp73-extensions経由で入れる。 portmaster lang/php73-extensions デフォルトでチェックが入っているものはそのままに、自分はてんこ盛り仕様で以下のモジュールを追加した。 必須 CTYPE CURL DOM GD ICONV JSON XML MBSTRING OPENSSL POSIX SESSION SIMPLEXML XMLREADER XMLWRITER ZIP ZLIB PDO_MYSQL 推奨 FILEINFO BZ2 INTL オプション FTP EXIF GMP PCNTL 更にmod_phpを入れる。 # pkg install mod_php73 mod_phpの設定。 /usr/local/etc/apache24/httpd.conf ... LoadModule php7_module libexec/apache24/libphp7.so ... <FilesMatch "\.php$"> SetHandler application/x-httpd-php </FilesMatch> <FilesMatch "\.phps$"> SetHandler application/x-httpd-php-source </FilesMatch> PHPのメモリ制限を増やす。Nextcloud 16の推奨値は512MB以上となっている。 <file ini /usr/local/etc/php.ini> memory_limit = 1G </code> ImageMagick サムネイル生成用にImageMagickを入れる。 # portmaster graphics/ImageMagick7-nox11 PHPのモジュールを入れる。 # pkg install php73-pecl-imagick-im7 FFmpeg サムネイル生成用にFFMpegを入れる。 # portmaster multimedia/ffmpeg Nextcloudのインストール Nextcloudのzipを取ってきて展開する。 $ cd /usr/home/www $ sudo fetch https://download.nextcloud.com/server/releases/nextcloud-16.0.3.zip $ sudo unzip nextcloud-16.0.3.zip $ sudo chown -R www:www nextcloud ブラウザでNextcloudを置いたURLにアクセスするとセットアップ画面になる。 管理者アカウント Nextcloudの管理者アカウント名とパスワードを入れる。 このアカウント名を元にNextcloud用のDB接続ユーザーも作られるため、普段使いのアカウント名とは別のものにした方が無難かなと。 データフォルダー データ置き場をフルパスで指定する。後から変更するのは困難だそうなので熟考のこと。 指定フォルダは予め存在していなければならず、所有者はWebサーバのユーザーの必要がある。 データベース設定 MySQLの管理者アカウント、Nextcloud用のDB名、DBのホストを指定する。 Nextcloud用に適切な権限を持った専用ユーザー(oc_管理者アカウント名)と専用のDBが自動的に作られる。 「セットアップを完了します」ボタンを押し暫く待つと、Nextcloudのトップ画面が開く。 プレビューの文字化け対応 標準ではテキストファイルのプレビューが文字化けするので、core/fonts/Nunito-Regular.ttf を日本語グリフを含むフォントに置き換えて対処する。詳細→Nextcloudのプレビューの文字化けを直す ユーザー追加 普段使いのユーザーを追加する。初期管理者でログインしている状態で、左上のアカウントマークをクリック→ユーザーを選択する。 「+新しいユーザー」をクリックするとリストに新規ユーザーが追加されるので、項目を埋め、右端のチェックボタンを押す。その後、現在の管理者ユーザーのパスワードを入力するとユーザーが追加される。 バックグラウンドジョブの設定 定期的にジョブを動かす必要があるっぽいので、Apacheの実行ユーザーwww権限でcronを設定する。 # crontab -u www -e */5 * * * * /usr/local/bin/php -f /usr/home/www/nextcloud/cron.php 5分ほど待って、Nextcloudの設定>管理>基本設定のバックグラウンドジョブに「最終ジョブ実行: ○分前」といった表示があればOK。 メモリキャッシュの設定 性能向上のため、メモリキャッシュを設定してみる。 キャッシュ機構はAPCu, Redis, Memcachedの3つから選べる。寡聞にしてそれぞれの違いは分からないのだけど、Redisが一番良さそうな気がするものの設定が面倒くさそうなので、何となくナウくてよさげな気がするAPCuを使ってみる。 インストールしてapacheを再起動。 # pkg install php73-pecl-APCu # service apache24 restart nextcloud/config/config.phpにメモリキャッシュの設定を追加。 'memcache.local' => '\OC\Memcache\APCu', うまく設定できれば、Nextcloudの設定>管理>概要のセキュリティ&セットアップ警告から、メモリキャッシュ云々の文言が消えているはず。 とりあえず設定はしてみたものの、そこまで劇的に早くなった感じはしないような… occコマンド Nextcloudを更新した時に、データベースの不整合警告(主キーやインデックスがないとか)が出ると同時に、occコマンドを使った対処方法が示される。occコマンドは以下のように実行する。 # sudo -u www php /path/to/nextcloud/occ コマンド freebsd/freebsd_12_install_nextcloud_16.txt 最終更新: 2021-02-09 12:07by Decomo