# 移機並升級XOOPS超舊網站
###### tags: `移機`, `XOOPS`
建立日期: 2021/11/17
因上面需求我接手一個超舊的Xoops網站,
上面說,只要維持該網站可以正常使用就好~~
其他的我不用管,然後我就入坑了...
最近政府因為資安意識抬頭,
開始進行弱掃並要求修補
然後我手頭的這台主機CentOS已經超過支援期限,
裡面的Apache、PHP、MySQL全都是超舊版本...
無法更新...
只能下載原始碼自己編譯....
只要不小心沒搞好就完了...不敢動~
最近有個php的重大弱點被指名月底前限期改善,
不然就直接限制網路服務(斷網)....


好吧...只好嘗試移機並升級看看
## 當前環境
### 主機環境
軟體
CentOS 6 -> 7.X
PHP 5.6.40 (cli) -> 7.4+ < 8
Apache 2.2.15 -> 最新
MySQL 5.5.62 -> 最新
XOOPS 2.5.7 -> 2.5.10
硬體
RAM 4G
HDD 80G
CPU 2核
### XOOPS當前最新版本
Xoops輕鬆架網站上面看到今年06/15釋出的
XOOPS 輕鬆架 20210615 架站安裝導引檔(XOOPS 2.5.11 Beta)
https://campus-xoops.tn.edu.tw/modules/tad_uploader/index.php?of_cat_sn=11
2.5.11正在Beta
查一下正體中文版的最後正式版與限制
XOOPS 2.5.10 正體中文版
釋出時間: 2019/05/03
限制: PHP >= 5.4
最後補丁檔釋出時間: 2021/10/06 (支援PHP7.4以上)
https://campus-xoops.tn.edu.tw/modules/tad_modules/xoops.php
最後的正式版竟然是2019年 !!
補釘時間比Beta版新~
有一個好處,
就是所使用的套件應該都支援2.5.10吧 XD
### XOOPS支援
xoops 2.5.10 透過補丁可支援PHP 7.4以上
那PHP 8呢?
套件是否也都支援PHP 8呢?
一步一步來...
先嘗試在PHP 7.4成功在考慮PHP 8
## 測試環境選擇 WSL + CentOS 7 (放棄)
載點
https://github.com/mishamosher/CentOS-WSL
已用微軟內建防毒、KVRT、大蜘蛛掃過沒毒
教學
https://www.how2shout.com/how-to/install-centos-on-windows-10-subsystem-for-linux.html
然後參照我之前WSL相關的筆記
不過當時那篇文章是ubuntu / nginx,
我現在是CentOS / apache,
指令雖然不一樣但概念一樣
### 測試環境建立
#### 更新yum源
see. http://ilms.csu.edu.tw/6736/doc/35571
#### 替換systemctl
使用WSL / Docker建立CentOS的話,
無法使用systemctl、service指令,
不然會發生`Failed to get D-Bus connection: Operation not permitted`
因為Docker的設計理念是在容器裡面不運行後台服務
網路上的解決方法是用python替換systemctl
https://superuser.com/a/1556780
```
sudo mv /usr/bin/systemctl /usr/bin/systemctl.old
curl https://raw.githubusercontent.com/gdraheim/docker-systemctl-replacement/master/files/docker/systemctl.py >temp
sudo mv temp /usr/bin/systemctl
sudo chmod +x /usr/bin/systemctl
```
#### 安裝資料庫
CentOS Linux 7 安裝 MySQL/MariaDB 資料庫教學
https://blog.gtwang.org/linux/centos-7-install-mariadb-mysql-server-tutorial/
改root密碼就好,其他安全性沒差
啟動:`systemctl start mariadb`
#### 伺服器
(這段事後補的)忘了安裝apache...失策!!
但發現已經有了 XD
安裝PHP的這一節會自動安裝
如果要裝的話要在php前XD
`yum install -y httpd`
啟動:`systemctl start httpd`
#### 安裝PHP
7.X版最後一個版本的就是7.4
參考這篇:[CentOS 7 上安裝 PHP 7.4](https://blog.hmes.kh.edu.tw/wordpress/wang1126/2021/03/10/285/)
```
systemctl start httpd
systemctl start php-fpm
```
電腦意外當機
然後systemctl就沒再執行成功過了....
整個刪了重來...
裝完後資料庫mariadb服務就無法啟動...
直接移除重裝mariadb
`ERROR:systemctl:Unit mariadb.service not found.`
移除mariadb改mysql...
https://ithelp.ithome.com.tw/articles/10214666
```
yum remove -y mariadb
yum remove -y mariadb*
yum install yum-utils -y
yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm -y
yum install mysql-community-server -y
systemctl start mysqld
```
啟動失敗....
WSL + CentOS放棄~
## 測試環境選擇 VM
CentOS 7 照網路上一般作法安裝
防火牆要開通
sudo setsebool -P httpd_read_user_content 1