日期:2020/06/23
一直以來我都是喜歡把各種軟體更新到最新,第一批就更新那種,俗稱白老鼠。iPhone / Win10 / WordPress 和外掛等等,不過目前為止還沒遇到甚麼太大的問題。
最近登入Wordpress時看到“PHP 版本執行環境必須更新”的訊息,上面寫說
“PHP 是用於建置及維護 WordPress 的程式語言。較新版本的 PHP 能提供更快的執行速度及更高的安全性,因此升級 PHP 版本會對這個網站的效能帶來正面的影響。”
身為一個喜歡把軟體更新到最新的人來說,這個訊息大概讓我好幾天睡不著覺,但是更新PHP不是按紐就完成,必須要開啟VPS的指令,我對操作很陌生而且很害怕。
這個部落格是架設在Vultr這個虛擬專用伺服器(VPS)上,操作系統是Unbutu 16.04,網頁系統是Apache,使用PHP7.0 + myaql。現在需要更新PHP7.0到PHP7.4。
第一步:先用snapshots備份VPS,因為我很怕操作錯誤出事。
第二步:用all-in-one WP migration備份網站,因為我真的很怕操作失誤整個網站沒了。
第三步:打開虛擬伺服器的View Console開始打入指令
1) sudo apt -y install php7.4 (安裝php7.4)
2) sudo a2dismod php7.0 (告訴apache不要再使用php7.0版本)
3) sudo a2enmod php7.4 (告訴apache使用php7.4版本)
結果在這裡出現錯誤訊息”Error: Module php7.4 does not exist!”,我最怕的錯誤訊息,明明已經安裝php7.4,怎麼會說沒有。
4) php –version (明明已經顯示PHP版本是7.4.7,為什麼還是錯)
5) 原來在安裝PHP新版本的時候,有打錯一次,安裝成PHP7.4-FPM,這是給另外一個主流網頁伺服器nginx使用的。果然是半路出家才搞出這種烏龍,系統裡面安裝兩種不同的PHP套件。
sudo apt-get purge php7.4-fpm (把PHP7.4-FPM刪除)
6) 重新跑一次指令
sudo apt -y install php7.4 (安裝php7.4)
sudo a2dismod php7.0 (告訴apache不要再使用php7.0版本)
sudo a2enmod php7.4 (告訴apache使用php7.4版本)
sudo service apache2 restart (重新啟動apache)
7) 都打完也沒有錯誤訊息,開開心心打開網頁,出現另外一個錯誤訊息,這下連網站都進不去了。
網站伺服器的PHP環境缺少 WordPress 需要的MYSQL擴充功能。
冷靜下來之後依照字面上的意思判斷,應該是有功能被關掉或是需要重新啟動。翻了一些網頁看了教學之後,靈光一閃把apache重新再開。
沒錯,就是傳說中的重開機治百病。基本上遇到電腦有問題我第一個指令就是先重新開機。
重新開兩次之後網站就可以進去了,認真不騙,重開了兩次就完成收工,可能有某個程式被啟動了吧。
對於專門的人來說,以上的過程大概需要3分鐘就完成。但對於我這種架好網站之後2年多都沒有再去下指令的人來講,就是真的很忐忑。
當初在架設主機時,選擇了這個需要打指令的主機,沒有選擇Google的Bitnami服務,就是因為追求更快一點點的載入速度和100%的自由度,不想要把主機設定交給別人處理。用個廣義的譬喻,就是去便利商店買最簡單的炒飯拿去加熱吃一吃,或是自己在家裡開火炒飯這兩種差異。
有過前幾次架設網站debug的經驗,這次我直接上vultr找support team開ticket給他們教我,因為在網站上的FAQ教學都是過期的文章。
Vultr在開出ticket之後3分鐘內迅速回我該下的指令有哪些,如果我把完整的作業環境給對方,對方給我正確的指令的話,應該整個過程10分鐘內就結束了。
我們在溝通的時候經常以為對方fully understand我們的背景環境和需求,但以對方角度來說,真的只能片面的提出改善的方式,而他也盡力提出真的是解決的方法,不過那個方式是不是適用在我們身上,不一定。只有兩個方式:去試驗 or 主動告知對方我們的完整背景和需求。
2 則留言
Apach 其實也建議使用php-fpm 模式,而不是使用傳統的apach php 模式,性能和安全性都會好很多
謝謝分享,我來研究一下。