小編:這幾年隨着電子商務的蓬勃發展,也帶動Web的高速發展。人們對於網站的要求已經不僅僅是用於瀏覽新聞、消遣娛樂這麼簡單了,更注重的是網站的安全和效率.是否能提供更加人性化、貼心的服務儼然已經成爲了現代電商競爭的籌碼.舉個很簡單的例子:現在網上最火的是什麼?每天的茶餘飯後,大家討論最多的話題是什麼?親,你搶到XXX手機了嗎?往往這個時候,論壇是最火的,大家都在不停跟帖、刷心情,說什麼呢?神馬都有。前幾年討論較多往往是:XXX網站,你進去了沒?真受不了這網站了?等了XXX時間,還沒進去,好不容易進去了,網站又卡死掉了,然後。。。。這幾年討論較多的往往是:我很輕鬆就進去了,搶了一臺XXX手機,然後曬單,發微博,發心情,歡呼雀躍。。。。
想必這樣的經歷,對於90後的我們並不陌生吧。小編有幸也體驗過幾把,也是幾多歡喜幾多愁.不過,隨着Web的高速發展,已經基本能滿足我們的需求了,相信未來的網站會讓我們的生活更加美好!言歸正傳,網站的穩定高速發展來不開環境的支持,一個穩定的環境能提供Web發展的不竭動力.現在我們大多數門戶網站使用較多的架構有兩種:LAMP(Linux+Apache+MySQL+PHP);LNMP(Linux+Nginx+MySQL+PHP).
我們比較熟悉的基於LAMP環境開發的門戶網站:Yahoo、Facebook、Sina、YouTube等;基於LNMP環境開發的門戶網站:淘寶Tengine等.在前面的博客《LAMP環境源碼構建》中,小編用最新的源碼搭建了LAMP環境,有興趣的博友可以看下。
博客地址:http://tywangpanpan.blog.51cto.com/6264315/1177325
今天我們來用源碼搭建一下LNMP環境,可以熟悉一下兩種架構環境的差別.比較學習一下,下面一起開始我們今天的配置吧!!!
【系統環境】
Red Hat Enterprise Linux Server release 5.4
內核版本(2.6.18-164.e15)
最新穩定版(3.8.6)可以自行編譯升級
Linux內核官網: http://www.kernel.org/
【準備工作】
①下載Nginx最新版源碼包:http://www.nginx.org/ (nginx-1.3.16.tar.gz)
②下載Libevent最新版源碼包:http://www.libevent.org/
(libevent-2.0.18-stable.tar.gz)
③下載MySQL 源碼包:http://www.mysql.com/downloads/
(mysql-5.5.15-linux2.6-i686.tar.gz)
說明:本次用的Mysql爲綠色版(已經cmake編譯過的),如果你下的是未編譯的源碼,還需要先安裝cmake工具進行Mysql編譯.
具體的過程可以參考:
http://tywangpanpan.blog.51cto.com/6264315/1177325
④下載PHP源碼包:http://www.php.net/(php-5.4.14.tar.bz2)
⑤下載Xcache最新版源碼包:http://xcache.lighttpd.net/
(xcache-3.0.1.tar.gz)
【配置詳情】
一:MySQL的安裝
Step1:創建Mysql需要的組和服務賬號(nologin)
groupadd -r mysql
useradd -r -g mysql mysql -M -s /sbin/nologin
Step2:解壓縮源碼包到指定目錄.
tar zxvf mysql-5.5.15-linux2.6-i686.tar.gz -C /usr/local/
cd /usr/local/
ln -s mysql-5.5.15-linux2.6-i686 mysql
cd mysql
vim INSTALL-BINARY(MySQL安裝配置的說明文件,下面按此步驟進行就OK了)
cd /usr/local/mysql
chown -R mysql .
chgrp -R mysql .
scripts/mysql_install_db --user=mysql(執行初始化mysql數據庫腳本)
chown -R root .
chown -R mysql data
Step3:拷貝生成MySQL的主配置文件和服務的啓動控制腳本.
cp support-files/my-medium.cnf /etc/my.cnf
cp support-files/mysql.server /etc/init.d/mysqld
chmod a+x /etc/init.d/mysqld
Step4:進行MySQL的相關優化操作.
①將MySQL/bin路徑加入到系統環境變量.
vim /etc/frofile
. /etc/profile ( source /etc/profile ):讓新加入的環境變量生效.
②將MySQL/bin庫文件路徑加入到系統庫.
vim /etc/ld.so.conf.d/mysql.conf
ldconfig (將MySQL庫加入到系統庫中)
③將MySQL/inchude頭文件路徑加入到系統路徑.
ln -s include/ /usr/include/mysql
Step4:啓動服務,修改啓動級別,添加MySQL管理員密碼.
service mysqld start
mysqladmin -u root -p password ‘123456’
二:Nginx的源碼安裝
Step1:RPM安裝Red Hat光盤上的pcre-devel軟件包.
rpm -ivh pcre-devel-6.6-2.e15_1.7.i386.rpm
Step5:源碼安裝libevent.
vim /etc/profile
. /etc/profile
vim /etc/ld.so.conf.d/libevent.conf
ldconfig
ln -s /usr/local/libevent/include/ /usr/include/libevent
Step3:創建Nginx服務的nologin系統賬號
groupadd -r nginx
useradd -r -g nginx -M nginx
Step4:解壓縮源碼.
tar zxvf nginx-1.3.16.tar.gz -C /usr/local/src/
cd /usr/local/src/nginx-1.3.16
Step5:源碼安裝Nginx.
./configure \
--conf-path=/etc/nginx/nginx.conf \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--user=nginx \
--group=nginx \
--with-http_ssl_module \
--with-http_flv_module \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/tmp/nginx/client/ \
--http-proxy-temp-path=/var/tmp/nginx/proxy/ \
--http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ \
--with-pcre
make && make install
Step5:編寫Nginx的服務啓動控制腳本,並能接受chkconfig的管理.
cp nginx /etc/init.d/
Step6:啓動服務,查詢狀態.
三:PHP的源碼安裝
Step1:解壓縮源碼包.
tar jxvf php-5.4.14.tar.bz2 -C /usr/local/src/
cd /usr/local/src/php-5.4.14
Step2:編譯安裝.
./configure \
--prefix=/usr/local/php \
--enable-fpm \
--enable-sockets \
--with-mysql=/usr/local/mysql \
--with-mysqli=/usr/local/mysql/bin/mysql_config \
--enable-mbstring \
--enable-xml \
--with-png-dir \
--with-png \
--with-jpeg-dir \
--with-zlib \
--with-freetype-dir \
--with-config-file-path=/etc/php \
--with-caonfig-file-scan-dir=/etc/php5.d
make && make install
Step3:創建php的主配置文檔目錄和Xcache的主配置文檔存放目錄.
mkdir /etc/php /etc/php5.d
cd /usr/local/src/php-5.4.14
cp php.ini-production /etc/php/php.ini
Step4:拷貝生成鏈接Nginx的接口php-fpm控制腳本和主配置文件.
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod a+x /etc/init.d/php-fpm
cd /usr/local/php/etc/
cp php-fpm.conf.default php-fpm.conf
Step5:啓動php-fpm服務,查看端口狀態.
service php-fpm start
chkconfig --add php-fpm
四:整合Nginx配置,測試Nginx和PHP,PHP和MySQL的鏈接情況.
vim /etc/nginx/nginx.conf
cd /usr/local/nginx/html/
vim index.php 添加php的測試代碼.
測試PHP鏈接Nginx是否正常.
vim index.php
測試PHP鏈接MySQL數據庫是否正常.
五:Xcache的源碼安裝
Step1:解壓縮Xcache源碼包,編譯安裝.
tar xcache-3.0.1.tar.gz -C /usr/local/src/
cd /usr/local/src/xcache-3.0.1
使用php的phpize工具生成configure文件.
/usr/local/php/bin/phpize
編譯安裝
./configure --enable-xcache
--enable-xcache--with-php-config=/usr/local/php/bin/php-config
make && make install
Step2:整合php和Xcache(兩種方式).
①cat xcache.ini >> /usr/local/php/lib/php.ini
vim /usr/local/php/lib/php.ini
編輯下列行:extension =
/usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/xcache.so
②cp xcache.ini /etc/php5.d(本次使用的是下面這種方式)
vim /etc/php5.d/xcache.ini
service nginx restart
service php-fpm restart
Step3:測試php鏈接Xcache是否正常.
Step4:爲了實現Xcache的Web管理,可以做下列優化.
cp -r /usr/local/src/xcache-3.0.1/htdocs /usr/local/nginx/html/
chmod a+rx /usr/local/nginx/html/htdocs
cd /usr/local/nginx/html/htdocs
chmod a+x index.php
訪問方式(物理目錄)
會出現訪問被拒絕的情況,因爲Xcache的管理默認是要身份認證的.
Step5:編輯Xcache的主配置文件,添加管理賬號.
賬號:admin 密碼:admin(MD5加密後)
vim /etc/php5.d/xcache.ini
service nginx rastart
service php-fpm rastart
Step5:測試Xcache的Web管理.
好了,到現在我們的LNMP環境就算搭建完成了.
不算很複雜,有興趣的博友可以自己試下,有問題大家討論一下!!!!!