LNMP環境的搭建
之前我們已經對LAMP環境有所瞭解,今天我們來學習以下LNMP。LNMP是指Linux系統下Nginx+MySQL+PHP這種網站服務器架構,使用nginx來代替apache,Nginx是一個高性能的HTTP和反向代理服務器,也是一個IMAP/POP3/SMTP代理服務器。作爲 Web 服務器,相比 Apache,Nginx 使用更少的資源,支持更多的併發連接,體現更高的效率。Nginx 既可以在內部直接支持Rails和PHP,也可以支持作爲 HTTP代理服務器對外進行服務。Nginx同時也是一個非常優秀的郵件代理服務器,Nginx性能穩定、功能豐富、運維簡單、處理靜態文件速度快且消耗系統資源極少。接下來我們就完成LNMP的搭建,以及實現xcache對php的加速,降低服務器的負載。
搭建環境:red hat 5.4
所需軟件包:
mysql-5.5.15-linux2.6-i686
(前面我們已經瞭解mysql的源碼安裝是一個很費時間的事情,所以這裏所下載mysql是一個綠色軟件包,裏面直接是二進制文件供我們直接使用)
libevent-2.0.16-stable(增強nginx的性能)
nginx-1.0.11
php-5.4.13
(之前我們的php使用一個模塊(cgi)和apache通訊但效率低,這裏php使用一種fastcgi服務進程來和nginx服務器進行連接,fastcgi常駐內存,可以同時啓動很多進程,效率較高)
xcache-2.0.1(加速php,降低服務器負載)
安裝mysql:
Mysql爲二進制軟件包,直接解壓到/usr/local目錄下
Tar –zxvf mysql-5.5.15-linux2.6-i686.tar.gz –C /usr/local/
進入解壓後的目錄爲mysql目錄建一個軟連接方便打開
[root@station252 local]# ln -s mysql-5.5.15-linux2.6-i686 mysql
打開INSTALL-BINARY文件,並參考它的安裝步驟進行安裝
這樣就就可以mysql進行控制了
爲了直接使用mysql進入數據庫,去修改/etc/profile文件加入mysql環境配置路徑
修改完畢更新profile
[root@station252 mysql]# . /etc/profile
爲數據庫root用戶創建密碼
[root@station252 mysql]# mysqladmin -u root -p password '123456'
接下來設置mysql的庫文件和頭文件來使其他應用能夠找到它
在/etc/ld.so.conf.d目錄下創建mysql.conf文件並編輯,寫上庫文件的路徑,編輯完後進行更新
給頭文件建立軟連接
[root@station252 mysql]# ln -s include /usr/include/mysql
Mysql的安裝就結束了
安裝nginx:
首先去安裝libevent和pcre,libevent可以提高nginx的性能,pcre是一些兼容的正則表達式庫
Pcre使用光盤鏡像的rpm包進行安裝pcre系統已經自動安裝過我們直接安裝pcre-devel
Rpm –ivh pcre-devel-6.6-2.el5_1.7.rpm
Libevent用源碼安裝
[root@station252 ~]# tar -zxvf libevent-2.0.16-stable.tar.gz -C /usr/local/src/
直接對它進行配置編譯安裝
./configure
Make && make install
創建libevent的配置文件,並寫上libevent的lib庫的路徑
爲頭文件建立軟連接使其他應用能正確找到它
[root@station252 libevent]# ln -s include /usr/include/libevent
創建nginx管理組和用戶
[root@station252 nginx-1.0.11]# groupadd -r nginx
[root@station252 nginx-1.0.11]# useradd -s /sbin/nologin -M -r -g nginx ngin
對nginx進行編譯安裝
Make && make install
爲nginx編寫一個控制腳本
測試nginx是否安裝成功:
安裝php:
安裝編譯php
Make && make install
建立兩個目錄php存放配置文件,php5.d存放一些額外的擴展功能的文件
[root@station252 ~]# mkdir /etc/php
[root@station252 ~]# mkdir /etc/php5.d
拷貝php.ini-production 到/etc/php/php.ini 它實際爲Php的配置文件
[root@station252 etc]# cd /usr/local/src/php-5.4.13/
[root@station252 php-5.4.13]# cp php.ini-production /etc/php/php.ini
拷貝sapi/fpm/init.d.php-fpm(fastcgi的控制文件)到/etc/init.d/php-fpm並給它可執行權限作爲一個控制文件
[root@station252 php-5.4.13]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
[root@station252 php-5.4.13]# chmod a+x /etc/init.d/php-fpm
進入/usr/local/php/etc/目錄下拷貝php-fpm.conf.default到php-fpm.conf作爲php-fpm的配置文件,可以根據自己的需求來修改配置文件
[root@station252 php-5.4.13]# cd /usr/local/php/etc/
[root@station252 etc]# cp php-fpm.conf.default php-fpm.conf
測試php-fpm的控制腳本
測試一下nginx和php的連接情況
去編輯nginx的配置文件
[root@station252 ~]# vim /etc/nginx/nginx.conf
配置文件編輯完畢後去web站點的主目錄建一個php測試文件並寫上簡單的測試語句
<?php
phpinfo();
?>
編輯完成後重啓nginx和php-fpm服務進行測試
已完成nginx和php的連接
接下來測試與數據庫的連接,同樣編輯一個簡單的測試文件
<?php
$link=mysql_connect('127.0.0.1','root','123456');
if ($link)
echo "ok";
else
echo "failed";
?>
連接成功
現在已經完成nginx、php和mysql的連接
接下來我們對php進行加速這裏我們採用xcache
[root@station252 ~]# tar -zxvf xcache-2.0.1.tar.gz -C /usr/local/src/
對於xcache需要我們自己去生成一個configure文件,具體步驟是,執行安裝php時的一個phpize工具,如圖:
[root@station252 xcache-2.0.1]# ./configure --enable-xcache --with-php-config=/usr/local/php/bin/php-config
Make && make install
完成後會產生一個xcache.so模塊,後邊進行xcache和php連接是需要用到
安裝編譯完成後我們需要把xcache和php結合
安裝php時我們創建了一個php5.d的目錄用來存放拓展功能的一些文件,我們就把xcache的源代碼目錄下的xcache.ini文件拷貝過來並編輯
[root@station252 xcache-2.0.1]# cp xcache.ini /etc/php5.d/
把產生模塊的完整路徑寫到第八行,第十和十二行註釋掉
重啓php
測試xcache是否已經加載到php
修改index.php
<?php
phpinfo();
?>
可以看到xcache已經加載
爲實現能對xcache的web管理我們需要把xcache源代碼目錄下的admin目錄拷貝到web站點主目錄下,並修改admin權限以及admin目錄下的index.php的權限
[root@station252 html]# cp -r /usr/local/src/xcache-2.0.1/admin ./
[root@station252 admin]# chmod a+r index.php
[root@station252 html]# chmod a+rx admin/
在瀏覽器中輸入http://192.168.129.252/admin
會出現下面錯誤,原因是這是一個管理界面需要去認證才能進入
根據要求接下來我們去生成一個登錄賬號和密碼,通過以下命令爲密碼產生一個MD5加密的密鑰
[root@station252 ~]# echo -n "123456" |md5sum
e10adc3949ba59abbe56e057f20f883e -
把生成的密鑰和賬戶名編輯到/etc/php5.d/xcache.ini文件裏
重啓php-fpm服務對瀏覽器進行刷新
輸入剛剛創建的用戶名和密碼
登陸成功可以看到緩衝區和模塊等信息