Lnmp之×××

Lnmp之×××

環境說明

Lnmp就是linux +nginx+mysql+php的簡稱,操作系統用linuxweb服務器nginx,數據庫服務器是mysql,網頁語言是php。有時也叫lnfmp,就是linux +nginx+mysql+fastcgi+phpFastcgi nginx連接php的接口工具,Fast CGI  web服務器與你的或其它機器上的程序進行交談的一種工具,其程序須運行在網絡服務器,比如nginx服務器。它的運行服務程序是php-fpmPHP-fpm 是 一個 PHP FastCGI 進程管理器Php-fpm可以和任何支持遠端fastCGIweb server工作。

Nginx 是一款輕量級的Web 服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服務器其特點是佔有內存少,併發能力強Nginx 是採用epool機制來作爲工作模式,也就是事件查看機制。Apache服務器是靠進程來處理用戶的請求,派生多個進程,每個進程理論上最多每秒可以接受1024個併發連接請求,並且要爲每個進程開闢內存空間,apache服務器處理請求的速度慢,並且佔用大量的內存空間和cpuNginx 是靠線程處理用戶的請求,一個進程可以派生出N個線程,這N個線程佔用一個內存空間,來處理用戶的請求,nginx理論上每秒可以處理的併發連接請求是65535個,所以nginx是佔有內存少,併發能力強,處理數度快,可以做反向代理服務器,用戶把請求發給nginxnginx再把請求轉發給外面的多臺web服務器,這樣可以實現web服務器可以接受大量的請求。也可以作爲負載均衡服務器對外面的web服務器進行服務。

環境搭建

Mysql 服務器:採用二進制版本是mysql-5.5.15-linux2.6-i686.tar.gz

Php :採用源碼版本是php-5.3.7.tar.bz2

Linux系統:rhel 5.4

Nginx服務器:nginx-1.0.11.tar.gz

Libeventlibevent-2.0.16-stable.tar.gz

Libeventnginx採用的事件觸發機制所需要的庫,通知nginx某一個線程已經處理好用戶的請求,需要對用戶進行反饋。

 

拓撲圖:

 

安裝過程

一:

安裝二進制的mysql數據庫源碼是mysql-5.5.15-linux2.6-i686.tar.gz

先解壓到/usr/local/

進入到目錄中查看解壓形成的目錄以及文件

打開INSTALL-BINARY文件,這個文件裏包含二進制安裝的基本過程

 

創建系統賬號和組mysql,把賬號加入到組mysql裏面

mysql的源目錄創建符號鏈接爲mysql

修改mysql的當前目錄下的所有者和所屬組

執行scripts/mysql_install_db 這個腳本來安裝數據庫和表

然後把當前目錄下的所有者改爲管理員身份root

但是mysql服務的運行者mysqldata目錄要有操作的權限,所以data目錄的所有者還是mysql

拷貝mysql的配置文件的樣例文件成mysql的配置文件名稱是my.cnf

運行/bin/mysqld_safe 這個程序可以保護mysql的數據,這個是可選項

拷貝mysql的服務控制腳本在/support-files/mysql.server  /etc/init.d/目錄下名稱是mysqld

 

打開系統環境變量配置文件添加/usr/local/mysql/bin這個路徑時bin目錄下的可執行的二進制文件或程序在任何路徑下都可以運行

切換到lib目錄下面,有庫文件,要想讓系統調用庫文件,需要庫文件加載到緩存文件裏面緩存文件是ld.so.cache,在/etc/ld.so.conf.d目錄下面創建一個任意以.conf格式結尾的文件比如說mysql.conf,內容指明庫文件所在的目錄。

/etc/man.conf 文件裏添加mysql 的手冊 ,手冊路徑是/usr/local/mysql/man

給頭文件include 做符號鏈接,連接到/usr/include/mysql

添加mysql服務腳本mysqld chkconfigchkconfig主要用來更新(啓動或停止)和查詢系統服務在某種運行級別下的狀態信息。

 

二:

安裝Libevent源碼

Libeventnginx採用的事件觸發機制所需要的庫,通知nginx某一個線程已經處理好用戶的請求,需要對用戶進行反饋。

 libevent的官網   libevent.org 最新版本是2.0.18

先解壓到/usr/local/src/目錄下

然後直接執行./configure  --prefix=/usr/local/ 指明安裝路徑

 

Make  

Make install

切換到/usr/local/lib目錄下會形成很多鏈接的動態庫

因爲這直接安裝到/usr/local/目錄下可執行的二進制文件或程序在/usr/local/bin/usr/local/sbin目錄下

系統環境變量有這兩個路徑,所以不需要添加路徑

/usr/local/bin/目錄下形成一個可執行的程序event_rpcgen.py

Ldconfig 刷新緩存文件把libevent的動態庫加載到緩存文件中

切換到/usr/local/include目錄下形成很多頭文件給include文件做符號鏈接

 

三:

安裝nginx服務器源碼是nginx-1.0.11.tar.gz

在安裝nginx服務器時首先要安裝pcre pcre是一個正則表達式的函數庫,多應用於開源軟件之中,比如說web服務器和php

掛載光盤安裝pcrerpm包,安裝好之後,安裝nginx的源代碼

先解壓到/Usr/local/src目錄下

創建系統用戶和組

    groupadd  -r  nginx

    useradd -r -g nginx -s /bin/false  -M 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 \   nginx進程id 的文件所在的目錄

  --lock-path=/var/lock/nginx.lock \     nginx的鎖文件

  --user=nginx \                         指明服務的運行者

 --group=nginx \                          指明服務的運行組

 

  --with-http_ssl_module \                支持ssl協議,安裝時動態加載ssl模塊

  --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/ \     nginx做代理時 的臨時目錄

  --http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ \   fastcgi 工作的臨時目錄

  --with-pcre                                      支持pcre

 

Make 

 make install

安裝好之後會形成兩個目錄html sbinhtmlnginx的站點主目錄,sbin目錄是nginx的服務程序nginx所在的目錄

所以把/usr/local/ngnix/sbin這個目錄加入到系統環境變量中,讓nginx這個服務程序nginx在任何路徑下都可以執行。

手工編輯nginx的控制腳本

添加nginx服務腳本nginx chkconfigchkconfig主要用來更新(啓動或停止)和查詢系統服務在某種運行級別下的狀態信息。

 

四:

:安裝好之後下面是php-5.3.7.tar.bz2源碼的安裝

Nginx 服務器與php的連接是通過fastCGI,Fast CGI  HTTP服務器與你的或其它機器上的程序進行交談的一種工具,其程序須運行在網絡服務器,比如apache服務器。它的運行服務程序是php-fpmPHP-fpm 是 一個 PHP FastCGI 進程管理器Php-fpm可以和任何支持遠端fastCGIweb server工作。

步驟跟nginx服務器差不多,先解壓到/usr/local/src目錄下 ,進入到目錄裏

1: 先解壓到/usr/local/src,然後執行./configure  

./configure    \

      --prefix=/usr/local/php \     指明php的安裝目錄

       --enable-fpm   \               php支持fastcgi

       --enable-sockets  \           指明fpm爲服務程序

       --with-mysql=/usr/local/mysql \    指明mysql的安裝目錄

        --with-mysqli=/usr/local/mysql/bin/mysql_config  \  指明mysql_config 接口程序的路徑

        --enable-mbstring  \  支持多字符串

        --enable-xml  \       支持xml格式

        --with-png-dir \      支持png格式的圖片

        --with-png  \

        --with-jpeg-dir  \     支持jpeg格式的圖片

        --with-zlib  \              支持解壓縮

         --with-freetype-dir \

        --with-config-file-path=/etc/php \       php的初始化文件所在的目錄

         --with-config-file-scan-dir=/etc/php5.d php  php額外安裝的文件所在的目錄

Make  

Make install

安裝好之後php目錄下會形成一些目錄bin sbin lib 等目錄

所以把/usr/local/php/sbin  /usr/local/hph/bin這兩個目錄加入到系統環境變量中,讓bin sbin目錄下的二進制文件或程序在任何路徑下都可以執行。

打開/etc/profile系統變量文件添加路徑 然後執行./etc/profile 文件

/etc/man.conf 文件裏添加php 的手冊 ,手冊路徑是/usr/local/php/man

切換到lib目錄下面,沒有庫模塊,所以不需要把lib加載到緩存文件

添加fpm服務腳本php-fpm chkconfigchkconfig主要用來更新(啓動或停止)和查詢系統服務在某種運行級別下的狀態信息。

 

 

 2php.ini 文件  

       進入源碼目錄/usr/local/src/php-5.3.7

       cp php.ini-production  /etc/php/php.ini

 3 php-fpm的控制腳本

     cp sapi/fpm/init.d.php-fpm  /etc/init.d/php-fpm

     改變權限

     chmod  a+x /etc/init.d/php-fpm 

 4產生php-fpm的配置文件

    進入php的安裝目錄usr/local/php/etc目錄下

    cp php-fpm.conf.default php-fpm.conf     

5: 啓動php-fpm

service  php-fpm  start

 

五:測試nginxphp之間的連接

在這個目錄下面創建index.php頁面

 

 

 

 

測試phpmysql數據庫的連接,只需要在index.php頁面中加入連接數據庫的連接函數,查看函數的返回信息,就可以確定是否連接成功。

重啓mysql服務

關閉mysql服務,出現警告信息,並輸出failed

到這裏說明我們的lnmp 環境應經徹底的搭建完成。

 

 

 

 

 

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