Nextcloud Q & A 問題處理
這一篇是記錄我在使用上所遇到的問題,處理方式
外部儲存設定 (SMB/CIFS)
之前環境被我玩壞結果我重新安裝二三次發顯到目前,外部儲存無法正常建立起來,結果是 NextCloud 本身系統 Bug,目前我所安裝的版本是 17.0.1 目前官方最新版本。在官方的 GitHub 討論區有人反應此問題,並且提出決解方案,但是不知道官方會何時修復此問題,解決方案如下
在 NextCloud 的目錄下有一個檔案,vim /var/www/html/nextcloud/apps/files_external/lib/Lib/Backend/SMB.php
,修改 SMB.php
設定檔內容如下
#修改前
->addParameters([
new DefinitionParameter('host', $l->t('Host')),
new DefinitionParameter('share', $l->t('Share')),
(new DefinitionParameter('root', $l->t('Remote subfolder')))
->setFlag(DefinitionParameter::FLAG_OPTIONAL),
(new DefinitionParameter('domain', $l->t('Domain')))
->setFlag(DefinitionParameter::FLAG_OPTIONAL),
(new DefinitionParameter('show_hidden', $l->t('Show hidden files')))
->setType(DefinitionParameter::VALUE_BOOLEAN)
->setFlag(DefinitionParameter::FLAG_OPTIONAL),
(new DefinitionParameter('timeout', $l->t('Timeout')))
->setType(DefinitionParameter::VALUE_HIDDEN)
])
#修改後
->addParameters([
new DefinitionParameter('host', $l->t('Host')),
new DefinitionParameter('share', $l->t('Share')),
(new DefinitionParameter('root', $l->t('Remote subfolder')))
->setFlag(DefinitionParameter::FLAG_OPTIONAL),
(new DefinitionParameter('domain', $l->t('Domain')))
->setFlag(DefinitionParameter::FLAG_OPTIONAL),
(new DefinitionParameter('show_hidden', $l->t('Show hidden files')))
->setType(DefinitionParameter::VALUE_BOOLEAN)
->setFlag(DefinitionParameter::FLAG_OPTIONAL),
(new DefinitionParameter('timeout', $l->t('Timeout')))
->setType(DefinitionParameter::VALUE_HIDDEN)
->setFlag(DefinitionParameter::FLAG_OPTIONAL), #增加這一行即可
])
參考解決方案
NextCloud、Collabora Online 結合 CloudFlare 的問題
BUBU 我在測試過程中,發現在會有一些程式無法正常顯示,發現到是問題是卡在 CloudFlare
的設定上,Rocket Loader
這個設定,這是加速載入 JavaScript
檔案,這可以在 CloudFlare
上的頁面規則上將此功能關閉。
- 在規則頁面新增規則
- 填入您的網域之後選擇 Rocket Loader 之後存檔即可
參考解決方案
NextCloud 更新後出現問題 資料庫的有些欄位缺少big int.格式轉換
BUBU 將 17.0.1 更新為 17.0.2 時出現這樣子的狀況
- 資料庫的有些欄位缺少big int.格式轉換。因為攔位格式轉換需要一些時間,所以沒有自動轉換。你可以執行'occ db:convert-filecache-bigin'手動完成轉換,轉換時Nextcloud服務必須處於離線狀態。詳情請參閱 the documentation page about this
- mounts.storage_id
- mounts.root_id
- mounts.mount_id
進到 nextcloud
目錄下執行 cd /var/www/html/nextcloud
執行下面指令, nginx
修改成你目前正在使用的 web
服務權限
sudo -u nginx php occ db:convert-filecache-bigint
- 執行結果如下,輸入 y 即可,再去看是否還會出現這樣子訊息
參考解決方案
- [BigInt (64bit) identifiers]https://docs.nextcloud.com/server/17/admin_manual/configuration_database/bigint_identifiers.html)
- Nextcloud:安全及設定警告
出現 occ: command not found 錯誤
BUBU 在進入後台看安全及設定警告的時候出現這樣子的錯誤訊息,因此記錄一下這樣子的狀況怎麼排除掉
- 如果在後台更新時候看到這樣子的狀況
- 麻煩請先進到
nextcloud
目錄下,然後下一段指令來進行修正
sudo -u nginx php /var/www/html/nextcloud/occ db:add-missing-indices
- 下面的圖示是在執行後所出現的訊息,跑完之後再去後台更新那,重新整理頁面看是否還會出現,正常是不會再出現的
參考解決方案
PHP 的 OPcache 功能並未被妥善設定
BUBU 在安全及設定警告的時候發現一直出現這樣子的訊息,所以試著照著官方建議去修改
2024.08.16 環境為 Debian 運行修改設定檔位置
- 修改位置
vim /etc/php/8.3/cli/conf.d/10-opcache.ini
,將官方建議設定值貼上之後存檔
opcache.jit = 1255
opcache.jit_buffer_size = 128M
opcache.enable=1
opcache.enable_cli=1
opcache.interned_strings_buffer=16
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=60
- 重啟服務,此問題就會解決了
systemctl restart php8.3-fpm
參考解決方案
設定記憶體快取 (memcache)
BUBU 在後台查看安全及設定警告,看到我還未尚設定 memcache
記憶體快取服務。
2022.12.21 新增加 Debian 環境上的設定
- 那在設定之前要先安裝
memcache
服務,那我的環境是CentOS 7
,所以以下的指令是以CentOS
指令下去安裝的。
# 安裝必要的套件服務
# CentOS
yum install -y redis memcached php-pecl-apcu php-pecl-redis
# Debain
apt install -y redis memcached php8.3-apcu php8.3-redis
- 設定
php.ini
# CentOS
# 在 php 的設定檔啟動 acpu 設定,將 apc.enable_cli 改為1
vim /etc/php.d/40-apcu.ini
# Debain
vim /etc/php/8.3/cli/conf.d/20-apcu.ini
# 增加一行
apc.enable_cli = 1
- 重啟 php-fpm 服務
systemctl restart php8.3-fpm
- 啟動服務
# 設定自動啟動服務
systemctl enable redis memcached
# 啟重服務
systemctl start redis memcached
- 再到
nextcloud
目錄的設定memcache
啟用服務
# 進到 nextcloud 設定檔
cd /var/www/html/nextcloud/config
# 編輯 config.php 此設定檔
vim config.php
- 在該設定檔最下面加入以下幾行的參數,設定完後存檔,再去看安全及設定警告那裡是否還會出現記憶體快取服務的訊息。
'memcache.local' => '\OC\Memcache\APCu',
'memcache.distributed' => '\OC\Memcache\Redis',
'redis' =>[
'host' => 'localhost',
'port' => 6379,
],
'memcache.locking' => '\OC\Memcache\Redis',
參考解決方案
filecache_extended.fileid
BUBU 在更新版本後跳出安全性的警告,訊息如下
- 如何解決問題方式如下,這樣子的指令即可
sudo -u nginx php occ db:convert-filecache-bigin
- 畫面如下,會詢問你只要輸入 y 就可以了
參考解決方案
設定預設國家電話
- 在
vim /var/www/html/nextcloud/config/config.php
新增加以下這一行
'default_phone_region' => 'TWN',
參考解決方案
此站台的 PHP 模組「imagick」不支援 SVG
- 系統提出 「此站台的 PHP 模組「imagick」不支援 SVG」 這樣子警告,需要安裝下面的套件即可
sudo apt install libmagickcore-6.q16-6-extra
參考解決方案
檔案移動失敗
- BUBU 公司有同仁想要移動檔案結果是失敗查看
Log
記錄出現403
的問題,剛好有人也有遇到這樣子的問題,可以在Nginx
的設定檔處理掉這個問題,加上此政策
location ~ ^/remote\.php/dav/uploads/.*/\.file$ {
allow all;
}
參考解決方案
- "403 Forbidden" to "MOVE" files #1293
- Change ownership of Nextcloud files (root to www-data)
- Client throwing 403 / 405 forbidden “move” while uploading