Post view

insoler網站重新安裝大改版!升級到macOS 10.13.6、PHP 7.1.23、Dolphin 7.4

BOONEX團隊經過長時間的努力,大幅度修改Dolphin 7.3.5原始程式碼,終於在11th of February 2019發表Dolphin 7.4正式版。這個大幅度修正版本也讓海豚系統終於支援全面大改版的PHP 7。

雖然BOONEX團隊經過測試,宣稱minimal supported PHP version is now 5.4.0最小的PHP版本至少必須是PHP 5.4以上。事實上,截至目前為止,insoler網站主機上使用的PHP版本就是OS X El Capitan 10.11.6內建的PHP 5.5.38,因此可以在不需要改變macOS Server環境與升級PHP版本的情況下,只要直接將網站系統升級到Dolphin 7.4,就可以在現在的OS X El Capitan 10.11.6與PHP 5.5.38上執行大改版的Dolphin 7.4正式版才對。

不過,我並不想這麼做。藉由BOONEX升級到Dolphin 7.4正式版的機會,我決定同時也升級這些項目:

  • macOS Server系統:在Mac mini Server主機重新格式化SSD固態硬碟,並重新安裝全新的macOS High Sierra 10.13.6,而不是直接升級OS X El Capitan 10.11.6到10.13.6。這樣或許可以避免因為跳過10.12這個版本,直接從10.11升級到10.13可能會遇到一些奇怪的問題。沒有升級到目前最新的macOS 10.14.3是因為macOS Mojave 10.14已經不再支援Web Server!請參考這篇文章:在沒有macOS Server之後,只好在macOS Mojave 10.14測試改裝XAMPP 7.2.10、XAMPP 5.6.38、MacPorts
  • PHP 7:雖然我想要同時升級到最新的PHP 7.3,但是透過Homebrew另外安裝的PHP 7.3與PHP 7.2,甚至是PHP 7.1.26都無法在macOS High Sierra 10.13.6的Web Server上正常執行!會導致Proxy錯誤、中斷網頁連線,而使得網頁完全無法顯示!所以決定使用macOS High Sierra 10.13.6內建的PHP 7.1.23。事實上在macOS Mojave 10.14.3內建的PHP也是完全相同的PHP 7.1.23。簡單的說,PHP版本也將從目前的PHP 5.5.38,略過PHP 5.6,直接升級到PHP 7.1.23。
  • 網站CMS系統:海豚系統從Dolphin 7.3.5升級到Dolphin 7.4。
  • HTTPS安全加密:網站的HTTPS加密使用的Extended Validation (EV) TLS/SSL Certificate安全證書,即將在「2019年3月18日星期一」到期,因此我必須訂購新的EV加密認證。

雖然Dolphin 7.4並沒有限定必須在PHP 7以上的版本才能執行,也可以在PHP 5.4版本上執行。但其實BOONEX團隊因此修正了好幾千行程式碼!可說是Dolphin 7.4與前一個版本Dolphin 7.3.5有很大的不同!

更糟的問題是,我在Dolphin 7.3.5上也修正了好幾十個PHP檔案,以及好幾百行程式碼!

在BOONEX與我都有同時大幅度修正程式碼的情況下,要從「Dolphin 7.3.5升級到Dolphin 7.4」變成「困難的任務」。雖然並不算是「不可能的任務」但升級難度卻比以前高很多。很可能會遇到程式碼修正錯誤,導致insoelr網站產生新的問題。

因此,要請各位暫時停止上傳新的照片。因為「相片模組」是修改幅度最多的模組,很可能會在上傳照片時遇到新的問題,導致上傳照片失敗,以及MySQL資料庫錯亂的問題。如果MySQL資料庫錯亂,唯一的解決辦法只有重新匯入舊的資料庫,無法修正問題。因此,在遇到上傳照片失敗的時候,很可能會需要重新匯入舊的資料,導正整個網站回到「3月8日」的情況,而失去一些新的資料。

在地下室安裝全新的Dolphin 7.4與舊版PHP 5.5.38不相容的問題

大改版的Dolphin 7.4可能會遇到許多與舊版之間的相容性問題,可能需要很多時間修改許多PHP程式碼,做各種測試與實驗。為了減少影響正常運作的insoler網站(使用Dolphin 7.3.5系統),當然必須在另外一台Mac mini電腦主機上架設一個全新的地下網站與地下的資料庫。雖然Dolphin 7.4可以在PHP 5.4以上的版本正常執行,但是另外加掛安裝的舊版MOD模組,我另外修改與新增的程式碼就不見得也可以與Dolphin 7.4一起運作!

例如Tiny Technologies Inc.(最有名的產品就是TinyMCE編輯器)設計的檔案上傳與管理模組Moxie-v.1.3.0就無法搭配Dolphin 7.4一起使用!會導致開啟討論曲網頁,就會看到全白的網頁上只有一行Something went wrong! Please try reloading the page.的錯誤訊息!

這個問題,我已經向BOONEX回報,但是不知道什麼時候才會解決這個問題。按照慣例,很可能會需要3-6個月以上。

Moxie-v.1.3.0 can't use in Dolphin 7.4

Maybe BOONEX forgot to update Moxie-v.1.3.0 together when updating Dolphin 7.4.

As long as there is a website with the Moxie module installed, when you open the forum, you will see the error message below:

Something went wrong! Please try reloading the page.

除了Moxie-v.1.3.0無法在Dolphin 7.4底下使用,我自己寫的「最新話題」模組(這是一個可以在insoler首頁顯示討論區最新的標題的模組,BOONEX的Dolphin 7.4也沒有這個功能)在Dolphin 7.4與PHP 7.1.23的環境下,也會看到許多PHP的Notice注意訊息,不能完全正常執行。

macOS Server不再支援Web Server網站伺服器的問題

對於大型的網站來說,絕對會有幾台、幾十台,甚至幾百台Web Server網站伺服器,以及幾台、幾十台,甚至幾百台的MySQL資料庫伺服器主機。但是insoler只是一個非常微小的「奈米社群網站」,我只使用2-3台Mac mini來架設網站。只有一台Mac mini擔任Web Server,一台Mac mini擔任MySQL Server。

因為只有一台電腦主機的關係,如果是直接使用目前運作中的insoler主機,直接關閉運作中的網站,電腦關機,重新安裝全新的macOS High Sierra 10.13.6、Dolphin 7.4的話,萬一遇到無法解決的問題,就會難以復原!當然,要升級網站以前,必須備份整個舊的PHP程式碼、MySQL資料庫,絕對是站長們都必須要做的工作。不過,也會有粗心大意,心急如焚的站長,急著升級系統,卻忘記備份MySQL資料庫,導致整個網站出問題的事情。

我當然會在升級網站以前,做好備份整個舊的PHP程式碼、MySQL資料庫的動作。但是我還不止如此,除了備份所有資料以外,我甚至還「備份整台電腦」!也就是說整台舊的Mac mini電腦,其實完全沒有任何改變!唯一的改變是電腦網路卡的IP位址而已。

我把全新的macOS High Sierra 10.13.6、Dolphin 7.4安裝在另外一台Mac mini主機上。因此萬一遇到無法解決的問題,必須用舊的Dolphin 7.3.5繼續運作,我只要把Mac mini接回到原本的位置,改回原本的IP位址即可。

要如何證明這件事?很簡單,請看底下的畫面。你看到的是3台Mac的畫面。我平時都是透過Remote Desktop遠端桌面的方式來管理網站與資料庫主機。我絕對不使用SSH加密連線。雖然我知道絕大多數的MIS網管人員都是使用SSH來遠端管理電腦主機。但是我絕對不使用任何的命令列環境!

最外面的是MacBook Pro筆記型電腦的整個視窗畫面。裡面則是同時使用Remote Desktop遠端桌面連接兩台Mac mini主機。一台是insoler在升級以前一直使用的OS X El Capitan 10.11.6(畫面的右邊視窗)。

另外一台是insoler升級以後,目前使用的macOS High Sierra 10.13.6版本(雖然目前最新的版本是macOS Mojave 10.14.3)。事實上,你可以簡單的比較一下兩個Remote Desktop視窗畫面的Server視窗上的「服務」項目。你應該會發現macOS 10.11的Server的服務項目比較多,到了macOS 10.13就少了許多。到了macOS 10.14的Server就變得更少,竟然只剩下NAS網路磁碟機功能!

基於無奈的事實,無法使用目前最新的版本macOS Mojave 10.14來架設新的insoler網站,只好使用比較就一點,但還不算太老舊的macOS High Sierra 10.13.6版本來架設新的insoler網站。畢竟macOS High Sierra 10.13.6還有不定期的安全性更新,Apple仍舊繼續協助user維護這個版本。

使用Homebrew安裝PHP 7.3的問題

macOS High Sierra 10.13.6與macOS Mojave 10.14.3內建的PHP(使用者完全不需要另外加裝,全世界所有的Mac電腦都有內建PHP),雖然不是目前最新的PHP 7.3,而是比較舊的穩定版PHP 7.1.23(PHP 7.1系列的最新版本是PHP 7.1.26),但是因為透過Homebrew另外加裝的PHP 7.2、PHP 7.3都無法在macOS High Sierra 10.13.6的Server上正常使用,會導致Web Server的Proxy斷線,導致整個網頁無法顯示!甚至連透過Homebrew另外加裝的PHP 7.1.26都有相同的問題!只能猜想應該是只能搭配Homebrew另外加裝的Apache一起使用。

無奈之下,只好使用Mac內建的PHP 7.1.23。你可以看到,雖然我解決了許多問題,但是HTTPS安全加密認證的SSL只到2019年3月18日為止。這個部分因為「歐盟法規」與「美國法規」不同,因應「歐盟法規」移除了Whois上面的網域管理者的email個人資料,導致我無法立即更新安全認證!

HTTPS加密使用的Extended Validation (EV) SSL Certificate的問題

在「2019年3月18日星期一」到期以前大約30天,我收到comodo寄來的Renew更新認證的通知信,我以為只要「續訂EV認證」就可以簡單的解決,想不到竟然完全不是!原來在美國人眼裡,所謂的「Renew」就跟第一次購買EV認證完全相同!

你可以在這個畫面上看到,需要經過許多的認證手續,才能Renew已經快要到期的EV憑證!

由於我是在2年前買了EV認證,當年還沒有通過「歐盟法規」,沒有個人隱私的問題。所以只要確認公司相關資料,就可以取得HTTPS的EV認證。但是負責管理全球網域的「ICANN」因應新的「歐盟法規」移除了網域名稱的「個人隱私」資料,最大的差異是不再登記email,導致許多SSL認證的公司,包括comodo都無法從WHOIS找到任何的Email Address資料!

事實上,在「登記網域資料」的一開始我就不認為應該要公開該網站的連絡人相關資料!所以無論是我最早使用的brentsu.com、bnw.com.tw,以及現在的insoler.com,我在訂購網域時,我都是在申請表格上輸入「垃圾Email Address」!

所謂「垃圾Email Address」就是Gmail、MSN、Yahoo等電子郵件!這些屬於各大網路公司的「Email Address」事實上並不屬於我個人擁有!所以我一直以來都是用來收「各種垃圾信、各種垃圾通知信、各種垃圾廣告信」的「垃圾信箱」!

既然過去的WHOIS要公開個人email資料,我當然是公開「垃圾Email Address」。但是在「歐盟法規」正式通過以後,就不能再公開任何的email,這也導致還沒有放棄email認證的SSL發行公司,還在使用email認證!

今天comodo又寄了新的通知信件,提醒我要Renew Your Expiring SSL Certificate的時間只剩下「5天」!

事實上我已經訂購了新的EV SSL Certificate認證,但是因為WHOIS移除email資訊,再加上comodo又必須像第一次購買EV SSL Certificate認證一樣,重新認證電話、公司登記證等資訊,我非常懷疑能否趕在倒數最後一天以前完成新的EV認證!

所有會出問題的地方,全部都有非常頭痛的問題

BNW網站就是在「無法升級到相簿系統Gallery3」,而且討論區系統的phpBB更新速度極為緩慢,幾乎無法大幅度更新系統,只好決定放棄更新,重新架設一個全新的insoler網站。搜尋一下phpBB與PHP 7就會找到有人問這樣的問題:


Updating to php7

May 03, 2017 3:20 pm

Good Afternoon,

I was wondering if there is an issue with updating to php 7? I did so on my server and revieve the following error:

SQL ERROR [ mysql4 ]

mysql_connect function does not exist, is mysql extension installed? 

An sql error occurred while fetching this page. Please contact an administrator if this problem persists.

Everything else works fine on our server but phpbb3 with this update. 

phpBB2 升級 PHP7 遇到的問題

我重裝 phpbb 2.0.23 ,發現原始版本的 phpbb_posts 只有 13個欄位, phpbb_posts_text 只有4個欄位,phpbb_topics 只有 13個欄位,所以這個網站新增了很多外掛(MOD)。

2019-01-12 08:25

如果有心 phpBB2 升級的話,建議您直接轉換成最新 phpBB 3.2.5。

升級前,做好(資料庫與討論區程式)備份,失敗再回復;

升級後,只有保存會員、文章、附加檔案等,其餘斷捨離。


當然,不例外的,insoler也在升級系統的時候,因為PHP 7大改版的問題,也導致許多網站都會遇到PHP 7的問題!但至少解決問題的難度不如老舊的phpBB 3.2.5與Gallery 3那樣,完全是「不可能的任務」!完全不可能升級!

雖然phpBB 3.2.5是目前最新的版本,看似沒有很老舊的phpBB 3.0.4 released竟然是在Dec 12, 2008發表,經過了10年歲月,也只不過從phpBB 3.0發展到phpBB 3.2而已!這當然也是我決定廢棄、淘汰phpBB的主要理由。

簡單的說,以上的所有環節,沒有一個步驟沒有出問題!

  • macOS Server系統:因為macOS Mojave 10.14已經不再支援Web Server,只剩下NAS網路磁碟機功能,只好從目前OS X El Capitan 10.11.6升級到macOS High Sierra 10.13.6。雖然說是升級,但我是在Mac mini Server主機重新格式化SSD固態硬碟,並重新安裝全新的macOS High Sierra 10.13.6。然後安裝可以在macOS High Sierra 10.13.6使用的Server 5.6.3!
  • PHP 7:雖然我想要同時升級到最新的PHP 7.3,但是透過Homebrew另外安裝的PHP 7.3與PHP 7.2,甚至是PHP 7.1.26都無法在macOS High Sierra 10.13.6的Web Server上正常執行!會導致Proxy錯誤、中斷網頁連線,而使得網頁完全無法顯示!所以決定使用macOS High Sierra 10.13.6內建的PHP 7.1.23。
  • 網站CMS系統:從Dolphin 7.3.5升級到Dolphin 7.4就會發現Moxie-v.1.3.0無法在Dolphin 7.4底下使用,我自己寫的「最新話題」模組,也會看到許多PHP的Notice注意訊息,不能完全正常執行。
  • HTTPS安全加密:網站的HTTPS加密使用的EV SSL Certificate安全證書,即將在「2019年3月18日星期一」到期,卻因為「歐盟法規」的關係,被Hinet移除了網域名稱公開資訊的「WHOIS」裡面的email信箱資訊,導致comodo因為無法找到「WHOIS」的email,而無法完成EV認證!

現在,雖然新的insoler已經在Dolphin 7.4與PHP 7.1上正式運作,但還是有一些頭痛的問題需要解決。例如:

  • 新增的許多語言單字,必須對應到多國語系。至少要對應到中文、日文。
  • 討論區的標題上使用「單引號」的話,會發生被轉換成「\'」的問題。
  • Dolphin 7.4的執行速度比舊的Dolphin 7.3.5還要更慢!雖然PHP 7.1比PHP 5.5更快,但是更複雜的PHP程式碼完全抵消了PHP 7.1速度更快的優勢!
  • 檔案上傳與管理模組Moxie-v.1.3.0就無法搭配Dolphin 7.4一起使用!而且不知道BOONEX需要幾個月才能修正問題,讓老舊的Moxie模組支援PHP 7.1,因為會導致整個討論區網頁無法顯示,因此只能移除老舊的Moxie模組。
蘇言霖 2019/03/08 0 1032
Comments
Order by: 
Per page:
 
  • There are no comments yet
Rate
0 votes
Post info
蘇言霖
「超級懶貓級」社群網站站長
2019/03/08 (2106 days ago)
Actions