精品軟體與實用教程
手把手教你配置CyberPanel web 伺服器面板
如果你正在使用WordPress建站來搭建博客,那麼OpenLiteSpeed Web或許是你最佳的選擇,LiteSpeed是Apache (阿帕契)的替代品,使用LiteSpeed作為web服務端,其網站的存取速度遠高於Apache和Nginx的解析速度。 LiteSpeed 提供了更好的效能,可以減少資源佔用。而且CyberPanel 是第一個使用免費的 OpenLiteSpeed Web伺服器開源面板!
最關鍵的是LiteSpeed 提供了一個WordPress快取插件 LiteSpeed Cache ,LiteSpeed Cache幾乎是傻瓜式插件,只需幾步簡單的設置,就可以讓WordPress的訪問速度快到起飛,毫不誇張的說!
CyberPanel 是第一個LiteSpeed為web伺服器的Linux面板,使用LiteSpeed Cache簡單優化之後Gtmetrix 和Google PageSpeed Insights 的評分幾乎都是A,這個結果讓人十分滿意。因為無論是Google還是Bing,搜尋引擎排名的第一重要因素就是網頁的開啟速度,也就是說在進行任何SEO優化之前,選擇一個正確的Web伺服器端是非常重要的,下面詳細介紹一下,安裝CyberPanel之後的詳細設定。
CyberPanel官網:https://cyberpanel.net/
CyberPanel安裝
簡單說一下 CyberPanel安裝 ,2023年9月CyberPanel在伺服器版本安裝上有一些調整。不再支援Centos以及CentOS Stream系統,還有Rocky Linux和Red Hat
- 全新安裝Ubuntu 20.04、Ubuntu 22.04、CloudLinux 7、CloudLinux 8、AlmaLinux 8 的伺服器。
- 1024MB RAM 或更高
- 10GB磁碟空間
注意:Ubuntu只支援Ubuntu 20.04、Ubuntu 22.04這兩個版本,不要使用高版本,例如Ubuntu 23,Ubuntu 23是無法安裝CyberPanel的,很多安裝CyberPanel失敗的,大多都是伺服器系統的原因。
在安裝CyberPanel的過程中,CyberPanel包含了兩個版本,CyberPanel 與 CyberPanel Ent 簡單介紹一下這兩個版本。
CyberPanel 的這兩個版本100% 相同。唯一的差別是後端運行的是哪個Web 伺服器。
- CyberPanel附帶OpenLiteSpeed,並且完全免費,適用於無限數量的網域和工作進程。
- CyberPanel Ent隨附LiteSpeed Web Server Enterprise,並且對1 個網域免費。如果您需要1 個以上域名,您可以查看我們的定價頁面。 CyberPanel 授權包含LiteSpeed Enterprise 授權的價格。
CyberPanel是免費使用的Web服務端是開源的OpenLiteSpeed,CyberPanel Ent是收費的,Web服務端是商業版的LiteSpeed Web Server Enterprise。
下面來看看兩個版本有什麼不一樣:
CyberPanel OpenLiteSpeed
OpenLiteSpeed 是我們的免費開源Web 伺服器,最常用於不經常變更的單一網站。這是因為OpenLiteSpeed 需要重新啟動才能載入任何新的.htaccess 檔案。
- 強大的快取引擎
- 與Apache 相容的重寫規則
- CyberPanel 和DirectAdmin 相容性
- 無限的工作流程
- 業界標準mod_security 庫
- 開源、免費
- 社區支持
CyberPanel Ent LiteSpeed Web Server Enterprise
LiteSpeed Web Server 企業版非常適合更新頻繁的共享託管環境。 LiteSpeed Web Server 自動偵測.htaccess 的變更並根據需要進行調整,而無需重新啟動。
- 更強大的快取引擎
- 完全相容Apache
- 與cPanel、Plesk、DirectAdmin、CyberPanel 等相容
- 基於許可證的工作進程數
- 專有的高性能mod_security 引擎
- SSL 握手卸載
- 商業版,免費
- 商業支持
查看CyberPanel和CyberPanel Ent詳細功能比較。
在了解了CyberPanel和CyberPanel Ent詳細功能後,免費開源的CyberPanel就可以滿足建立WordPress網站的需求了。在伺服器上安裝CyberPanel是很簡單的。
下面在Google Cloud的虛擬機器實例上進行安裝CyberPanel。
新Google Cloud 虛擬機器實例
首先開通Google Cloud ,在Google Cloud中建立一個Ubuntu 22.04 的虛擬機器實例。
在Google Cloud中點選左側選單,點選Compute Engine選項,選擇虛擬機器實例,如果你之前沒有建立過虛擬機器實例的話,需要先啟用Compute Engine API
在虛擬機器實例中點選建立實例,下面準備建立一個新的Ubuntu虛擬機器實例。
在建立實例頁面中開始新建一個虛擬機器實例,填寫好配置信息,右面是每月估算費用。免費的Google Cloud可以免費取得有效期三個月的400美元試用金。
名稱:填寫一個自訂名稱,或預設名稱,小寫與數字,不能包含特殊符號
區域:在這裡選擇你想在哪個地區建立虛擬機器實例,點擊此處查詢所有區域 如果你做海外網站,針對不同國家可以選擇不同的區域,對國內來說,亞洲地區的香港和台灣造訪速度都很快。
可用區:預設即可,可用區是在同一區域中的不同機器類型,不同的IP節點。
機器配置:通用中預設選擇E2,E2對於新手來說,使用已經足夠了,經濟實惠,日常計算費用低。
E2 機器系列最多可以有32 個vCPU,最多128 GB 內存,每個vCPU 最多8 GB,所有機器系列的費用最低。 E2 機器系列具有預先定義的CPU 平台,運行Intel 處理器或第二代AMD EPYC Rome 處理器。在建立虛擬機器時,系統會為您選擇處理器。此機器系列在Compute Engine 上以最低價格提供各種運算資源,尤其在結合承諾使用折扣時價格更優。
E2 和N1 系列包含共享核心機器類型。 這些機器類型分時共用一個物理核心,這是運行小型、非資源密集型應用的經濟實惠的方法。
E2:提供2 個vCPU,可用於短時間爆發。
在下面的機器類型中,因網站訪問量需求而選擇預設,可以選擇CPU共享核心和獨立核心!在預設中有詳細的選項,如果沒有你想使用的選項,可以在自訂中,自訂CPU與記憶體大小。
接下來幾個選項預設即可,在啟動磁碟選項處,點擊更改,在這裡選擇伺服器所使用的作業系統。在下面的公共映像中選擇作業系統。
下面是一個設定範例:
作業系統:Ubuntu
版本:Ubuntu 22.04 LTS (注意,一定要選擇x84/64的作業系統版本,作業系統版本和上面選擇的虛擬機器實例CPU平台架構要對應)
啟動磁碟類型:SSD 永久性磁碟,這種磁碟效能最佳。
大小:這裡按需填寫大小,一般個人網站部落格有100GB足夠了,這個不夠的話,後期可以網路增加磁碟大小。
選擇完畢之後,點選選擇,繼續建立虛擬機器實例。
在防火牆選項中,勾選三個規則,然後安裝可觀測性Ops Agent
Ops Agent是用來即時監控伺服器狀態的,在後期運維伺服器時,很有必要!建議安裝。
最後點選創建,一台Ubuntu的虛擬機器實例就已經創建好了,接下來配置一個公共外網IP和防火牆後,就可以正常使用了。
在Google Cloud平台中點選左側選單,選擇VPC網路中的IP位址。
點選預留外部靜態IP位址,之後給靜態位址一個名稱,允許使用小寫字母、數字、連字符。
在區域和附加目標處,選擇你剛才建立的虛擬機器實例的區域,選擇好區域後,點擊下面的附加目標,附加到剛剛你建立的虛擬機器實例上。
注意:未附加到執行個體或負載平衡器的靜態IP 位址是按更高的每小時費率計費的。也就是說,你申請了固定IP位址後,不使用的話是會高價計費的,主要是為了避免浪費和IPV4資源緊缺的原因。
如果你申請下來的外部IP位址你覺得不滿意,還可以申請多個外部IP位址,挑選你滿意的IP,然後刪除其它的即可。刪除外部IP只需要勾選IP位址,然後點選釋放靜態位址。
ip位址申請完畢之後,點選左側選單的防火牆,這裡要關閉Google Cloud的防火牆,為了方便,可以使用伺服器上的防火牆。將防火牆設定成透明防火牆,放行所有連接埠。
點選 建立防火牆規則 新建一個VPC 防火牆規則。填寫一個防火牆名稱,例如:all
接下來選擇其它防火牆規則:
流量方向:預設入站
對匹配項執行的操作:預設Allow
目標:選擇網路中的所有實例
來源過濾條件:預設IPV4範圍
來源IPv4範圍:填入0.0.0.0/0 (意思是所有範圍)
協定和連接埠:選擇全部允許
選擇完畢後,點擊創建,就創建了一個所有存取連接埠都開放的透明防火牆。
接下來做一個簡單設定就可以安裝CyberPanel了。可以參考下面的鏈接,對Ubuntu伺服器進行設定。
安裝CyberPanel
首先透過 SSH 連接到您的伺服器:
CyberPanel 的安裝非常簡單。使用SSH工具(Xshell 7)以root使用者身分透過 SSH 登入伺服器。
SSH登入成功後更新系統軟體包包
sudo apt update && sudo apt upgrade -y
接下來執行安裝腳本
運行以下命令。它將啟動自動安裝腳本,該腳本將提示您做出一些關於LiteSpeed 版本以及要安裝哪些附加元件的決定。
sh <(curl https://cyberpanel.net/install.sh || wget -O - https://cyberpanel.net/install.sh)
如果您由於某種原因無法登入root,您可以使用此命令
sudo su - -c "sh <(curl https://cyberpanel.net/install.sh || wget -O - https://cyberpanel.net/install.sh)"
安裝後如遇異常們可以回滾版本安裝。
sh <(curl https://raw.githubusercontent.com/usmannasir/cyberpanel/stable/preUpgrade.sh || wget -O - https://raw.githubusercontent.com/usmannasir/cyberpanel/stable/preUpgrade.sh)
直接輸入版本號數字進行安裝,例如:2.3.6 或2.4.1
安裝腳本輸入完成後,自動執行安裝程序,選擇您想要使用的LiteSpeed 版本。
選擇要安裝的LiteSpeed 版本。如果您選擇LiteSpeed Enterprise,請先確保您已取得許可證金鑰。 1個網域免費,但您仍然需要取得金鑰。
如果安裝失敗,請最終確認你的作業系統版本。僅支援Ubuntu 20.04、Ubuntu 22.04、CloudLinux 7、CloudLinux 8、AlmaLinux 8 的伺服器
輸入數字1,安裝OpenLiteSpeed
是否安裝PowerDNS, Postfix 和Pure-FTPd 這三個附加元件
Google Cloud停用了SMTP 連接埠25,因此Postfix 郵件伺服器即使安裝也無法使用。況且暫時沒有做郵件伺服器的需求,DNS伺服器和FTP伺服器也暫無需求,FTP可以使用Xftp7上傳下載,可以選擇不安裝這三個附加元件。當然如果你有某些方面的需求,可以按需安裝。
遠端MySQL(預設N):N
允许您的数据库安装在远程服务器上,输入N后,在本服务器安装MySQL数据库,如果你想将数据库安装在其它服务器上,这一步可以选择Y,配置远程数据库连接。
CyberPanel 版本(預設為最新版本):您可以選擇安裝先前版本的CyberPanel,或按Enter鍵安裝最新版本
設定密碼,如果這一步預設的話,會配置預設密碼(預設「1234567」):建議您使用「s」設定自己的強密碼。
接下來配置快取擴展,將下面兩個快取工具Memcached和Redis預設安裝即可。
分散式記憶體物件快取系統,Memcached(預設Y):Y
記憶體資料結構存儲,用作資料庫、快取和訊息中斷,Redis(預設Y):Y
核心看門狗用於監視系統是否正在運作。它應該會自動重新啟動由於不可恢復的軟體錯誤而掛起的系統!預設回車後開始安裝CyberPanel
安裝過程將自動進行。這將需要10 分鐘左右,具體取決於伺服器的速度。
安裝完成後輸入“y”重新啟動。或在執行其他所需操作後輸入“reboot”。
到這一步CyberPanel已經安裝完了。
在瀏覽器中輸入https://ip:8090
輸入使用者密碼後就可以存取CyberPanel了。
CyberPanel配置
之前為了優化網站的Gtmetrix得分和Google PageSpeed Insights 得分絞盡腦汁,而在CyberPanel+OpenLiteSpeed中不費吹灰之力就能實現得分全綠甚至滿分了。
CyberPanel安裝完畢之後,下面開始一步一步的配置CyberPanel,當然CyberPanel雖說是開箱即用,但是如果想投入生產環境,還是有很多地方需要配置。
SSH配置
CyberPanel安裝之後,額外的端口需要重新激活,例如SSH之前修改了端口,安裝CyberPanel後,SSH就無法連接了。
登入CyberPanel面板後,點選左側選單安全,選擇SSH加固,點選儲存修改後,就可以正常SSH登入了。
否則即便是你在配置SSH的時候修改了端口,安裝CyberPanel面板後,即便是防火牆中開放了SSH端口,也是無法使用SSH連接的,不知道是個BUG還是刻意設計的。
左側選單安全下面點擊防火牆,這個防火牆是CyberPanel面板預設的防火牆,只能實現開放和關閉連接埠。
之前我們在Google Cloud上設定的透明防火牆是第一層防火牆,平台層的防護牆。這個防火牆屬於第二層防火牆,伺服器層的防火牆。
防火牆配置
除了基本的連接埠防火牆外,CyberPanel面板還可以安裝CSF防火牆和ModSecurity,查看如何設定ModSecurity
CSF是國外一家小公司開發的linux系統免費防火牆,它基於iptables工作,能有效緩解伺服器壓力,具有自動屏蔽暴力破解密碼IP、管理開放端口、免疫輕量DDos和CC等等功能,同時,安裝和使用也極為簡便,在我們常用的DA和CP面板還有圖形化操作界面,也支持個人普通用戶安裝於LNMP環境下使用。
同時CyberPanel面板也提供了Imunify防火牆整合服務。
Imunify 360 保護基於Linux 的Web 伺服器和所有託管網站免受惡意軟體感染、Web 攻擊、漏洞利用和所有其他威脅。
如何測試Imunify360?您可以在無限數量的伺服器上免費探索Imunify360 的所有功能14 天。無需信用卡資訊。試用期結束後,您可以登入cln.cloudlinux.com,透過CloudLinux Network(CLN)購買Imunify360授權。
Imunify是需要付費的,不建議安裝。使用免費的CSF防火牆功能已經足夠。當然在安裝WordPress後,還有許多安全類別的外掛程式可供選擇,這裡就不過多介紹防火牆相關的內容。
你可以選擇安裝CSF免費防火牆,或是關閉CyberPanel面板提供的基礎連接埠防火牆,後面也可以在WordPress中安裝防火牆。
WordPress中的防火牆,屬於第三層防火牆,應用程式類別的防火牆,在WordPress中可以很方便的設定防火牆。
Docker 管理器配置
Docker 使用容器化技術,使部署和運行應用程式變得簡單易行。 Docker 將應用程式程式碼與運行所需的所有程式庫和相依性打包在一起。打包應用程式後,它將在Docker 可用的任何環境中運行。
CyberPanel 為您提供了一種處理Docker 容器和映像的簡單方法。預設情況下,在安裝CyberPanel 期間不會安裝Docker。
如果您需要Docker Manager的話,可以安裝它:在左側選單中,按一下Docker 管理員進行安裝。
點擊“安裝Docker”以啟動安裝過程,這可能需要幾分鐘。安裝完成後,頁面將自動刷新。現在,你已準備好管理Docker 映像和容器。
修改套餐配置
在建立網站之前,需要先修改套餐配置,因為CyberPanel是多用戶模式,所以在建站方面偏向一些虛擬機器銷售的邏輯,創建網站時候,需要選擇網站的用戶所有權,還有網站限制。
這個套餐就是用來限制網站大小的。
初始化的套餐Default 中,預設的磁碟空間和流量都是1000,子網域限制為20,郵件帳號、資料庫和FTPS這三項先不用管,基本上用不到。
點選編輯。將網域名稱、硬碟空間、流量修改為“0”,0為無限制。修改之後Save儲存即可。
建立網站
在左側選單網站選單下方點擊建立網站,
選擇套餐:預設選擇Default
擁有者:預設選擇admin
域名:填寫主域名即可,無需填寫www,會自訂綁定www的域名,如果是二級域名,直接填寫二級域名。
信箱:隨意填寫
選擇PHP版本:選擇的是PHP8.0,有多個PHP版本可以選擇,PHP7.4是相對穩定的,PHP8.0和PHP8.1有時會遇到莫名其妙的故障。如果遇到問題,可以將PHP版本切換到PHP7.4
額外功能:勾選SSL,勾選SSL後會自動產生SSL憑證。
點擊創建網站之後,網站就已經創建完畢了!
open_basedir 保護禁止您的PHP 腳本存取指定路徑之外的檔案系統,即open_basedir “/home/domain.com/”
如果為open_basdir 指定了此路徑,則您的PHP 程式碼無法存取超出範圍的檔案系統/home/domain.com/
這基本上有助於防止伺服器上的單一網站被駭客攻擊。
如果你想啟用open_basdir 防止跨站攻擊,可以在該網站的檔案選項下,找到防跨站的圖標,點擊進行啟動。
LiteSpeed設置
在選單伺服器設定下面點擊LiteSpeed設置
這是LiteSpeed伺服器的全域設定。
最大連線數:10000
指定伺服器可以接受的最大並發連線數。這包括純TCP連接和SSL連接。 一旦達到此限制,伺服器將在完成活動請求時關閉「Keep-Alive」的連線。
當伺服器由」root」使用者啟動時,伺服器會嘗試自動調整每個進程的檔案描述符限制,但是,如果自動調整失敗,你可能需要手動增加此限制。
同時在線10000用戶,這個數值足夠了,當然這個是理想數值。
最大SSL連線數:10000
指定伺服器將接受的最大並發SSL連線數。 由於並發SSL和非SSL的連線總數不能超過」最大連線數」的限制,因此允許的最大SSL連線的數量須低於此限制。
連線逾時:300
指定一個請求允許的最大連線空閒時間。 如果在這段時間內連線一直處於空閒狀態(即沒有I/O活動),則它將關閉。
將值設定得盡可能低,在可能的拒絕服務攻擊中,這可以幫助釋放無效連線所佔用的連線數。
Kepp Alive逾時:5
指定持續連線請求的最長閒置時間。 如果在這段時間內沒有接收到新的請求,則該連線將會關閉。 這個設定只適用於HTTP/1.1連線。 HTTP/2連線有較長的閒置時間,不受此設定影響。
建議您將值設定得剛好足夠處理單一頁面檢視的所有請求。沒有必要延長持續連接時間。較小的值可以減少閒置連接,提高能力,以服務更多的用戶,並防範拒絕服務攻擊。 2-5秒對大多數應用是合理範圍。 Litespeed在非持續連接環境中是非常有效率的。
記憶體快取大小:2048M
指定分配用於快取/服務小靜態檔案的總記憶體。
開啟GZIP壓縮:Enable
PHP設定
在伺服器設定選單內,有針對每個網站特定的PHP設置,選擇網站網域。可以設定對應的PHP參數。
初始化請求超時(秒):600
指定伺服器等待外部應用程式回應新建立的連接的第一個請求的最大時間如果伺服器在這個限制時間內沒有收到外部應用程式的任何數據,它將把這個連線標記為壞(Bad)。這有助於識別與外部應用程式的通訊問題。 這有助於盡快發現與外部應用程式的通訊問題。如果某些請求的處理時間較長,則增加此限制以避免503錯誤訊息。
最大連線數:2000
指定伺服器與外部應用程式之間可建立的最大並發連線數。此設定控制外部應用程式可同時處理多少個請求。 然而,真正的限制也取決於外部應用本身。如果外部的速度不夠快,或者無法處理大量的並發請求,那麼將這個值設定得更高也無濟於事。
設定一個高值並不能直接變成高效能。設定為一個不會使外部應用程式過載的值,將提供最佳的效能/吞吐量。
記憶體軟限制:2047M
此限制的目的主要是為了防範軟體缺陷或蓄意攻擊造成的過度記憶體使用, 而非限制正常使用。確保留有足夠的內存,否則您的應用程式可能發生故障並返回503錯誤。限制可以在伺服器層級或獨立的外部應用程式層級設定。如果未在獨立的外部應用程式層級設定限制,則將使用伺服器層級的限制。
如果在兩個層級都沒有設定該限制,或限制值設為0,則會使用作業系統的預設設定。
記憶體硬限制:2047M
與」記憶體軟限制(bytes)」非常相同,但是在一個使用者程序中,軟限制可以被放寬到硬限制的數值。硬限制可以在伺服器層級或獨立的外部應用程式層級設定。如果未在獨立的外部應用程式層級設定限制,則將使用伺服器層級的限制。
如果在兩個層級都沒有設定該限制,或限制值設為0,則會使用作業系統的預設設定。
進程軟限制:1400
限制使用者可以創建的進程總數.所有現有的進程都將被計算在這個限制之內,而不僅僅是要啟動的新進程。
此限制可以在伺服器層級或單一外部應用程式層級進行設定.如果未在應用程式級別設置,則將使用伺服器層級的限制. 如果該值為0或伺服器級和應用程式級都沒有設定,將使用作業系統的預設設定
進程硬限制:1500
與”進程軟限制”非常相同,但是,在用戶進程中軟限制可以被放寬到硬限制的數值。硬限制可以在伺服器層級或獨立的外部應用程式層級設定。如果未在獨立的外部應用程式層級設定限制,則將使用伺服器層級的限制。 如果在兩個層級都沒有設定該限制,或限制值設為0,則會使用作業系統的預設設定。
資料庫持久連線:開啟
指定在處理完請求後是否要保持連線持久連線可以提高效能, 但某些FastCGI外部應用程式不完全支援持久連線。預設為“On”。
注意:在PHP設定中,資料庫持久連線有一個BUG,資料庫持久連線在建立完網站之後,預設是開啟的,設定完網站的PHP後,即便資料庫持久連線選擇開啟,儲存之後也是關閉的,需要在OpenLiteSpeed的後台中手動設定開啟。
手動設定開啟資料庫持久連接,登入OpenLiteSpeed後台,在虛擬主機中選擇相對應的域名,在外部應用程式中將持久連接修改為是,然後右上角儲存後,點擊平滑重啟,使設定生效,如果再次修改PHP配置,還需同樣手動設定資料庫持久連接。否則會一直是關閉狀態。
編輯PHP配置
在選單左側PHP選單中,點選編輯PHP配置。之後在基礎中選擇PHP版本
display_errors:Off
預設關閉,PHP錯誤輸出
file_uploads:On
上傳選項,預設開啟。
allow_url_fopen:On
預設開啟
allow_url_include:Off
預設關閉
allow_url_include為ON的話,則檔案包含函數是可以載入遠端檔案的,這種漏洞稱為遠端檔案包含漏洞。利用遠端檔案包含漏洞可以直接執行任意命令。在實際滲透攻擊過程中,攻擊者可以在自己的網路伺服器上放一個可執行的惡意文件,透過目標網站存在的遠端文件包含漏洞來載入文件,從而實現執行任意命令的目的。
memory_limit:-1
; 腳本所能夠申請到的最大記憶體(位元組)(可以使用K和M作為單位)(必須大於post_max_size 的值)。
設為-1 表示取消記憶體限制。
max_execution_time:0
; 每個腳本允許的最大執行時間(秒),0 表示沒有限制。
該指令僅影響腳本本身的運行時間,任何其它花費在腳本運行之外的時間,例如system()/sleep()函數、資料庫查詢、檔案上傳等,都不包括在內。
upload_max_filesize:1024M
; 允許上傳的檔案最大尺寸(必須小於post_max_size 的值)。
post_max_size:1025M
允許接受的最大POST資料長度(位元組)(“0″表示無限)。僅在enable_post_data_reading = On 時有意義。
; 此設定也會影響到檔案上傳(必須大於upload_max_filesize 的值),如果POST資料超出限制,那麼$_POST 和$_FILES 將會為空。
; 如果啟用了記憶體限制,那麼該值應小於memory_limit 的值。
max_input_time:-1
; 每個腳本接收輸入資料(POST, GET, upload)的最大允許時間(秒)。
; -1 表示不限制。在生產伺服器上應該限制為一個明確的值以阻止腳本無限運行。
如果使用者的網路速度較慢且需要上傳大文件,那麼應該設定一個較大的數值。對於CLI 模式,此指令被硬編碼為”-1″(沒有限制)
PHP基礎參數可以按需配置,上面的配置參數是無限配置。
還有一個重要的配置,就是PHP同時上傳多個檔案的限制,點選PHP參數進階配置,直接在php.ini檔案中修改上傳限制。
在php.ini中查找 max_file_uploads = 20
修改為:
max_file_uploads = 2000
一次HTTP請求允許同時上傳的最大檔案數量。最大上傳檔案數2000,這個在採集更新網站時,上傳圖片需要用到。
php.ini 配置調優
預設安裝的PHP 就像是在百貨公司裡購買的普通套裝,雖然合身,卻不完美。調優的PHP 就像是訂做的套裝,完全搭配你的尺寸。
以下是一些參考配置,酌情使用。
常規Wordpress需要的:
max_input_vars = 5000
限制最大表單提交,這個如果用的大型Wordpress主題,一般都要1000以上。
memory_limit = 512M
php腳本佔用記憶體
post_max_size = 256M
限制post大小
upload_max_filesize = 128M
限制上傳檔案大小,就是Wordpress媒體庫那個大小限制,這個盡量小於post_max_size
max_file_uploads = 20
限制同時最多上傳數量
max_execution_time = 600
限制php最大執行時間
max_input_time = 600
限制php最大接收資料時間,這可以是大於max_execution_time的
allow_url_fopen = Off
如果你網站程式用不到遠端位址,可以關掉這個選項。
Opcache設定:
下面是Opcache的參考配置,按需設定。
opcache.enable=1 opcache.enable_cli=1 opcache.memory_consumption=256 #給opcache分配的記憶體opcache.interned_strings_buffer=16 #分配的字串駐留記憶體=cache.max_ opcache.use_cwd=1 opcache.validate_timestamps=1 #建議關閉,但是得手動清除緩存,太麻煩,所以開啟,然後用下面的時間自動檢測opcache.revalidate_freq=60 #1分鐘檢查一次opcache.save_comments0 opache.
CyberPanel安全設置
CSF防火牆安裝
CyberPanel安裝完畢後,還需要做一些簡單的安全設置,先安裝防火牆,預設的防火牆只能屏蔽端口,下面安裝一個功能多一些的CSF防火牆。
參考這篇文章安裝CSF防火牆:安裝CSF防火牆(ConfigServer Security & Firewall)
CSF(ConfigServer Security & Firewall)是一款功能強大且廣泛使用的Linux伺服器防火牆軟體,整合了安全防護與管理功能。它透過iptables提供靈活的防火牆規則配置,支援IP黑白名單、連接埠保護、入侵偵測和防禦(如DDoS攻擊),並能與cPanel、DirectAdmin等控制面板無縫整合。 CSF以其易用性、高度可自訂性和即時監控功能,成為伺服器管理員增強系統安全、抵禦網路威脅的首選工具。
ModSecurity防火牆安裝
安裝ModSecurity防火牆,在防火牆選單中點選ModSecurity 設定進行安裝。
安裝完畢後,關閉稽核引擎,規則引擎預設開始,然後在ModSecurity規則包中,啟用規則包。
ModSecurity 是一款開源的Web 應用防火牆(WAF),專為保護Web 應用程式免受各類網路攻擊而設計。它透過即時監控和過濾HTTP 流量,能夠有效防禦SQL 注入、跨站腳本(XSS)、檔案包含等常見攻擊。 ModSecurity 支援靈活的規則配置,可與Apache、Nginx 等Web 伺服器集成,適用於多種平台。其強大的日誌分析和自訂規則功能使其成為企業和開發者保護Web 應用安全的重要工具,兼具高效性和可擴展性。
ClamAV、Maldet 防火牆安裝
ClamAV是通用的防毒開源軟體,適合偵測大多數惡意軟體和病毒。 Maldet(Linux Malware Detect)專注於偵測Web環境中常見的木馬和惡意程式碼,特別針對Linux伺服器上的網頁檔案、上傳的惡意腳本等。 Maldet也可以配置為使用ClamAV的病毒庫進行掃描,這樣可以擴展其特徵庫,並偵測更多的病毒。
主機面板簽發SSL憑證
接下來綁定一個面板專用的二級域名,然後申請ssl憑證使用加密存取。
先設定一個二級域名,解析到面板ip上,然後建立網站。
網站建立完畢後,會自動申請ssl憑證。
然後在主機名稱SSL選單下面,選擇剛才建立的網站,為面板主機簽發SSL憑證。
修改CyberPanel主機面板端口
接下來修改面板管理的端口,在伺服器狀態中選擇端口進行修改。
修改前,需要在CSF防火牆中開通端口,否則修改端口後,無法存取面板。
修改自訂端口,修改完畢後,點選修改進行儲存。
建立超級管理員
預設的超級管理員有安全隱患,需要新增超級管理員和修改admin管理員名稱。
admin管理員如果直接刪除,會造成面板系統崩潰。
在建立用戶中,建立新用戶,控制策略選admin 網站數量0 無限制,然後輸入新的用戶密碼建立新用戶。
修改原始使用者admin的密碼,將密碼修改的複雜一些。
然後在資料庫選單下,進入phpmyadmin 進行修改。修改loginSystem_administrator 表裡的admin的使用者名稱。
將名稱修改複雜一點,這樣即便是暴力破解,也很難猜到用戶名稱了。
修改完畢後,登出面板,使用新使用者登入。
建立新套餐
新用戶登陸後還需要創建一個新的套餐,在使用中需要新的套倉,不能使用原始的admin預設的套餐。
設定好名稱,無限網域硬碟等等選項,設定後新建套餐。
注意:Default 原始套餐不要刪除,刪除後會莫名其妙的故障。建立網站時,使用新套餐即可。
CyberPanel常見問題
總結了CyberPanel安裝使用過程中遇到的一些問題,希望在後續的迭代中能完善這些問題!
建立網站中遇到的網域SSL憑證錯誤問題
在CyberPanel建立網站的時候,在網域選項中,提示了不要使用WWW,這將是自動建立的。
也就是說輸入一級域名,會預設創建二級域名WWW,在CyberPanel預設域名申請SSL證書時,會自動申請WWW和主域名的SSL證書,兩個域名在一個證書中。
這本來是好的,方便使用者,無需申請WWW的證書,兩個網域預設綁定在一個網站上。
這時候問題來了,如果使用者沒有使用主網域建站,而是使用了WWW的網域建立了網站,那麼主網域在申請網域憑證時,就不在WWW的網域憑證中。
在網域別名中,新增主網域後,主網域被成功綁定在網站上,而這時候問題來了,在網域別名申請的SSL憑證生效後,WWW的網域憑證失效了,再次申請WWW的憑證後,主網域憑證無效。
最終的問題是兩個網域名稱不在同一個證書內,即便是在配置中有添加SSL證書的選項,這個添加SSL證書,需要你在伺服器上使用命令先申請ssl證書,然後再將Cert和Key手動粘貼在添加的SSL證書中,比較麻煩。
解決方法:在CyberPanel中重新建立一個主網域的網站,將WWW的網站內容備份,然後在主網域網站中還原。
問題總結:綁定主網域後自動生成有WWW網域的網域證書,CyberPanel中建立網站的網域一旦使用便無法修改,在修改網站的頁面中也無法修改網站網域。
- 新增網域:只能新增子域名,子域名綁定的二級域名存放路徑,在網站域名目錄下。
- 域名別名:只能綁定除主域名之外的其它域名,您可以使用example.net訪問與example.com相同的內容。
網站重定向的次數過多,該網頁無法正常運作
一頓操作猛如虎,最後發現網站打不開了,提示重定向次數太多,只是設定的時候猶豫了一下,是使用WWW域名訪問還是不使用WWW域名?簡單的選擇了幾次範本,就遇到問題了。
原來問題出在選擇模板上面。每選擇一次模板,就會自動加入設定檔中,也就是說,你選擇一次WWW->NON-WWW然後再選擇NON-WWW->WWW,就會增加兩個規則,這兩個規則就會造成死循環。
就出現了重定向次數過多的錯誤。
從邏輯思維來講,當添加使用WWW訪問後,再選擇不使用WWW訪問,應該是替換掉配置文件內的相關內容,而不是再添加不使用WWW訪問的代碼。這個應該算操作方面的BUG,雖然是人為操作產生的,但從技術角度來說是可以完全避免的。
如果你的網站也因為重複添加模板內容,造成無法訪問,可以複製下面內容到配置文件中,然後謹慎選擇模板進行添加。
# BEGIN LSCACHE ## LITESPEED WP CACHE PLUGIN - Do not edit the contents of this block! ##RewriteEngine on CacheLookup on RewriteRule .* - [E=Cache-Control:no-autoflush] RewriteRule .litespeed_conf.dat - [F,L] ### marker CACHE RESOURCE start #155Tule wp-content/.*/[^/]*(responsive|css|js|dynamic|loader|fonts).php - [E=cache-control:max-age=3600] ### marker CACHE RESOURCE end #1TPT115T# marker CACHE RESOURCE end #1TPT13T1TP ### RewriteRule .? - [E="Cache-Vary:,wp-postpass_9cb8b91dfeb87bdca7711a9e10329917"] ### marker LOGIN CIE 151515T## marker LOGIN CIE15151515TTPTTP marker FAVICON start ### RewriteRule favicon.ico$ - [E=cache-control:max-age=86400] ### marker FAVICON end #### marker FAVICON end ###1TP1515155 ### CacheKeyModify -qs:fbclid CacheKeyModify -qs:gclid CacheKeyModify -qs:utm* CacheKeyModify -qs:_ga ### marker DROPQS endTP5T15T ## LITESPEED WP CACHE PLUGIN - Do not edit the contents of this block! ## # END LSCACHE # BEGIN NON_LSCACHEIN ## LITESPEED WP CACHE TP ## LITESPEED WP CACHE PLUGIN - Do not edit the contents of this block! ## # END NON_LSCACHE # BEGIN WordPress # The directives (lines) between "Bally EG'h only be modified via WordPress filters. # Any changes to the directives between these markers will be overwritten.RewriteEngine On RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteBase / RewriteRule ^index.php$ - [L] RewriteCond %{REQUEST_FILEN] !-f ReENf. RewriteRule . /index.php [L] # END WordPress
LiteSpeed Cache (LSCache) 如何設定自動爬蟲
LSCache是WordPress中免費的快取工具,安裝數百萬,當然實際應用的並沒有那麼多,但是不可否認LiteSpeed web伺服器的速度遠遠快於Nginx和Apache,這一點是毋庸置疑的。
在LSCache中設定自動爬蟲,也就是預先快取需要修改伺服器上的.htaccess 設定文件,這一點對於菜鳥來說有一點難度。
詳細說一下如何設定LSCache的預先快取功能。
第一步,在LiteSpeed Cache中點選Crawler選單,然後點選Sitemap Settings 選項
新增你網站的地圖,可以是xml格式也可以是html格式。點選Save儲存。
第二步,在General Settings中啟用爬蟲,將Crawler開關打開,選擇ON
爬蟲開關開啟後,點選Map選項,點選Refresh Crawler Map 讀取地圖。
然後在CyberPanel中設置,在CyberPanel中找到相應的網站,在網站配置選項中,點擊重寫規則。
這個規則就是.htaccess 設定檔。
在設定檔的最前面,加入下面程式碼
CacheEngine on crawler
修改完畢後,點選儲存設定檔。然後耐心等待,爬蟲會定時自動預先快取網頁。
定時清理php快取文件
設定每天凌晨2點自動清理php83產生的快取檔案。
快取檔案過多會導致系統碟Inodes 100% ,爆盤後系統故障,網站會無法存取。
可以使用df -i 來查看Inodes佔用率
0 2 * * * /usr/bin/find /var/lib/lsphp/session/lsphp83 -type f -name 'sess_*' -atime +1 -delete >> /var/log/session_cleanup.log 2>&1s
資料庫寫入故障
當你遇到sqlstate[22007]: invalid datetime format: 1366 incorrect string value: '\xe7vyush...' for column 這樣的故障,是因為mysql的預設編碼排序的問題
在MySQL 設定檔(如my.cnf 或my.ini)中設定預設字元集
[mysqld] character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci
然後重啟mysql服務
sudo systemctl restart mysql
CyberPanel 最新版本安裝wordpress失敗卡在/usr/bin/env: "php": 這個步驟
CyberPanel 安裝最新版本後,在網站下方建立wordpress會失敗,一直卡在/usr/bin/env "php" 這個步驟,會一直卡住不動,這個錯誤的主要問題在於CyberPanel預設的/usr/bin/php指向是/usr/local/lsws/lsphp74/bin/php而新版更新後,取消了對php7.4的支持,最低支援版本是php8.0,導致/usr/bin/php找不到對應的php目錄。需要重新綁定php目錄
使用指令查看綁定目錄。
ls -l /usr/bin/php
刪除綁定目錄
sudo rm /usr/bin/php
重新綁定php目錄
sudo ln -s /usr/local/lsws/lsphp83/bin/php /usr/bin/php
重新綁定完畢後,返回面板,創建wordpress成功!
存取隱藏的OpenLiteSpeed Web 介面
在伺服器上輸入下面的指令,重設OpenLiteSpeed使用者密碼。
sudo bash /usr/local/lsws/admin/misc/admpass.sh
輸入使用者名稱和密碼,然後在瀏覽器中使用7080連接埠存取WebAdmin:https://ip:7080
如果網頁無法開啟,需要在CyberPanel的防火牆中開放7080埠。
升級MariaDB
MariaDB和MySQL的差別在於:1、歷史背景不同;2、儲存引擎不同;3、資料類型不同;4、插件支援不同;5、開源程度不同。 整體比較來看,MariaDB相比MySQL有更多的新功能和改進,但也保留了與MySQL的高度相容性。
若要在Ubuntu 22.04 上安裝MariaDB,首先更新系統軟體套件。之後,安裝所需的軟體包。
檢查MariaDB版本現在,檢查已安裝的MariaDB的版本
mariadb --version
Ubuntu 22.04 上成功安裝了MariaDB 版本“10.6.12”
如果你的版本低於10.6.12的話,升級已安裝的MariaDB 的版本,使用下面指令來升級。
sudo mariadb-upgrade
如果是最新版本,會傳回無需升級的提示資訊。
This installation of MariaDB is already upgraded to 10.6.12-MariaDB.
There is no need to run mysql_upgrade again for 10.6.12-MariaDB.
You can use –force if you still want to run mysql_upgrade
升級Redis
Ubuntu 20.4 / Ubuntu 22.4 用戶將Redis 更新到最新版本– Redis 7.xx
檢查目前安裝的Redis伺服器版本
redis-server --version
檢查目前安裝的Redis cli 版本
redis-cli --version
將Redis更新到最新可用版本(首先添加官方repo)
sudo add-apt-repository ppa:redislabs/redis
然後運行系統更新命令
sudo apt update
運行下面命令升級最新版本Redis
sudo apt upgrade