手当たり次第に書くんだ

飽きっぽいのは本能

Ubuntu 26.04 Nextcloud の設定 – config.php と運用設定を管理する

関連する記事

Ubuntu 26.04 で Nextcloud の基本構成ができたら、次に config.phpocc で運用設定を確認します。ここでは初期インストール後に最低限そろえたい設定を、直接ファイル編集ではなく occ config:system:set を中心に管理します。

この記事では、trusted_domains、APCu / Redis、mail、proxy、maintenance window、preview、管理者メール、LDAP 連携の入口を扱います。Nextcloud 本体、Nginx、PHP-FPM、MariaDB の土台は Nextcloud base 記事の範囲です。

この記事で扱うこと
  • occ で現在の状態を確認する
  • trusted_domains と URL / proxy 関連を設定する
  • APCu / Redis の cache と file locking を設定する
  • mail、maintenance window、preview、管理者メールを設定する
  • LDAP 連携の入口を作る

occ の実行前に状態を確認する

occ は Nextcloud の document root で、Web サーバーの実行 user と同じ www-data で実行します。まずインストール状態と現在の system config を確認します。

cd /var/www/html
sudo -u www-data php occ status
cd /var/www/html
sudo -u www-data php occ config:list system

trusted_domains を設定する

trusted_domains は、Nextcloud が正規のアクセス先として受け入れる hostname です。リバースプロキシや内部 DNS を使う場合でも、利用者がアクセスする FQDN を明示します。

cd /var/www/html
sudo -u www-data php occ config:system:delete trusted_domains
cd /var/www/html
sudo -u www-data php occ config:system:set trusted_domains 0 --value=localhost
cd /var/www/html
sudo -u www-data php occ config:system:set trusted_domains 1 --value=nextcloud.example.com
cd /var/www/html
sudo -u www-data php occ config:system:get trusted_domains --output=json

URL と proxy 関連を設定する

reverse proxy や HTTPS 終端を使う環境では、Nextcloud が自分の公開 URL を正しく理解できるようにします。ここがずれると、共有リンク、WebDAV、リダイレクト、通知メール内 URL が崩れます。

cd /var/www/html
sudo -u www-data php occ config:system:set overwrite.cli.url --value=https://nextcloud.example.com
cd /var/www/html
sudo -u www-data php occ config:system:set overwriteprotocol --value=https
cd /var/www/html
sudo -u www-data php occ config:system:set proxy --value=http://proxy.example.com:8080
cd /var/www/html
sudo -u www-data php occ config:system:set default_phone_region --value=JP

APCu と Redis を設定する

APCu は local cache、Redis は distributed cache と file locking に使います。Redis を Unix socket で使う構成では、redis.host に socket path、redis.port0 を設定します。

cd /var/www/html
sudo -u www-data php occ config:system:set memcache.local --type=string --value='\OC\Memcache\APCu'
cd /var/www/html
sudo -u www-data php occ config:system:set memcache.distributed --type=string --value='\OC\Memcache\Redis'
cd /var/www/html
sudo -u www-data php occ config:system:set memcache.locking --type=string --value='\OC\Memcache\Redis'
cd /var/www/html
sudo -u www-data php occ config:system:set redis host --type=string --value=/run/redis/redis-server.sock
cd /var/www/html
sudo -u www-data php occ config:system:set redis port --type=integer --value=0
cd /var/www/html
sudo -u www-data php occ config:system:get redis

メール送信を設定する

通知メールや password reset を使うため、SMTP 設定を入れます。SMTP password は記事の例をそのまま使わず、実環境の値に置き換えます。

cd /var/www/html
sudo -u www-data php occ config:system:set mail_smtpmode --value=smtp
cd /var/www/html
sudo -u www-data php occ config:system:set mail_sendmailmode --value=smtp
cd /var/www/html
sudo -u www-data php occ config:system:set mail_smtphost --value=mail.example.com
cd /var/www/html
sudo -u www-data php occ config:system:set mail_smtpport --type=integer --value=587
cd /var/www/html
sudo -u www-data php occ config:system:set mail_smtpauth --type=boolean --value=true
cd /var/www/html
sudo -u www-data php occ config:system:set mail_smtpname --value=nextcloud@example.com
cd /var/www/html
sudo -u www-data php occ config:system:set mail_smtppassword --value=CHANGE_ME_SMTP_PASSWORD
cd /var/www/html
sudo -u www-data php occ config:system:set mail_from_address --value=nextcloud-noreply
cd /var/www/html
sudo -u www-data php occ config:system:set mail_domain --value=example.com

maintenance window と preview を設定する

background job や preview 生成の負荷は、利用時間帯と重なると体感に影響します。maintenance window と preview の上限を明示し、画像処理の負荷を制御します。

cd /var/www/html
sudo -u www-data php occ config:system:set maintenance_window_start --type=integer --value=4
cd /var/www/html
sudo -u www-data php occ config:system:set preview_max_x --type=integer --value=1024
cd /var/www/html
sudo -u www-data php occ config:system:set preview_max_y --type=integer --value=1024
cd /var/www/html
sudo -u www-data php occ config:system:set preview_max_scale_factor --type=integer --value=6
cd /var/www/html
sudo -u www-data php occ config:system:set preview_max_filesize_image --type=integer --value=10
cd /var/www/html
sudo -u www-data php occ config:system:set preview_concurrency_all --type=integer --value=2
cd /var/www/html
sudo -u www-data php occ config:system:set preview_concurrency_new --type=integer --value=1
cd /var/www/html
sudo -u www-data php occ config:system:set preview_max_memory --type=integer --value=512

管理者メールを設定する

管理者ユーザーのメールアドレスは、通知や運用確認で使います。system config ではなく user setting として設定します。

cd /var/www/html
sudo -u www-data php occ user:setting admin settings email admin@example.com
cd /var/www/html
sudo -u www-data php occ user:setting admin settings email

LDAP 連携の入口を作る

LDAP 連携を使う場合は user_ldap app を有効化し、config ID を作ってから接続先、bind DN、base DN、filter を設定します。bind password は実環境の値に置き換えます。

cd /var/www/html
sudo -u www-data php occ app:enable user_ldap
cd /var/www/html
sudo -u www-data php occ ldap:show-config
cd /var/www/html
sudo -u www-data php occ ldap:create-empty-config
cd /var/www/html
sudo -u www-data php occ ldap:set-config s01 ldapHost ldaps://ldap.example.com
cd /var/www/html
sudo -u www-data php occ ldap:set-config s01 ldapPort 636
cd /var/www/html
sudo -u www-data php occ ldap:set-config s01 ldapAgentName 'uid=bind-ro,ou=system,dc=example,dc=com'
cd /var/www/html
sudo -u www-data php occ ldap:set-config s01 ldapAgentPassword CHANGE_ME_LDAP_BIND_PASSWORD
cd /var/www/html
sudo -u www-data php occ ldap:set-config s01 ldapBase 'ou=main,ou=tenants,dc=example,dc=com'
cd /var/www/html
sudo -u www-data php occ ldap:set-config s01 ldapBaseUsers 'ou=users,ou=main,ou=tenants,dc=example,dc=com'
cd /var/www/html
sudo -u www-data php occ ldap:set-config s01 ldapBaseGroups 'ou=groups,ou=main,ou=tenants,dc=example,dc=com'
cd /var/www/html
sudo -u www-data php occ ldap:set-config s01 ldapLoginFilter '(&(objectClass=inetOrgPerson)(uid=%uid))'
cd /var/www/html
sudo -u www-data php occ ldap:set-config s01 ldapUserFilter '(objectClass=inetOrgPerson)'
cd /var/www/html
sudo -u www-data php occ ldap:set-config s01 ldapGroupFilter '(&(objectClass=groupOfNames))'
cd /var/www/html
sudo -u www-data php occ ldap:set-config s01 ldapConfigurationActive 1

設定後に確認する

設定後は、occ で値を確認し、Web、WebDAV、mail、LDAP login の観点を分けて見ます。設定が入ったことと、利用者が期待どおり使えることは別の確認です。

cd /var/www/html
sudo -u www-data php occ config:list system
cd /var/www/html
sudo -u www-data php occ ldap:show-config
cd /var/www/html
sudo -u www-data php occ status
curl -I https://nextcloud.example.com/status.php
確認するポイント
  • trusted_domains に実際の FQDN が入っているか
  • Redis socket と www-data の権限が合っているか
  • mail 設定で通知メールを送れるか
  • maintenance window と preview 設定が負荷設計に合っているか
  • LDAP の base DN、filter、bind DN がディレクトリ設計と合っているか

まとめ

Nextcloud の運用設定は、config.php を直接触るよりも occ config:system:set で意図を明確にした方が確認しやすくなります。特に URL、proxy、cache、mail、LDAP は、Web 画面だけでなく WebDAV、通知、認証にも影響します。

Nextcloud base でアプリケーションの土台を作り、この config 記事で運用設定をそろえる、という順番に分けると、障害時も Nginx / PHP-FPM / MariaDB の問題なのか、Nextcloud の system config の問題なのかを切り分けやすくなります。

関連する記事
Ubuntu 26.04 Nextcloud の設定 – config.php と運用設定を管理する

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る