Files
Obsidian-Main/21.01. OS/21.01. Linux/架站/Nextcloud.md
Awin Huang 5d4e261181 vault backup: 2025-07-22 22:14:08
Affected files:
Too many files to list
2025-07-22 22:14:08 +08:00

4.8 KiB
Raw Blame History

docker-compose.yml

version: '3'

services:
    app:
        image: nextcloud
        ports:
            - 8080:80
        volumes:
            - ./data:/var/www/html
        restart: always

config.php

Nextcloud 的 config 檔放在/var/www/html/config/config.php,對應到本機就是 ./data/config/config.php,在安裝完成之後,需要修改 trusted_domainsoverwriteprotocoloverwrite.cli.url 這幾個參數,如下:

<?php
$CONFIG = array (
  'htaccess.RewriteBase' => '/',
  'memcache.local' => '\\OC\\Memcache\\APCu',
  'apps_paths' =>
  array (
    0 =>
    array (
      'path' => '/var/www/html/apps',
      'url' => '/apps',
      'writable' => false,
    ),
    1 =>
    array (
      'path' => '/var/www/html/custom_apps',
      'url' => '/custom_apps',
      'writable' => true,
    ),
  ),
  'memcache.distributed' => '\\OC\\Memcache\\Redis',
  'memcache.locking' => '\\OC\\Memcache\\Redis',
  'redis' =>
  array (
    'host' => 'redis',
    'password' => '',
    'port' => 6379,
  ),
  'upgrade.disable-web' => true,
  'instanceid' => 'och3g4qo42hq',
  'passwordsalt' => 'kASfV5cf4Rh+EcvGNKQkmK01HD2UbI',
  'secret' => 'Vze6ZS+qgeOmacEn3ctbtV3uZaEpzeJDufjkkm4A9lgmUYpF',
  'trusted_domains' =>
  array (
    0 => 'nc.awin.one',
  ),
  'datadirectory' => '/var/www/html/data',
  'dbtype' => 'mysql',
  'version' => '28.0.3.2',
  'dbname' => 'nextcloud',
  'dbhost' => 'db',
  'dbport' => '',
  'dbtableprefix' => 'oc_',
  'mysql.utf8mb4' => true,
  'dbuser' => 'nextcloud',
  'dbpassword' => 'F5vy&46Fzbn:hFnlHji.sWfS*SP~wC',
  'overwriteprotocol' => 'https',
  'overwrite.cli.url' => 'https://nc.awin.one',
  'maintenance_window_start' => 1,
  'default_phone_region' => 'TWN',
  'installed' => true,
  'mail_smtpmode' => 'smtp',
  'mail_sendmailmode' => 'smtp',
  'mail_from_address' => 'awinhuang',
  'mail_domain' => 'gmail.com',
  'mail_smtphost' => 'smtp.gmail.com',
  'mail_smtpport' => '587',
  'mail_smtpauth' => 1,
  'mail_smtpname' => 'awinhuang@gmail.com',
  'mail_smtppassword' => 'stcg ozpc ypsl enbp',
  'maintenance' => false,
  'loglevel' => 2,
);

遇到的問題

  1. 你經由安全的連線存取系統,但系統卻生成了不安全的 URL。這很有可能是因為你使用了反向代理伺服器但反向代理伺服器的改寫規則並未正常工作請閱讀關於此問題的文件頁面 ↗。

    1. config/config/php 新增
      'overwriteprotocol' => 'https',
      'overwrite.cli.url' => 'https://nc.awin.one',
      
      這兩行
  2. 增加 cron: nextcloud_clean.sh 在 crontab

    1. */5 * * * * /home/awin/script/nextcloud_clean.sh
  3. 伺服器未設定維護時段的開始時間。這代表了每天耗費大量資源的背景作業也會在您主要使用的時間內執行。我們建議將其設定為低使用率的時間,以減少使用者受到這些繁重任務帶來的負載影響。

    1. config/config/php 增加 'maintenance_window_start' => 1,
  4. 您並未設定手機國際冠碼。設定後使用者在個人檔案設定手機號碼時不必再輸入國際冠碼。若要這樣做請新增「default_phone_region」至設定檔允許的國家及地區請參閱 ISO 3166-1 code 清單。

    1. config/config/php 增加 'default_phone_region' => 'TWN',
  5. 您尚未為 WOPI 請求設定允許清單。若無此設定,使用者可以透過 WOPI 請求將受限制的檔案下載至 Nextcloud 伺服器

  6. 此站台缺少一些建議的 PHP 模組。為了改善效能與相容性強烈建立您安裝這些模組bz2

  7. How to know if redis is being used

    docker exec -it redis /bin/sh
    cd
    redis-cli monitor
    ctrl+c
    
  8. gmail app password for nextcloud: stcg ozpc ypsl enbp

  9. 大檔案無法上傳

    1. 改善傳輸的效率: sudo docker exec -u 33 e84abbefd5ed php occ config:app:set files max_chunk_size --value 0
    2. docker-compose.yml 要增加 3 個 environment
      - PHP_MEMORY_LIMIT=10240M
      - PHP_UPLOAD_LIMIT=10240M
      - POST_MAX_SIZE=10240
      
    3. ReverseProxy 要增加:

大檔案無法上傳

  1. 改善傳輸的效率: sudo docker exec -u 33 e84abbefd5ed php occ config:app:set files max_chunk_size --value 0
  2. docker-compose.yml 要增加 3 個 environment
    - PHP_MEMORY_LIMIT=10240M
    - PHP_UPLOAD_LIMIT=10240M
    - POST_MAX_SIZE=10240
    
  3. ReverseProxy 要增加:
    client_max_body_size 0;
    fastcgi_read_timeout 600;
    fastcgi_send_timeout 600;
    fastcgi_connect_timeout 600;
    proxy_connect_timeout 600;
    proxy_send_timeout 600;
    proxy_read_timeout 600;
    send_timeout 600;
    
4. 上傳檔案時遇到 "server repliedL Not Found": `sudo docker exec -u 33 e84abbefd5ed php occ files:scan --all`