FreeBSD で Nextcloud を動かす

前提条件


必要なソフトウエアのインストール

PHP 関連ソフトウエア

# pkg install -y php72
# pkg install -y php72-bz2
# pkg install -y php72-ctype
# pkg install -y php72-curl
# pkg install -y php72-dom
# pkg install -y php72-exif
# pkg install -y php72-fileinfo
# pkg install -y php72-filter
# pkg install -y php72-ftp
# pkg install -y php72-gd
# pkg install -y php72-hash
# pkg install -y php72-iconv
# pkg install -y php72-json
# pkg install -y php72-ldap
# pkg install -y php72-mbstring
# pkg install -y php72-memcache
# pkg install -y php72-mysqli
# pkg install -y php72-opcache
# pkg install -y php72-openssl
# pkg install -y php72-pdo
# pkg install -y php72-pdo_mysql
# pkg install -y php72-pdo_sqlite
# pkg install -y php72-posix
# pkg install -y php72-session
# pkg install -y php72-simplexml
# pkg install -y php72-sqlite3
# pkg install -y php72-wddx
# pkg install -y php72-xml
# pkg install -y php72-xmlreader
# pkg install -y php72-xmlwriter
# pkg install -y php72-xsl
# pkg install -y php72-zip
# pkg install -y php72-zlib
# pkg install -y mod_php72

Redis

# pkg install -y redis
# portinstall --batch databases/pecl-redis
# pkg lock -y pecl-redis

SMB/CIFS

# portinstall --batch net/pecl-smbclient
# pkg lock -y pecl-smbclient

Nextcloud

Nextcloud から最新のパッケージをダウンロードして展開します。

# cd /usr/local/www
# tar zxf nextcloud-13.0.0.tar.bz2
# chown -R www:www nextcloud

設定

/etc/rc.conf

mysql_enable="YES"
mysql_args="--bind-address=localhost"
redis_enable="YES"

/usr/local/etc/apache24/extra/httpd-ssl.conf

+ <IfModule mod_headers.c>
+     Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains"
+ </IfModule>

/usr/local/etc/apache24/Includes/php.conf

<FilesMatch "\.php$">
    SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch "\.phps$">
    SetHandler application/x-httpd-php-source
</FilesMatch>

/usr/local/etc/apache24/Includes/nextcloud.conf

Alias /nextcloud /usr/local/www/nextcloud
AcceptPathInfo On
<Directory /usr/local/www/nextcloud>
        AllowOverride All
        Require all granted
</Directory>

/usr/local/etc/php.ini

opcache.enable=1
opcache.enable_cli=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.revalidate_freq=1
opcache.save_comments=1

/usr/local/etc/mysql/my.cnf

[client]
default-character-set           = utf8mb4

[mysqld]
character-set-server            = utf8mb4
collation-server                = utf8mb4_general_ci

デーモン起動

# service redis start
# service apache24 restart
# service mysql-server restart

データベース作成

% mysql -u root -p
Enter password: secret
mysql> CREATE DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
mysql> GRANT ALL ON nextcloud.* TO 'nextcloud'@'localhost' IDENTIFIED BY 'nextcloud';
mysql> GRANT ALL ON nextcloud.* TO 'nextcloud'@'127.0.0.1' IDENTIFIED BY 'nextcloud';
mysql> GRANT ALL ON nextcloud.* TO 'nextcloud'@'::1' IDENTIFIED BY 'nextcloud';
mysql> exit

Nextcloud 初期設定

ブラウザで /nextcloud/ にアクセスして config/config.php を生成します。


Redis 設定

/usr/local/www/nextcloud/config/config.php

+  'memcache.local' => '\\OC\\Memcache\\Redis',
+  'memcache.locking' => '\\OC\\Memcache\\Redis',
+  'redis' => array(
+    'host' => 'localhost',
+    'port' => 6379,
+  ),