首先了解一下LNMP這四個字母的意思:可以把四個字母分開來看:L:linux的作業系統;N:Nginx網站服務;M:mysql資料庫;P:php解析環境。
本次主要能學會Nginx網站服務的基本建構;
學會建構Nginx主機;(這個和apache的網站服務的虛拟web主機類似,本次不做過多講解)
學會部署LNMP網站服務平台
一:Nginx服務基礎
Nginx的優點:(1)穩定性;(2)系統資源消耗低;(3)并發連接配接的高處理能力
1.安裝及運作控制
編譯安裝Nginx
Nginx的配置及運作需要pcre,zlib等軟體包的支援,一遍提供相應的庫和頭檔案,能確定Nginx的安裝順利完成。是以需要安裝yum倉庫,友善安裝依賴包。
建立運作使用者群組
預設以nodody身份運作。建議為其建立專門的使用者,能準确的控制起通路權限,增加靈活性,降低安全風險。這是Nginx網站服務的單獨運作使用者,不需要登入系統。
useradd -M -s /sbin/nologin nginx
--perfix //指定Nginx的安裝路徑
--user //用于指定運作的使用者
--group //使用者指定運作的組
--with-http_stub_module //啟動子產品以支援狀态統計
為了是Nginx伺服器的運作友善,可以為主程式nginx建立連結檔案,以便管理者直接執行“nginx”指令就可以調用Nginx的主程式。
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
2.Nginx的運作控制
檢查配置檔案
與apache的主程式httpd類似,Nginx的主程式也提供了“-t”選項來對配置檔案進行檢查,以便找出不當或錯誤的配置。配置檔案Nginx.conf預設位于安裝目錄下的conf/子目錄下。若要檢查其他位置的配置檔案,可使用“-c”選項來指定路徑
啟動.停止Nginx
直接運作Nginx即可啟動Nginx伺服器,這種方式是使用預設的配置檔案,若要該用其他配置檔案,需添加“-c配置檔案路徑”選項來指定路徑。
通過檢查Nginx程式的監聽狀态,或者在浏覽器中通路此web服務,可以确認Nginx服務是否正常運作
netstat -anpt | grep nginx
主程Nginx支援标準的程序信号,通過kill或killall指令發送HUP信号表示重新加載配置,OUT信号表示退出程序,KILL信号表示殺死程序。
Nginx程序運作時,PID号預設存放在log/目錄下的Nginx.pid檔案中
3.配置檔案nginx.conf
Nginx伺服器的主配置檔案/usr/local/nginx/conf/nginx.conf中,配置的語句格式為“關鍵字 值;”
全局配置
由各種配置語句組成,不使用特定的界定标記,全局配置部分包括Nginx服務的運作使用者;工作程序數,錯誤日志,PID存放位置
#user nobody; //運作使用者
woker_processes 1; //工作程序數量
#error_log logs/error.log; //錯誤日志檔案的位置
#pid logs/nginx.pid; //PID檔案位置
1/0事件配置
使用“events{}”界定标記,用來指定Nginx程序的1/0響應模型,每個程序的連接配接數等設定。
若工作程序數為8,每個程序處理4096個連接配接,則允許Nginx正常提供服務的連接配接數已超過3萬多個,具體還是要看伺服器的硬體,網絡帶寬等因素
HTTP配置
使用“http{}”界定标記,包括通路日志,HTTP端口,網頁目錄,預設字元集,連接配接保持以及後續講解的虛拟web主機,php解析等
二:LNMP架構及應用部署
衆所周知,LAMP平台是目前應用最為廣泛的網站伺服器架構,其中的“A”對應這web服務軟體Apache HTTP Server。随着Nginx在企業中的使用呈上升趨勢,相信不久的将來LNMP架構會成為這個行業的主流,是以也受更多的Linux工程師所青昧。
1.建構LNMP平台
安裝Mysql資料庫
為了與Nginx,php環境保持一緻,仍選擇采用源代碼編譯的方式安裝Mysql元件
yum -y install ncurses-devel(需要安裝yum倉庫,這是一個很多依賴包的軟體,以便支援mysql資料庫)
tar zxvf cmake-2.8.6.tar.gz
cd cmake-2.8.6
./configure && gmake && gmake install(編譯安裝Mysql時需要用這個軟體來編譯,是以需要把這個軟體裝上)
tar zxvf mysql-5.5.22.tar.gz
cd mysql-5.5.22
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8 --DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DSYSCONFDIR=/etc && make && make install
安裝完畢後還沒有完事,還需要優化資料庫,初始化資料庫,啟動mysql服務
2.安裝php解析環境
較新版本的php已經自帶FPM(程序管理器)子產品,用來對php解析執行個體進行管理,優化解析效率。需要添加“--enable-fpm”以啟用此子產品
編譯安裝php
yum -y install gd libxm12-devel libjped-devel libpng-devel
tar zxvf php-5.3.28.tar.gz
cd php-5.3.28
./configure --prefix=/usr/local/php5 --with-gd --with-zlib --with-mysql=/usr/local/mysql --with-config-file-path=/usr/local/php5 --with-mbstring --enable-fpm --with-fpm --with-jpeg-dir=/usr/lib && make && make install
配置Nginx支援PHP環境
讓Nginx能解析PHP網頁,兩種方法可以選擇。其一:充當中介,将通路PHP頁面的web請求轉交給其他伺服器去處理,其二:通過使用PHP的FPM子產品來調用本機的PHP環境
啟用php-fpm程序
參考php-fpm.conf配置檔案,并修改其中的PID檔案,運作使用者,服務數等相關設定。然後啟動php-fpm程式即可(預設監聽本機的9000端口号)
php-fpm.conf檔案中,pid配置行指出了PID資訊的存放位置,對應的實際路徑/usr/local/php5/var/php-rpm.pid.
配置Nginx至此PHP解析
無論是将PHP頁面交給LAMP伺服器去解析,還是調用本機的php=fpm程序進行解析,都需要在“server{}”配置段中添加location設定,以便指定當通路.php網頁是采取何種操作。
對于第一種方法(轉交給其他web伺服器處理),使用的配置語句如下
server {
......
location ~ \.php${
}
}
對于第二種方法(調用本機的php-fpm程序),使用的配置如下:
server {
......
location ~ \.php$ {
root /var/www/tanhong;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php
include fastcgi.conf;
}
}
三。在LNMP平台中部署web應用
1.下載下傳并部署程式代碼
将下載下傳的程式檔案解壓,找到其中的wwwroot檔案夾并将其放置到LNMP伺服器的網站預設根目錄(一般不會根據實際情況,可能網站的目錄會放置在一個隐秘的位置)
yum -y install unzip
unzip SKYNC.v3.4.2.SOURCE.zip
cd SKYNC.v3.4.2.SOUTCE
mv wwwroot /usr/local/nginx/html/skync
cd /usr/local/nginx/html/skync
chown -R php:php admincp/ data/ templates/ upload
2.建立資料庫
為了降低web應用程式對資料庫的風險,建議設定專用的資料庫及授權使用者,而不是直接使用資料庫的預設root使用者
mysql -u root -p //驗證root使用者的密碼
mysql> CREATE DATABASE skyncdb; //建立資料庫
mysql>GRANT all ON skyncdb.* TO RUNSKYNC@localhost IDENTIFIED BY 'sky@uc123'
本文轉自 宏強 51CTO部落格,原文連結:http://blog.51cto.com/tanhong/1881223