2020年12月21日 星期一

nextcloud client首次登入失敗(404 Not Found via login flow v2)

下載nextcloud client for Windows登入的nextcloud server

目前的login flow v2不是直接在client端儲存帳號、密碼

client會啟動瀏覽器開啟登入頁後從網頁授權給client

(因此每台電腦都會有獨立的授權,機制性的增強了資訊安全)


今天遇到的問題是client啟動的瀏覽器頁面竟然404 Not Found

查到這篇,確認是因為我關掉80只開放443的關係

針對這種該優化設定但暫時不想動的特殊案例

可以最小幅度修改搞定


vi /var/www/nextcloud/config/config.php

最下方);之前加入這行

'overwriteprotocol' => 'https',

(強制開啟網頁的URL用httpS協議)

systemctl restart apache2

回到client for Windows再次嘗試,搞定

謝謝!


2020年12月19日 星期六

(紀錄) nextcloud 16網頁無法登入,顯示 "維護模式"

本篇純為留下記錄供自己下次遇到問題時參考。不知前因後果也不知是否版本問題!

NextCloud 16跑在CentOS 7.8上,幾天沒使用今天突然發現

1. app存取錯誤回應503 

2. https網頁沒有登入頁,只顯示目前處於"維護模式"


進入shell執行occ試圖取消維護模式

sudo -u www-data php /var/www/nextcloud/occ maintenance:mode --off

突然下方跳出一堆訊息,其中提到我的nextcloud將升級至18版,開啟網頁操作


再次嘗試網頁,已經沒有"維護模式",而是出現一長串更新套件列表

接著系統就逐一更新,幾分鐘後系統就自行啟動,一切很幸運的完好如初



2020年12月18日 星期五

習慣用vi編輯設定檔

Ubuntu 20.4上用vi編輯檔案,

按了 i 之後方向鍵無法移動游標,變成輸入 A B C D 還按一次換一行

查了google才知道,vi / vim預設使用 h j k l 為方向鍵(這樣手不用離開主要輸入區域)

想"改用"方向鍵必須修改設定檔

內文中還有老鳥預測到下個問題就是 "backspace為什麼不會動?"

(按了 i 之後,backspace不會把前一個字吃掉)

(事實上它有,只是沒用空格把顯示出來的那個字蓋掉)

一樣可以用設定檔改成你習慣的樣子


所以

root@yourhost: ~# vi ~/.vimrc

set nocompatible

set backspace=2

:wq


不用重開,直接有效

遠端連線MariaDB失敗 ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 2

Server A安裝MariaDB完成,試著從host B連看看

root@hostB:~# mysql -h 192.168.1.100

ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 2

這甚麼意思?

上google查


可能性1: 連線被擋了,要在/etc/hosts.allow加入mysqld: 192.168.1.0/255.255.255.0: allow

各種格式都試過,完全沒效(後來確定相關功能在我的Ubuntu 20根本沒啟動)


可能性2: 連線有問題timeout掉了(某個中國老兄的文到處被複製,感覺是在瞎扯)

建議connect_timeout=5改成60 (可是我是第0秒就被斷線)

試過加在/etc/mysql/mariadb.conf.d/50-server.cnf裡,無效

試過在Server A進mysql內set global connect_timeout=60;,無效


我知道這不是防火牆的問題,但還是去確認了,真的不是

後來,我從Windows去telnet 192.168.1.100 3306

看到這個訊息Host '192.168.1.123' is not allowed to connect to this MariaDB server

確認連線其實有進去,只是被MariaDB server踢掉了

簡單查了一下,老外很多網站寫得清清楚楚

是帳號根本沒開外網的問題

(用telnet連線還沒試著登入就被擋了。帳號跟不接受連線的關聯其實我不明白)

馬上動手建帳號

MariaDB [(none)]> create user 'root'@'192.168.1.*' identified by 'thisispassword';

MariaDB [(none)]> grant all on *.* to 'root'@'192.168.1.*' with grant option;

MariaDB [(none)]> flush privileges;

再測一次,搞定!


好吧,太久沒摸MySQL/MariaDB或是我從來就不懂這東西

總之被回應的訊息內容誤導方向,浪費太多時間

希望這篇記錄能幫大家一點小忙