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