Post view

insoler社群網站正式升級到最新版macOS Catalina 10.15.4、PHP Version 7.3.15、ImageMagick 3.4.4

目前擔任insoler Web Server網站伺服器主機的是一台Mac mini Server、搭載16GB 1600MHz DDR3記憶體、Apple原廠250GB SSD固態硬碟。使用的系統版本是目前最新版本的macOS Catalina 10.15.4。

但是在關於這台Mac的畫面上只會看到主機名稱只有寫Mac mini。其實這是macOS Catalina 10.15.4系統本身的問題!請繼續看一下就會了解這個問題點。

在另外一台同樣安裝macOS Catalina 10.15.4也只有寫Mac mini。你可以從主機的序號分辨出這是兩台不同的Mac mini。事實上我買了規格、配備完全相同的3台Mac mini。都是搭載:

  • 第3世代Intel® Core™ i7-3720QM Processor 2.6GHz四核心Intel Core i7 (6M Cache, Turbo Boost 最大可達 3.6GHz)。
  • 16GB 1600MHz DDR3記憶體。
  • Apple原廠250GB SSD固態硬碟。

Mac mini全系列都沒有額外搭載獨立的繪圖晶片,所以只有Intel原廠性能非常差的Intel HD Graphics 4000圖形處理器。不過,這一點都不影響網站性能,也不影響我的日常管理操作。因為insoler的全部網站主機,以及這3台Mac mini全部都沒有連接任何一台電腦螢幕!而是透過網路,以遠端管理的方式來操控電腦,因此就算搭載非常差的繪圖晶片,也沒有任何影響。

在2020年初以前,insoler一直都是使用3台中的其中2台Mac mini分別擔任:

  • Web Server:網站伺服器主機。
  • MySQL Server:資料庫伺服器主機。

第3台Mac mini則是擔任BNW會議室的主機。雖然BNW網域已經租約過期,這個網域已經不再使用,但其實在insoler內部網路還是正常存在!所以只有我們可以正常開啟BNW會議室的網頁,將來我會把整個BNW都轉移到insoler網站上,讓BNW會議室重生。

在今年2020年1月的時候,某阿光平日使用的MacBook Pro 15.4英吋筆記型電腦的螢幕已經完全故障,畫面閃爍,無法顯示,甚至有時候主機完全找不到MacBook Pro內建的螢幕!

所以就只好把這台MacBook Pro當做有內藏鋰電池的Mac mini主機來用。目前擔任的是MySQL Server資料庫伺服器主機。而原本擔任資料庫的Mac mini主機,則是改成擔任新的UNA系統的網站主機,這是準備要從insoler目前使用的海豚系統,將來轉移到全新的UNA網站系統上。

對從來都沒有用過Mac電腦的人來說,這個畫面似乎並沒有什麼問題。但其實很明顯少了2個很重要的資訊!一個就是應該要包含主機出廠年份的「主機完整名稱」,以及「記憶體」的標籤頁面!請對照上面的Mac mini畫面,就會發現在「儲存空間」旁邊應該要有一個「記憶體」標籤頁才對!

明明是安裝版本完全相同的macOS Catalina 10.15.4,竟然會看到不太一樣的畫面!特別是少了「記憶體」的標籤頁面就非常奇怪!這個問題我想在10.16發表以前,Apple大概都不會著手修正!因為這沒有影響「安全性」!Apple並不會因為安全性更新而修正其他的使用問題!

無論是Mac mini還是MacBook Pro,由於「關於這台Mac」的顯示內容一直都不正確,所以我想也許這會不會是繁體中文翻譯錯誤的關係?於是切換到英文語系,發現結果還是完全一樣!

但是,切換到日文語系,竟然發現主機完整名稱竟然恢復正常!不過很重要的「記憶體」標籤頁還是消失中!可以看到這是一台MacBook Pro (Retina, 15-inch, Late 2013)的筆記型電腦。搭載的配備是:

  • 第4代Intel® Core™ i7-4850HQ Processor (6M Cache, up to 3.50 GHz)、2.6GHz 四核心 Intel Core i7 處理器 (Turbo Boost 可達 3.8GHz),配備 6MB 共享 L3 快取。
  • Apple原廠16GB 1600MHz DDR3L 機板內建記憶體(意思是使用者無法自行更換或是升級)。
  • Apple原廠512GB SSD固態硬碟。

既然改成日文語系就能恢復正常,所以前面的Mac mini也切換到日文語系,就會看到這是一台Mac mini (Late 2012)的老舊主機。24小時開機,從不曾關機,連續跑了8年,到現在都還可以正常使用!繼續擔任insoler的主機。事實上,這台Mac mini當年就是特地買來做為新的insoler的主機。而當年的BNW則是繼續使用更早以前買的Mac mini (Late 2009)、2.53 GHz Intel Core 2 Duo、8 GB 1067 MHz DDR3。

在MacBook Pro主機上,打開系統偏好設定,就會看到多了一個MySQL的圖示。因為這台15.4吋螢幕故障的筆記型電腦(號稱內建鋰電池、擁有不斷電功能的Mac mini)目前是用來擔任insoler的MySQL Server資料庫伺服器主機。

由於目前最新的MySQL Community Server 8.0.19無法在macOS Catalina 10.15.4使用,安裝完畢以後,MySQL Server自己會會不停的當機、重新啟動!因此我還是繼續使用老舊的MySQL 5.6版。

除了insoler網站的Mac mini Server主機升級到最新版macOS Catalina 10.15.4,並且透過Homebrew安裝了目前最新的PHP 7.3.15(雖然7.4版已經正式發表,但Homebrew還沒有釋出7.4更新版本)與Apache的Web Server網站伺服器。

所以我也再次測試了「RAW轉JPEG」的功能!事實上從10.12〜10.15,Apple只要發表新的版本,我都會再做一次相同的測試,用來確認「RAW轉JPEG」的功能是否正常?很幸運的是,從Homebrew安裝的PHP 7.3.15竟然可以正常執行「RAW轉JPEG」的功能!而且轉換以後的JPEG圖檔也完全正常!沒有全黑圖檔,甚至是完全無法產生圖檔的問題!

關於macOS 10.12、10.13、10.14從PHP呼叫sips指令處理RAW轉JPEG會產生全黑圖檔、破碎圖檔、錯誤訊息的問題

由於使用的是8年前的Mac mini (Late 2012)的老舊主機,在轉換EOS 6D的RAW照片檔案的時候,大約需要3-4秒左右的處理時間。也許你的電腦性能更好許多,只需要1-2秒左右。但我猜想,就算是使用第10代Intel Core i9電腦,也很難在低於1秒內就能完成RAW轉JPEG的動作!

網站使用的 PHP 版本:7.3.15 版

shell_exec() 執行的指令:/usr/bin/sips -s format jpeg --setProperty formatOptions 40% "/Library/WebServer/Documents/insoler/modules/boonex/photos/data/files/200100.CR2" --out "/Library/WebServer/Documents/insoler/modules/boonex/photos/data/files/200100.JPG"

RAW 轉 JPEG 圖檔的轉換時間:3.1283800601959

從phpinfo畫面可以看到insoler網站目前使用的是最新的PHP Version 7.3.15。

號稱是「命令列模式的Photoshop」的ImageMagick也是安裝目前的最新版本imagick 3.4.4。你可以看到畫面上是ImageMagick release date 2020-03-08,在上個月才剛剛更新的最新版本。

Zend OPcache當然是使用PHP 7.3.15內建的快取模組,這個快取模組可以加速許多PHP的運算效率。

由於Apple在10.14已經正式廢止macOS Server,不能在macOS Server上架設Web Server網站,因此以後就只能改成從Homebrew下載安裝架設Web Server網站所需的Apache、PHP、ImageMagick、Let's Encrypt(https的SSL加密)等最新的版本!

缺點是管理Web Server需要花更多心血(缺少macOS專用的圖形管理介面程式),優點則是不用再等Apple更新PHP版本,只要Homebrew有提供最新版本或是安全性更新版本,就可以盡快更新網站系統版本,跟上時代腳步,並減少bug,解決安全性問題。

擁有「世界初、支援直接上傳RAW檔案的insoler社群網站」其實一直都是使用有點老舊的macOS版本,在2018/09/27以前,使用的是OS X El Capitan 10.11.6,直到2年前的2018/09/27終於解決了「RAW轉JPEG檔案」的問題以後,才決定正式升級到當時的舊版macOS High Sierra 10.13.6。

請參考我在2018/09/27寫了這篇文章:

macOS Mojave Server 10.14已不再是伺服器,insoler只能升級到macOS High Sierra 10.13.6

只能升級到10.13.6的最大原因,主要是因為Apple發表新的10.14版本的時候,竟然決定放棄Web Server的網站伺服器相關功能!

如果從Windows的角度來看,如果微軟停產Windows Server 2019的話,使用者只能使用普通使用者版本的Windows 10 Pro或是Windows 10 Home來架設網站,雖然並非不可能的任務,但是在普通版的Windows 10上架設網站的話,網站的穩定性很可能會不如專業的Windows Server 2019。

也因此,為了追求insoler網站的穩定性,我也只好放棄當時的最新版本10.14,選擇從10.11.6升級到macOS High Sierra 10.13.6。

不過,MySQL資料庫伺服器從10.6.5以後,就不再綑綁在Mac OS X Server裡面,一直都是從MySQL Community網站下載macOS專用的版本,獨立安裝,所以可以不需要安裝Apple的macOS Server版,也可以在標準版的macOS 10.14上安裝MySQL Server。

也因此資料庫伺服器主機,就安裝當時最新的macOS Mojave 10.14。後來則是繼續升級到最新的macOS Catalina 10.15.4。

insoler網站的資料庫伺服器主機升級到macOS Mojave 10.14最新版本與MySQL Community Server 5.6.41

當然,我也嘗試過在macOS Mojave 10.14測試XAMPP 7.2.10、XAMPP 5.6.38、MacPorts,但是就像我提到的,這些網站套件的穩定性都遠不如Apple原廠的Server!同樣的,在普通版的Windows 10 Pro上面裝XAMPP(以前的WampServer)的網站穩定性也遠遠不如Windows Server。這絕對不是「猜測」!而是我實際安裝測試過的結果。

在沒有macOS Server之後,只好在macOS Mojave 10.14測試改裝XAMPP 7.2.10、XAMPP 5.6.38、MacPorts

為了網站的穩定性,只好一直使用macOS High Sierra 10.13.6。雖然Apple在今年2020 年 3 月 24 日還是有發表macOS High Sierra 10.13.6的安全性更新:

Apple 安全性更新 - Apple 支援

macOS Catalina 10.15.4、安全性更新 2020-002 Mojave、安全性更新 2020-002 High Sierra macOS High Sierra 10.13.6、macOS Mojave 10.14.6、macOS Catalina 10.15.3 2020 年 3 月 24 日

不過,我們可以從更新支援的表格裡面發現,已經不再支援10.13以前的10.12、10.11的安全性更新。因此,當Apple在今年發表10.16全新版本的時候,也可以推測,Apple大概不會繼續提供10.13的安全性更新。為了網站的安全性,提早升級到新的10.15以後的版本,才是比較明智的選擇。

雖然Apple已經停產macOS Server,不能在macOS上面簡單的架設網站,但其實所有的macOS都有內藏Apache與PHP,只不過一般使用者不會注意到這點。你可以走進任何的Apple Store展示間,隨便使用任何一台Mac電腦,打開終端機(相當於Windows的命令提示字元模式),然後輸入php -v就會看到這樣的畫面:

php -v

PHP 7.3.11 (cli) (built: Feb 29 2020 02:50:36) ( NTS )

Copyright (c) 1997-2018 The PHP Group

Zend Engine v3.3.11, Copyright (c) 1998-2018 Zend Technologies

簡單的說,其實Mac OS X從10.0的一開始,直到今天,事實上一直都是只有Server伺服器版本!Apple不像微軟把Windows區分為Windows Server與Windows Home兩大版本。Apple其實是使用Server打造所有的Mac OS X版本,而在伺服器版本上追加專用的簡單好用的伺服器管理工具程式。缺少了專用的管理工具程式,雖然還是可以自己手動設定,手動管理、手動架設Web Server,但就會需要付出更多管理上的心血。

除了我提到的XAMPP 7.2.10、XAMPP 5.6.38、MacPorts,在macOS上還有一個Homebrew(簡稱brew)的社群工具可以使用。只要透過Homebrew就可以另外安裝Apache、PHP、ImageMagick...

雖然Apple因為幾乎沒有多少人想要買Apple的Server伺服器主機、系統,放棄了整個Server市場,但幸好還有Homebrew、MacPorts社群還在為macOS提供更多服務。

我以前寫了好幾篇關於PHP的速度測試比較。這是其中2篇文章:

「物件導向程式」PHP 7.2.15真的比PHP 7.1.23的執行速度還要更快?

「物件導向程式」與「非物件導向程式」的PHP 5.5、PHP 7執行速度效能大測試!

這次在升級macOS Catalina 10.15.4與PHP Version 7.3.15以後,當然要再重新測試一次!底下的測試結果,全部都是重新測試的最新結果!


Mac mini (Late 2012) :

網站使用的 PHP 版本:5.5.38 版

非物件導向程式,普通 PHP 副程式的執行時間:8.8444628715515 秒

網站使用的 PHP 版本:5.5.38 版

PHP 物件導向程式執行時間:11.346959114075 秒


Mac mini (Late 2012) :

網站使用的 PHP 版本:7.1.33 版

非物件導向程式,普通 PHP 副程式的執行時間:4.7213530540466 秒

網站使用的 PHP 版本:7.1.33 版

PHP 物件導向程式執行時間:4.7621841430664 秒

PHP 物件導向程式執行時間:4.8421759605408 秒


Mac mini (Late 2012) :

網站使用的 PHP 版本:7.3.11 版

非物件導向程式,普通 PHP 副程式的執行時間:4.184641122818 秒

非物件導向程式,普通 PHP 副程式的執行時間:4.1889100074768 秒

網站使用的 PHP 版本:7.3.11 版

PHP 物件導向程式執行時間:4.2198650836945 秒 

PHP 物件導向程式執行時間:4.4577078819275 秒


Mac mini Server (Late 2012) :

網站使用的 PHP 版本:7.3.15 版

非物件導向程式,普通 PHP 副程式的執行時間:4.1465530395508 秒

非物件導向程式,普通 PHP 副程式的執行時間:4.3262758255005 秒

非物件導向程式,普通 PHP 副程式的執行時間:4.5892188549042 秒

網站使用的 PHP 版本:7.3.15 版

PHP 物件導向程式執行時間:4.2702870368958 秒

PHP 物件導向程式執行時間:4.5515449047089 秒


MacBook Pro (Retina, 15-inch, Late 2013):

網站使用的 PHP 版本:7.3.11 版

非物件導向程式,普通 PHP 副程式的執行時間:3.8402800559998 秒

非物件導向程式,普通 PHP 副程式的執行時間:3.835391998291 秒

網站使用的 PHP 版本:7.3.11 版

PHP 物件導向程式執行時間:3.6979310512543 秒

PHP 物件導向程式執行時間:3.6964569091797 秒


MacBook Pro (16-inch, 2019):

網站使用的 PHP 版本:7.3.11 版

非物件導向程式,普通 PHP 副程式的執行時間:2.6242299079895 秒

非物件導向程式,普通 PHP 副程式的執行時間:2.5578269958496 秒

網站使用的 PHP 版本:7.3.11 版

PHP 物件導向程式執行時間:2.5202388763428 秒

PHP 物件導向程式執行時間:2.5194470882416 秒


從以上的測試結果來看,很明顯目前最新的MacBook Pro (16-inch, 2019)、2.4 GHz 8核心Intel Core i9、64 GB 2667 MHz DDR4,跑出來的速度最快!執行相同的PHP程式碼(這是我自己寫的測試PHP程式碼)所需的時間最短!

不過,規格、配備完全相同的Mac mini (Late 2012) ,從PHP 5.5.38的升級到PHP 7.3.15版,執行速度竟然快了2.5倍!

網站使用的 PHP 版本:5.5.38 版

PHP 物件導向程式執行時間:11.346959114075 秒

網站使用的 PHP 版本:7.3.15 版

PHP 物件導向程式執行時間:4.5515449047089 秒

事實上,這並不只是「測試用的實驗結果」實際上並沒有快了2.5倍的感受?我在前面有提到,這是現在測試的結果,並不是引用歷史數據!

因為你看到的「網站使用的 PHP 版本:5.5.38 版」就是insoler在升級以前的版本,請參考在2018/11/04寫的這篇文章:

在OS X El Capitan 10.11.6安裝ImageMagick 7.0.6、php55-ssh2、Zend OPcache的PHP快取模組

雖然insoler後來升級到10.13,但其實我並沒有拋棄OS X El Capitan 10.11.6!因為BNW使用的phpBB無法升級版本的關係,因此insoler是使用不同的Mac mini (Late 2012) 來安裝新的10.13,而把BNW轉移到主機到Mac mini (Late 2012),仍繼續維持在OS X El Capitan 10.11.6版。因此我其實是在BNW主機上來測試PHP 5.5.38版本的效能。

因此,如果把insoler網站搬家回到當年的舊版OS X El Capitan 10.11.6、PHP 5.5.38,網頁的開啟速度絕對會比現在更慢2.5倍~3倍!

或許新的PHP 7.4版的性能又會比PHP 7.3更快一點點。

簡單的說,我為了架設全新的insoler網站,當年買了Mac mini (Late 2012),在主機配備完全不升級的情況下,只有升級macOS系統版本與PHP版本,卻跑的比以前還要更快非常多!我相信確實是有比2018年的OS X El Capitan 10.11.6還要快上2-3倍的感受!

蘇言霖 2020/04/11 0 879
Comments
Order by: 
Per page:
 
  • There are no comments yet
Rate
0 votes
Post info
蘇言霖
「超級懶貓級」社群網站站長
2020/04/11 (1474 days ago)
Actions