LAMP服務(wù)器環(huán)境搭建及工程部署
時(shí)間:2023-06-28 19:27:01 | 來(lái)源:網(wǎng)站運(yùn)營(yíng)
時(shí)間:2023-06-28 19:27:01 來(lái)源:網(wǎng)站運(yùn)營(yíng)
LAMP服務(wù)器環(huán)境搭建及工程部署:這篇文章是我之前講的環(huán)境搭建和項(xiàng)目部署視頻講解的文字版本,由于之前直播錄屏的時(shí)候沒(méi)有空閑的服務(wù)器進(jìn)行搭建,所以沒(méi)有詳細(xì)的截圖等可以展示。
現(xiàn)在剛好我手頭有一臺(tái)vps剛重裝完,記錄一下搭建的過(guò)程。
簡(jiǎn)介
LAMP環(huán)境也就是XAMPP的Linux版本,指的是Linux+Apache+Mysql+PHP的組合,是比較經(jīng)典的建站環(huán)境。
之前提到過(guò),部署LAMP環(huán)境主要有以下的幾種方式:
- 包管理安裝(用apt-get、yum等逐個(gè)安裝Apache、mysql、php)
- 優(yōu)點(diǎn):包管理能解決一定的依賴(lài)、環(huán)境問(wèn)題
- 缺點(diǎn):不可自定義一些特殊功能,還是會(huì)存在一定的環(huán)境問(wèn)題
- 手動(dòng)編譯安裝(下載源碼編譯安裝)
- 優(yōu)點(diǎn):完全可自定義(如worker等)
- 缺點(diǎn):需要解決大量的環(huán)境問(wèn)題才能順利編譯,不利于快速部署
- 一鍵安裝腳本
- 優(yōu)點(diǎn):簡(jiǎn)單快捷,可以選擇各個(gè)組件的版本,適合新手
- 缺點(diǎn):有自定義組件需求的時(shí)候比較麻煩,安全問(wèn)題(夾帶私貨、挖礦)
一般學(xué)習(xí)和普通生產(chǎn)用途基本可以無(wú)腦選一鍵安裝腳本,我現(xiàn)在使用的這個(gè)腳本(
https://lamp.sh/)我自己已經(jīng)使用了好幾年,一直比較穩(wěn)定,提供的幫助也挺好,基本按部就班做就可以成功搭建。
同時(shí)還有一個(gè)LNMP(Nginx)的一鍵安裝包(
https://lnmp.org/),也很好用,我后續(xù)演示的騰訊云中使用的就是LNMP。兩個(gè)的差異主要是http服務(wù)器分別是Apache和Nginx,這兩個(gè)的差異大家可以自行研究。
上手
安裝推薦使用交互安裝方式(
https://lamp.sh/install.html),可以看到
系統(tǒng)需求
- 系統(tǒng)支持:Amazon Linux 2018.03/Fedora 29/CentOS 6+/Debian 8+/Ubuntu 14+
- 內(nèi)存要求:≥ 512MB
- 硬盤(pán)要求:至少 5GB 以上的剩余空間
- 服務(wù)器必須配置好 軟件源 和 可連接外網(wǎng)
- 必須具有系統(tǒng) root 權(quán)限
- 強(qiáng)烈建議使用全新系統(tǒng)來(lái)安裝
支持組件- 支持 PHP 自帶幾乎所有組件
- 支持 SQLite、MySQL、MariaDB、Percona Server 數(shù)據(jù)庫(kù)
- 支持 Yaf(可選安裝)
- 支持 Redis(可選安裝)
- 支持 XCache (可選安裝)
- 支持 Swoole (可選安裝)
- 支持 Memcached (可選安裝)
- 支持 ImageMagick (可選安裝)
- 支持 GraphicsMagick (可選安裝)
- 支持 ionCube Loader (可選安裝)
- 自助升級(jí) Apache,PHP,phpMyAdmin,Adminer,MySQL/MariaDB/Percona Server至最新版本
- 命令行新增虛擬主機(jī)(使用 lamp 命令),操作簡(jiǎn)便
- 支持一鍵卸載程序(不會(huì)刪除網(wǎng)站數(shù)據(jù))
系統(tǒng)需求方面,如果你使用的是云服務(wù)器,基本都能達(dá)到使用這個(gè)腳本的最低要求(如果達(dá)不到,使用編譯的方法安裝估計(jì)也夠嗆)。同時(shí)開(kāi)發(fā)常用的組件(redis、memcached)這些手動(dòng)安裝可能會(huì)遇到比較多環(huán)境問(wèn)題的也可以一次性配好,很方便。
下面開(kāi)始安裝。這里默認(rèn)讀者已經(jīng)學(xué)會(huì)使用
ssh連接到服務(wù)器并熟悉一些基本
Linux命令的操作。其實(shí)整個(gè)過(guò)程只需要按照上面鏈接的指示復(fù)制粘貼命令即可。
我的環(huán)境
BandwagonHost SPECIAL 10G KVM PROMO V3 - LOS ANGELES - CN21C1T 512MOS:CentOS7
事前
安裝腳本運(yùn)行所需要的幾個(gè)依賴(lài)
yum -y install wget screen git // for Amazon Linux/CentOS/Fedoraapt-get -y install wget screen git // for Debian/Ubuntu
我的環(huán)境是CentOS,所以選擇上面的yum命令執(zhí)行。
然后下載腳本、賦予權(quán)限
動(dòng)手
接下來(lái)就可以開(kāi)始安裝了,這里也可以看到自己服務(wù)器的配置信息
接下來(lái)就是一連串的選擇了,Apache這里選擇1或者直接回車(chē)(只有這個(gè)了)。httpd是Apache服務(wù)器的別名。
這里可以選擇一些apache的module,這是腳本安裝唯一的自定義性。用不到,所以繼續(xù)回車(chē)默認(rèn)不安裝。
接下來(lái)這里可以選擇mysql和php的版本,mysql建議選5.7,8.0剛出穩(wěn)定性和社區(qū)支持還沒(méi)到位,php也是選擇默認(rèn)的7.3即可。注意mysql可以自定義數(shù)據(jù)路徑,如果有需求可以自定義,一般直接默認(rèn)一路回車(chē)即可。
注意!??!這里設(shè)置的mysql root password一定要記住!接下來(lái)有PHP組件和PHPmyadmin可選,我的項(xiàng)目用到了redis和memcached,所以兩個(gè)都選擇上。phpmyadmin則選擇默認(rèn)即可。
最后一步還有一個(gè)Kod什么的可選,我用不到,就不裝。然后到這個(gè)界面,還可以看到一次mysql 的Root Password,一定要記住??催^(guò)沒(méi)有問(wèn)題,就可以按任意鍵開(kāi)始安裝。接下來(lái)就是一段漫長(zhǎng)的滾代碼,時(shí)間取決于你服務(wù)器的性能和網(wǎng)絡(luò)環(huán)境等?,F(xiàn)在就可以開(kāi)始掛一會(huì)兒機(jī)了。到最后會(huì)提示安裝完成。
最后這臺(tái)機(jī)器因?yàn)閮?nèi)存不足(可以看到上面只有<512M)所以沒(méi)有辦法完成php的編譯安裝,所以后面的內(nèi)容我會(huì)使用已經(jīng)安裝好LAMP環(huán)境的另一臺(tái)騰訊云演示。
KodExplorer后面發(fā)現(xiàn)是一個(gè)商業(yè)軟件,類(lèi)似云盤(pán)之類(lèi)的東西,應(yīng)該是作者的恰飯,有需要可以看看,建議選擇不要安裝。
虛擬主機(jī)添加(可選)
- 安裝 LAMP 環(huán)境
- 添加虛擬主機(jī)。運(yùn)行命令:lamp add (如果只建一個(gè)站,則可以直接將網(wǎng)站程序上傳至 /data/www/default 目錄下即可)
- 上傳并解壓網(wǎng)站程序到網(wǎng)站目錄,默認(rèn)位置為:/data/www/網(wǎng)站域名/
- 更改網(wǎng)站目錄權(quán)限。以 root 用戶登錄,運(yùn)行:chown -R apache:apache /data/www/網(wǎng)站域名/
- 運(yùn)行網(wǎng)站安裝程序完成網(wǎng)站安裝
這里虛擬主機(jī)的意思是你可以綁定多個(gè)域名(要先修改域名解析到這個(gè)服務(wù)器的ip),每個(gè)域名各自有一個(gè)網(wǎng)站根目錄,通過(guò)域名直接能訪問(wèn)到不同的網(wǎng)站,但其實(shí)還是在同一臺(tái)服務(wù)器上。如果你沒(méi)有域名,可以直接用ip作為域名。(沒(méi)必要)
同時(shí),這個(gè)腳本里也提供了一鍵配置https(ssl證書(shū))的功能,只需要上傳證書(shū)就可以完成配置。
工程部署
程序目錄:
- MySQL 安裝目錄: /usr/local/mysql
- MySQL 數(shù)據(jù)庫(kù)目錄: /usr/local/mysql/data(默認(rèn)路徑,安裝時(shí)可更改)
- MariaDB 安裝目錄: /usr/local/mariadb
- MariaDB 數(shù)據(jù)庫(kù)目錄: /usr/local/mariadb/data(默認(rèn)路徑,安裝時(shí)可更改)
- Percona 安裝目錄: /usr/local/percona
- Percona 數(shù)據(jù)庫(kù)目錄: /usr/local/percona/data(默認(rèn)路徑,安裝時(shí)可更改)
- PHP 安裝目錄: /usr/local/php
- Apache 安裝目錄: /usr/local/apache
- phpMyAdmin 安裝目錄: /data/www/default/phpmyadmin
- KodExplorer 安裝目錄: /data/www/default/kod
網(wǎng)站目錄:- 默認(rèn)的網(wǎng)站根目錄: /data/www/default
- 默認(rèn)頁(yè)位置: /data/www/default/index.html
- 新建網(wǎng)站默認(rèn)目錄: /data/www/網(wǎng)站域名
- phpmyadmin 后臺(tái)地址: http://域名或IP/phpmyadmin/
- phpmyadmin 默認(rèn)用戶名:root 默認(rèn)密碼:root (注:此密碼為 MySQL 的 root 密碼。在安裝時(shí)會(huì)要求輸入,如不輸入則為默認(rèn)密碼 root)
- XCache 后臺(tái)地址: http://域名或IP/xcache/
- XCache 默認(rèn)用戶名:admin 默認(rèn)密碼:123456 (注:用戶名和密碼在配置文件 /usr/local/php/php.d/xcache.ini 中定義)
配置文件:- Apache 日志目錄: /usr/local/apache/logs
- 新建網(wǎng)站日志目錄: /data/wwwlog/網(wǎng)站域名
- Apache 默認(rèn) SSL 配置文件: /usr/local/apache/conf/extra/httpd-ssl.conf
- 新建網(wǎng)站配置文件: /usr/local/apache/conf/vhost/網(wǎng)站域名.conf
- PHP 配置文件: /usr/local/php/etc/php.ini
- PHP 所有擴(kuò)展配置文件目錄: /usr/local/php/php.d/
- MySQL 配置文件: /etc/my.cnf
這里有所有的目錄的位置??梢钥吹?,默認(rèn)的網(wǎng)站根目錄在
/data/www/default
,這個(gè)就相當(dāng)于win下xampp的
htdocs
文件夾。(如果你配置了虛擬主機(jī),那么根目錄在
/data/www/YOUR_DOMAIN_NAME
)
與win下部署方式類(lèi)似,只需要把php工程文件夾拷貝到網(wǎng)站根目錄即可。(題外話:我有前輩以及一些同學(xué)習(xí)慣直接把項(xiàng)目建在htdocs下,或者整個(gè)htdocs就是一個(gè)項(xiàng)目,我不提倡這種做法,會(huì)對(duì)項(xiàng)目管理造成混亂,不是很好的開(kāi)發(fā)習(xí)慣。)
傳輸文件我一般使用PHPstorm的
Deployment
功能或者使用
winscp
進(jìn)行文件的傳輸。接下來(lái)分別介紹一下。
winscp
文件傳輸我習(xí)慣用winscp,這個(gè)軟件十分簡(jiǎn)潔,就是一個(gè)單純的文件管理器,沒(méi)有其他太多的功能,通過(guò)sftp協(xié)議傳輸文件,不用另外配置。當(dāng)然如果你有部署ftp服務(wù),也可以使用其他一些ftp軟件如FileZilla等進(jìn)行管理。
進(jìn)入winscp,配置好連接,然后點(diǎn)擊登錄即可。
服務(wù)器端(右邊)來(lái)到
/data/www/default
(或你的網(wǎng)站根目錄,我這里使用的是LNMP,根目錄在
/home/wwwroot/xxx
)。本地端(左邊)可以打開(kāi)到相應(yīng)的項(xiàng)目目錄,也可以用文件管理器打開(kāi)到相應(yīng)的項(xiàng)目目錄。
將要部署的項(xiàng)目直接拖過(guò)去右邊/從文件管理器拖過(guò)去右邊。
如果是更新文件,則選擇全部選是,進(jìn)行替換。
到這里就完成了。
Deployment(jetbrain系IDE可用)
首先需要進(jìn)行一定的配置。同樣以這個(gè)tutorial項(xiàng)目為例。
在工具欄找到
Tools->Deployment->Configuration...
在彈出的窗口中點(diǎn)擊左上角+號(hào),選擇sftp,然后輸入相應(yīng)的信息,點(diǎn)擊Test Connection,如果成功說(shuō)明沒(méi)有問(wèn)題。
接下來(lái)點(diǎn)擊Mappings選項(xiàng)卡。選擇或輸入遠(yuǎn)程的路徑,點(diǎn)確認(rèn)。
最后,如果你使用的是thinkphp框架,需要排除掉runtime和vendor文件夾(里面放的是運(yùn)行時(shí)文件,容量比較大,而且環(huán)境不同沒(méi)必要同步)。這里需要注意本地路徑需要使用絕對(duì)路徑。
(這里用了另外一個(gè)項(xiàng)目的例子,懶得再寫(xiě)了)
配置好后,每次需要上傳時(shí),點(diǎn)擊里面的upload即可。Sync有代碼diff功能,也可以使用這個(gè)。
過(guò)程到這里就結(jié)束了,希望能幫助大家順利完成部署。
如果覺(jué)得不錯(cuò),可以關(guān)注一下我的公眾號(hào),定期推送技術(shù)文章。
關(guān)鍵詞:工程,部署,服務(wù),環(huán)境