2021年8月30日 星期一

樹莓派一代再次的重灌 Orz

原本想說三、四年間應該不用再重灌的
結果還是遇上了不得不重灌的情況
好加在去年2月重灌時有留筆記,一些問題解決的很快
但還是缺了一些後來搞出來的東西
所以趁著記憶還在,趕快再筆記一下。

前面還是沒什麼變
進raspi-config
改密碼 *****************
改區域 zh_tw.utf8
改時區 taipei
開SSH伺服
開鏡頭
結束,重開機,換回一般電腦用ssh連線繼續

接著,灌mariadb
sudo apt-get install mariadb-server
這次先不改密碼
接著灌Apache2
sudo apt-get install apache2
再裝php7
sudo apt-get install php
完成LAMP的設定

接著安裝phpmyadmin
sudo apt-get install phpmyadmin
這次不像上次多卡了一次
因為MariaDB沒設密碼的關係一次就設定完成
接著記取上一次教訓,先把phpmyadmin.conf加入Apache2的設定檔apache2.conf內
再來修正phpmyadmin裡的程式碼解決warning問題
正當覺得一切都很順利時
又卡新的問題了
第一個比較好解決,因為MariaDB剛裝完,預設密碼為空所以phpmyadmin不給空密碼登
那就進mariadb系統,重設密碼解決
第二個就卡的比較久一點了,root不給非本機登入
這算合理啦,可是上次沒遇過,看來是phpmyadmin改版的關係
解法有兩個,一個另建一組帳號給予root權限
我是先用第二種,從MariaDB 全新安裝遇到 ERROR 1698 (28000) 錯誤怎麼辦查到的
輸入sudo 
mysql_secure_installation
開放root可以連對外的權限
雖然不是很安全,暫時先這樣處理到,我不用再外部root登入為止。

那Apache2的SSL設定上,本來以為很會簡單
結果還是出錯了幾次
首先上次的連結建立指令有誤,路徑輸入錯誤,mod沒有加s啊
正確的如下
sudo ln -s /etc/apache2/mods-available/ssl.conf /etc/apache2/mods-enabled/ssl.conf
sudo ln -s /etc/apache2/mods-available/ssl.load /etc/apache2/mods-enabled/ssl.load
sudo ln -s /etc/apache2/mods-available/socache_shmcb.load /etc/apache2/mods-enabled/socache_shmcb.load
接下來,預設的安全連線也不是用443,而是其它的
最後還是得進ports.conf把那個port打開
還好,有做筆記

php的部分,上次都修的差不多,所以沒什麼問題
把原本備份的檔案放回去就好
比較有問題的是去年9月完成websockets的實作後自己寫的一個服務
原本的設定是寫在rc.local裡
用nohup跟&做背景執行
但是,搞完apache2後,卻發現服務一直沒有啟動
檢查Log後才發現,原生的python沒裝websockets模組
所以要
使用pip3指令安裝websockets模組
但是預設pip3也沒有裝,所以要先執行sudo apt install pip3
再執行sudo pip3 install websockets
記得,一定要掛sudo,不然就只有執行pip3的帳號有能力使用
這樣在rc.local裡用root帳號執行時
還是會找不到websockets模組,一樣會失敗
切記切記

最後剩下的,就是mysql的資料庫復原
因為系統是處於無法開機的狀況下
所以我只能救「檔案」出來
對,理論上mysql存取應該也是檔案存
但是,我不知道存哪裡
上網查一開始也都套錯關鍵字,得到的都是.sql的備份檔匯入處理方式
最後才知道,資料是存在/var/lib/mysql/裡
找到歸找到,可是資料複製不出來
因為我是用另一台樹莓派開檔,權限過低沒辦法處理
最後是用root權限強制複製出來,才放心地把原系統整個清空重灌
那復原呢?簡單
先建一個有相同名稱的資料庫與表單
我是拿去年備份的sql進行還原
再把*.frm與*.idb檔覆蓋掉同名的檔案
當然,記得要先停止mysql的服務後,才可以這樣做
複製時,記得也要下sudo cp才可以複製得進去
這樣資料就回去啦
整個重灌也終於才完成
萬歲!
希望這次真的可以撐個3、4年再重新處理。

沒有留言: