Linux+Nginx+MySQL+PHP

小編:這幾年隨着電子商務的蓬勃發展,也帶動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

訪問方式(物理目錄)  

http://服務器地址/htdocs

會出現訪問被拒絕的情況,因爲Xcache的管理默認是要身份認證的.

Step5:編輯Xcache的主配置文件,添加管理賬號.

賬號:admin  密碼:admin(MD5加密後)

vim  /etc/php5.d/xcache.ini

service  nginx  rastart

service  php-fpm  rastart

Step5:測試Xcache的Web管理.

好了,到現在我們的LNMP環境就算搭建完成了.

不算很複雜,有興趣的博友可以自己試下,有問題大家討論一下!!!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章