
看到了沒,新東家使用的是?LiteSpeed
?,而在此之前我一度使用的不是?Nginx
?就是?Apache
?這類的大眾款!
怪我孤陋寡聞,有人說貧窮限制了想像力,不不不,我覺得只要是個窮人,他根本就是哪兒哪兒都被限制了嘛!
不過還好窮人多少有點時間可以擠一擠,所以我就初步地研究了一下這個?LiteSpeed
?,順便我也使用過?Laravel
?,最后將兩者結合起來也就有了后面的文字!
一、OpenLiteSpeed 是個啥
哎?不是正說著?LiteSpeed
?嗎,怎么變成了?OpenLiteSpeed
??
最初我也和小伙伴們一樣有此疑問,其實前面冠以?OPEN
?字樣,很容易聯想到是開源軟件。
沒錯,OpenLiteSpeed
?(以下簡稱?OLS
?)就是和?Apache
?或?Nginx
?相似的?WEB
?服務引擎,是?LiteSpeed EnterPrise
?的開源社區版本。
國內網絡中主流引擎仍是?Nginx
?和?Apache
?的天下,OLS
?似乎顯得小眾了一些,甚至其知名度還不如?Lighttpd
?。
不過要知道?OLS
?在國外發展迅猛,其優點多多,不僅僅提供了諸如?WordPress
?、?Joomla
?、OpenCart
?或?Drupal
?等常見應用的插件支持,而且還支持新一代的?HTTP3
?協議。
雖然社區版的?OLS
?與企業版相比有部分限制功能,但對于一般的個人博客或小型站點基本夠用。
社區版肯定是免費的,但這并不是重點,你來看看官網給出的?OLS
?與?Nginx
?和?Apache
?的性能對比,我可以猜到你肯定會先是大吃一鯨,然后口水橫流。

好吧,我承認我在流口水,容我先擦一擦,接下來我將如何實現?OpenLiteSpeed
?平臺上跑?Laravel
?項目的過程分享給小伙伴們,Let's Start !
官網鏈接:https://openlitespeed.org
知識庫鏈接:https://openlitespeed.org/kb/
二、安裝 OpenLiteSpeed 很簡單
安裝環境:CentOS 7 (2009)
WEB引擎:OpenLiteSpeed 1.7.8 + PHP 7.4
準備工作:開通防火墻端口
firewall-cmd --zone=public --add-port=7080/tcp --permanent
firewall-cmd --zone=public --add-port=80/tcp --permanent
網上鋪天蓋地都是如何一鍵安裝?OLS
?,如果你的應用是?WordPress
?,那么恭喜你倒可以參考參考。
因為一鍵安裝可以連帶?WordPress
?及其插件一股腦兒地全部搞定,倒是簡單高效。
可是,我雖然是個小白,但我同時又是個完美強迫癥患者,在這里我只用最簡單、直接的方法來安裝。
是的,我要用的正是官方建議的二進制包安裝方法。
知識庫鏈接:https://openlitespeed.org/kb/install-from-binary/
注意,任何安裝時都是需要管理員權限的,如果你是普通用戶,記得用?sudo
?。
好了,先將二進制包下載下來,可以到下載頁上下載,也可以直接使用?wget
?。
wgethttps://openlitespeed.org/packages/openlitespeed-1.7.8.tgz
我安裝的是官方最新版本?1.7.8
?,這個包大概 71.6 MB。
官網下載比較慢,我費了半天勁才下載下來,為了方便小伙伴們,在這我留個國內的備用下載鏈接。
openlitespeed-1.7.8.tgz.zip (70.66M)
下載鏈接:https://www.90pan.com/b2347537
提取碼:tndd
下載好了就可以安裝了,超級簡單有木有。
tar -zxvf openlitespeed-1.7.8.tgz
cd openlitespeed
./install.sh

全程自動下載、自動安裝,刷刷手機耐心等待。
安裝完成后你就可以看到這句話,表明安裝成功,就是這么簡單。
Installation finished, Enjoy!

安裝完成后你需要注意一點,安裝程序在最后給出了一個名為?WebAdmin
?的初始訪問密碼,如圖中的紅字。
Your webAdmin password is XXXXXXXX, written to file /usr/local/lsws/adminpasswd.
如果你不小心忘記把它記下來了,那么也別擔心,可以在?/usr/local/lsws/adminpasswd
?中找到它。
至于?WebAdmin
?是什么、怎么用,等一會兒后面會有詳細介紹,你先記下這個密碼吧。
三、安裝 PHP
要想用?Laravel
?,那么肯定少不了要安裝?PHP
?。
a、怎么安裝 php
別看前面安裝?OLS
?如此簡單,實際上它已經完成了95%以上的任務。
根據以往?Apache
?或?Nginx
?等的安裝經驗,緊接著我們應該安裝?PHP
?了對不對?
哈哈,其實它已經好好地躺在系統里了,官方目前最新版本可以支持到?7.4
?及?8.0
?。
在前面的安裝過程中我們也能觀察到,它偷偷幫你裝了?lsphp74
?。

b、添加 php 可執行文件到系統路徑中
既然已經裝好了?php
?,那是不是我們直接拿來用就行了呢?
No No,實際上我們得到的?php
?執行文件并不能在任何目錄下直接執行,這就很不方便了 。
因此我們還是需要再動動手做做后續工作,將它的?php
?執行文件加入到系統路徑中。
vim /etc/profile
export PATH="/usr/local/lsws/lsphp74/bin:$PATH"
source /etc/profile

c、php 擴展
PHP
?有了,接著如果你想加載更多的?php
?擴展,那么可以手動添加它們。
比如想添加?redis
?擴展,那么應該這樣子做。
yum install lsphp74-pecl-redis


具體每個擴展包的名稱可能與以往傳統的有所不同,可以通過?yum list
?查詢來確定。
此外,因為我們用的是二進制包的安裝方法,所以在安裝過程中系統已經自動擁有了?OLS
?官方的安裝源,因此可以直接找到并安裝相應的擴展。
如果系統中沒有官方安裝源,則可以手動添加,以?CentOS 7
?為例如下。
rpm -Uvh http://rpms.litespeedtech.com/centos/litespeed-repo-1.1-1.el7.noarch.rpm
不同平臺具體可以參考:
https://openlitespeed.org/kb/install-ols-from-litespeed-repositories/
d、確認 php 環境
最后使用終端命令查看?PHP
?版本。

再使用?phpinfo
?查看更多?php
?及其擴展的支持信息。

很棒對不對,我正需要?PHP 7.4
?,要知道?7.3
?將于2021年年底終止支持哦!
當然,你完全可以安裝多個版本的?PHP
?,那樣還可以自由切換不同的版本環境用于測試了。
你可以參考官方的相關知識庫,或者有機會的話我會另外寫一篇文章專門說一說如何安裝多個版本的?PHP
?。
四、安裝 MariaDB
幾乎任何項目都少不了數據庫,在這里雖然我們只是作為演示,但還是規矩規矩地安裝最新版本的?MariaDB
?。
我們采用安裝源的方式來安裝?MariaDB
?,打開官網來到下載頁面,在其中選擇好相應平臺及所需版本,按給出的信息保存安裝源文件。
我們要在?CentOS 7
?上安裝?MariaDB 10.5
?,所以將以下內容保存到?/etc/yum.repos.d/MariaDB.repo
?。
[mariadb]
name = MariaDB
baseurl = https://mirrors.tuna.tsinghua.edu.cn/mariadb/yum/10.5/centos7-amd64
gpgkey=https://mirrors.tuna.tsinghua.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck=1

什么,你問我怎么保存?
好吧,我曉得你懶,你下載這個,解壓縮后放到?/etc/yum.repos.d/
?目錄下就可以了。
MariaDB.repo.zip (1K)
下載鏈接:https://www.90pan.com/b2347535
密碼:u3xc
然后執行以下安裝命令即可開始安裝。
yum install MariaDB-server MariaDB-client

當然了,如果你直接在?CentOS
?上執行?yum
?安裝命令也是可以的,只不過獲取到的并不一定是最新版本。
之后就是配置數據庫,因為這不是本文重點,所以就不在此贅述了。
五、初識 OpenLiteSpeed 服務
在?CentOS
?下,?OLS
?的服務名稱為?lshttpd
?,所以可以這樣查看它的服務。
systemctl status lshttpd
它還有一個別稱?lsws
?,所以也可以這樣查看它的服務。
systemctl status lsws

那么我們就可以隨意啟動、停止或啟用禁用?OLS
?服務了。
systemctl enable lsws
systemctl disable lsws
systemctl start lsws
systemctl stop lsws

六、OpenLiteSpeed 大概有哪些配置
OLS
?安裝好后,小伙伴們應該會比較關心兩個問題,一個是它被安裝在哪里了,另外一個是它的配置文件在哪里。
如果你是按照前面二進制包的方法安裝的,那么?OLS
?的根目錄是?/usr/local/lsws
?。
一定要記住這個根目錄,因為之后所有的配置、緩存、應用統統都是以這個根目錄為基礎。
OK,那么接下來的問題就是配置文件,它大體分為兩種。
第一種,是?OLS
?服務器級別的主配置文件。
它放在了?/usr/local/lsws/conf/
?下面,名字叫?httpd_config.conf
?。
/usr/local/lsws/conf/httpd_config.conf
第二種,是虛擬主機級別的配置文件。
在根目錄下專門有個放虛擬主機配置的目錄?/usr/local/lsws/conf/vhosts/
?,不同的虛擬主機則以其名稱為子目錄分別保存自己相應的配置文件。
比如我們安裝好?OLS
?后它自帶有一個叫做?Example
?的虛擬主機,那么它的配置文件就在這兒。
/usr/local/lsws/conf/vhosts/Example/vhconf.conf
不管是服務器級別的主配置文件也好,還是虛擬主機級別的配置文件也好,其中均是參數眾多,設定紛繁復雜。
還好有個好消息,我們不必自己動手修改這些配置文件,官方給小白們提供了一個幫手。
在?OLS
?安裝完畢之際,我們就已經擁有了一個名為?WebAdmin Console
?的 WEB 形式的控制面板程序,這也是官方建議的最佳配置編輯方式。
它除了幫助我們免于記憶復雜的參數語法外,我感覺有一點對于我們很有用的就是可以一鍵平滑重啟服務。
七、對小白友好的 WebAdmin 控制臺
OLS
?服務一旦啟動完畢,我們就可以登錄?WebAdmin
?了。
注意它是?https
?開頭的,另外端口是?7080
?。
https:
還記得前面讓你記住的那個初始密碼嗎?
對了,就是在這里登錄?WebAdmin
?用的,登錄進入系統后可以自行修改密碼。

還是那句話,如果你忘記了這個初始密碼,可以用下面這個命令來查看。
cat /usr/local/lsws/adminpasswd
登錄進?WebAdmin
?后,我們可以點擊右上角的語言選項,將它改為中文,如果你英文很棒就當我在唱歌。

找到左側導航欄?管理控制臺設置
?>?常規
?>?用戶
?,可修改管理員密碼。

要是記性不好,連修改后的密碼都給忘了咋辦?
好辦,使用以下貼心腳本來重置密碼。
/usr/local/lsws/admin/misc/admpass.sh

好了,說到這兒必須要強調一下,當我們進入?WebAdmin
?后所做的任何修改變動,如果要使其生效,必須要重啟服務。
想到每次都要輸命令來重啟就好煩啊,不過好在?WebAdmin
?很貼心啊,它提供了平滑重啟功能,點一下右上角的那個綠色小按鈕就可以了。

八、如何導入 Laravel 項目
前面準備了那么多,但到這兒總算是該敲黑板、劃重點了,因為這里多多少少會有些坑。
作為演示,我不打算新建一個?Laravel
?項目,而是只將原來的項目整體地遷移到?OLS
?上,所以大致可以按以下幾步去走。
1、創建虛擬主機
OLS
?安裝完成后默認會生成一個名叫?Example
?的虛擬主機,它可以作為測試或參數調整等參考,我個人不建議直接拿它來用。
那么我們最好是自己新建一個,當然了不需要去編輯晦澀難懂的配置文件,直接在控制臺上點鼠標就可以了。
a、創建目錄
在開始點點點之前,我們還是要先新建一些虛擬主機必要的目錄。
假定我想新建一個名叫?sysadm.local
?的虛擬主機,那么我至少要建立三個相關的目錄,分別是?conf
?、?html
?和?logs
?。
進入根目錄,使用?mkdir -p
?一口氣新建三個子目錄。
cd /usr/local/lsws
mkdir -p sysadm.local/{conf,html,logs}
為了讓?WebAdmin
?能夠幫助我們來配置虛擬主機,需要給?conf
?這個目錄換個主人。
跑?WebAdmin
?的用戶叫?lsadm
?,所以新主人就是?lsadm
?。
chown lsadm:lsadm sysadm.local/conf
b、新建虛擬主機
好了,準備工作就緒,可以開始使用?WebAdmin
?了。
從左側導航欄開始,找到?虛擬主機
?>?摘要
?,點擊右側加號來添加一個新主機。

給虛擬主機一些必要的參數信息。

在之前我們強調過OLS
?根目錄的重要性,在這里也有所體現。
$SERVER_ROOT = /usr/local/lsws/
虛擬主機根目錄(相對路徑于$SERVER_ROOT)
語法:$SERVER_ROOT/$VH_NAME/
例子1:$SERVER_ROOT/sysadm.local/
例子2:sysadm.local/
配置文件(相對路徑于$SERVER_ROOT)
語法:$SERVER_ROOT/conf/vhosts/$VH_NAME/vhconf.conf
例子1:$SERVER_ROOT/conf/vhosts/sysadm.local/vhconf.conf
例子2:conf/vhosts/sysadm.local/vhconf.conf
當你點擊保存按鈕后,它會提示出錯,說指定的配置文件并不存在。
別怕,其實沒啥大事,直接點擊那個?CLICK TO CREATE
?就行了,它會幫你創建好配置文件。

然后再點保存,虛擬主機就創建成功了。

虛擬主機列表中誕生了新的主機,但是這個時候它還是個新生兒還并不完整,因為它的文檔根目錄并沒有指定,沒有文檔根目錄,項目文件放到哪里去???
所以我們接著往前走吧,列表中點擊虛擬主機名稱。
找到?常規
?選項卡中的常規一項,再點下右邊的編輯按鈕,輸入文檔根目錄。

文檔根目錄(相對路徑于 $SERVER_ROOT 或 $VH_ROOT 均可)
語法:$VH_ROOT/html
例子:$VH_ROOT/html/public
由于我們使用的是?Laravel
?項目,所以根目錄應該設定成?$VH_ROOT/html/public
?。

e、啟用重寫設定
虛擬主機列表中點擊主機名稱,找到?重寫
?選項,點擊右側編輯按鈕。

然后啟用重寫,并指定自動加載?.htaccess
?,保存退出。

2、創建監聽器
這個監聽器簡單地來說,就是用于分析請求來源,以便提供相應的?WEB
?響應服務。
我個人的理解是,通常有兩種監聽方式,一種是端口方式,另一種是域名方式。
端口方式很容易理解,同一個IP地址,想要多用戶訪問,那么可以通過連接不同的端口來訪問服務器。
不過我們這里采用另一種監聽方式,就是通過主機域名來訪問服務,這樣就可以通過多個不同域名來訪問同一IP地址同一端口的 WEB 服務。
當然在這里我們只指定一個域名作為演示。
點擊左側導航欄中的?監聽器
?,然后點擊右側的添加按鈕。

填寫監聽器名稱,我們這里設定端口為標準?http
?的?80
?端口,并且選擇不加密連接。


還沒有結束哦,接著點擊列表中我們剛剛建立的監聽器名稱。
找到下方?虛擬主機映射
?一欄,并點擊右側添加按鈕。

選擇我們在前面建立的虛擬主機?sysadm.local
?,再填寫我們需要訪問的域名,比如?sysadm.local
?。

小伙伴們請注意,這里的域名一定要能夠解析得到。
我們現在只做測試,所以在我們的電腦上可以在?hosts
?文件中手動添加解析條目。
比如,將域名?sysadm.local
?解析到?192.168.1.x
?這個IP地址上。
192.168.1.x sysadm.local
好,監聽器及虛擬主機映射建立好后基本上應該是這個樣子。

3、復制項目文件到虛擬主機根目錄下
復制文件這個不用多說了吧,將原有的?Laravel
?項目目錄中所有文件復制到剛才我們建立的虛擬主機文檔根目錄中。
比如:
cp laravel_files /usr/local/lsws/sysadm.local/html/
這里要注意兩個子目錄的權限,這兩個子目錄需要讓?lshttpd
?服務有權限訪問,那么務必給它換個主人。
跑?OLS
?服務的用戶和組都叫?nobody
?,所以新主人就是?nobody
?。
chown -R nobody:nobody sysadm.local/html/storage/
chown -R nobody:nobody sysadm.local/html/bootstrap/cache/
4、導入數據庫
這個也不用多說吧,導入數據備份即可。
5、修改?.env
?配置文件,并重新加載配置。
修正一些環境參數,比如數據庫的連接信息。
然后最好是重新加載一下配置,比如以下。
php artisan config:cache
php artisan view:cache
composer dump-autoload
6、調整一些雜項
一個項目可能會用到不同的擴展,例如?redis
?等等。
這個時候你就要注意看看系統是否正確加載了這些擴展。
還有其他一些參數的設定,比如?PHP
?的文件上傳大小,或是腳本執行超時等等。
寫在最后
在導入?Laravel
?項目的過程中,可能會遇到?404
?錯誤,那么你就要檢查一下虛擬主機文檔根目錄是不是指向了?public
?目錄。
還有其他一些錯誤啊、打開空白頁面啊等等情況,可能需要你回過頭去再看看哪里做錯了,反正我也是調試了很久才成功,但我保證之前的步驟基本沒問題。
至于優化或緩存的話題,這些對于我這個小白來說太復雜了,有待將來逐個研究破解。
此外還有一個問題,相信有的小伙伴們也應該注意到了,我們建立的這個虛擬主機只跑在了?80
?端口上。
傳輸沒有加密心里肯定會有點慌,那如何讓?OLS
?虛擬主機愉快地跑在?HTTPS
?上呢?
我們下一回再聊。
WeChat@網管小賈 | www.sysadm.cc