利用源碼搭建lnmp

LNMP是什麼?

也許大家對LAMP比較熟悉,LAMP代表Linux下Apache、MySQL、PHP這種網站服務器架構;同上LNMP代表的就是Linux下Nginx、MySQL、PHP這種網站服務器架構。

我們爲什麼採用LNMP這種架構?

採用Linux、PHP、MySQL的優點我們不必多說。
Nginx是一個小巧而高效的Linux下的Web服務器軟件,是由 Igor Sysoev 爲俄羅斯訪問量第二的 Rambler.ru 站點開發的,已經在一些俄羅斯的大型網站上運行多年,相當的穩定。
Nginx相當的穩定、功能豐富、安裝配置簡單、低系統資源……

LNMP這種架構有什麼優勢?

作爲 Web 服務器:相比 Apache,Nginx 使用更少的資源,支持更多的併發連接,體現更高的效率。
作爲負載均衡服務器:Nginx 既可以在內部直接支持 Rails 和 PHP,也可以支持作爲 HTTP代理服務器對外進行服務。Nginx 用 C 編寫, 不論是系統資源開銷還是 CPU 使用效率都比 Perlbal 要好的多。
作爲郵件代理服務器: Nginx 同時也是一個非常優秀的郵件代理服務器(最早開發這個產品的目的之一也是作爲郵件代理服務器),Last.fm 描述了成功並且美妙的使用經驗。
Nginx 安裝非常的簡單,配置文件 非常簡潔(還能夠支持perl語法),Bugs非常少的服務器: Nginx 啓動特別容易,並且幾乎可以做到7*24不間斷運行,即使運行數個月也不需要重新啓動。你還能夠在不間斷服務的情況下進行軟件版本的升級。

 

LNMP的配置實例:

 

Mysql:

拷貝文件到/root目錄下

wps_clip_image-3878

解壓縮文件到/usr/local/目錄下

[root@dde200 mysql-5.5.15-linux2.6-i686]# tar -zxvf mysql-5.5.15-linux2.6-i686.tar.gz -C  /usr/local

Cd   /usr/local

wps_clip_image-3900

[root@dde200 mysql-5.5.15-linux2.6-i686]# less INSTALL-BINARY

根據下面步驟安裝:

wps_clip_image-3364

執行make  && make install

指明庫文件:

wps_clip_image-15266

wps_clip_image-3960

wps_clip_image-11829

指明頭文件:

wps_clip_image-6832

wps_clip_image-29912

 

 

 

 

Nginx配置:

 

image

 

wps_clip_image-5167

wps_clip_image-4482

wps_clip_image-7009

執行./configure  &&make  &&make install

[root@www libevent-2.0.16-stable]# vim /etc/ld.so.conf.d/libevent.conf

wps_clip_image-13872

wps_clip_image-17070

wps_clip_image-13280

[root@www ~]# tar -zvxf nginx-1.0.11.tar.gz -C /usr/local/src/

wps_clip_image-21500

wps_clip_image-12676

yum install gcc  openssl-devel  prce-devel(主要是支持地址重寫)  zlib-devel

裝上開發組之後,再裝上上述幾個,就不需要在裝libevent api了,她會自動裝載上

wps_clip_image-21641

執行make  make install

wps_clip_image-6418

Vim  /usr/html/index.html

測試:

wps_clip_image-24926

整合nginx和php5

1、編輯/etc/nginx/nginx.conf,啓用如下選項:
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi_params;
}

2、編輯/etc/nginx/fastcgi_params,將其內容更改爲如下內容:
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;

      安裝PHP :

這個地方是最重要的地方,因爲默認情況下Nginx和PHP他倆之間是一點關係沒有的。在之前,很多朋友都搭建過Apache+PHP,Apache+PHP編譯後生成的是模塊文件,而Nginx+PHP需要PHP生成可執行文件纔可以,所以要利用fastcgi技術來實現N ginx與PHP的整合,這個只要我們安裝時啓用FastCGI即可。此次我們安裝PHP不僅使用了FastCGI,而且還使用了PHP-FPM這麼一個東東,PHP-FPM說白了是一個管理FastCGI的一個管理器,它作爲PHP的插件存在,在安裝PHP要想使用PHP-FPM時就需要把PHP-FPM以補丁的形式安裝到PHP中,而且PHP要與PHP-FPM版本一致,這是必須的,切記!

php 5.3.3及以上的版本內置了fpm ,此處用5.3.7舉例,下載後解壓,進入解壓後目錄

[root@localhost ~]# tar -jxvf php-5.3.7.tar.bz2 -C /usr/local/src/

[root@localhost ~]# cd /usr/local/src/php-5.3.7/

[root@localhost php-5.3.7]# less INSTALL

Example #1 Installation Instructions (Apache Shared Module Version) for

PHP

1. gunzip apache_xxx.tar.gz

2. tar -xvf apache_xxx.tar

3. gunzip php-xxx.tar.gz

4. tar -xvf php-xxx.tar

5. cd apache_xxx

6. ./configure --prefix=/www --enable-module=so

7. make

8. make install

9. cd ../php-xxx

 

 

[root@localhost php-5.3.7]# ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --enable-fpm --enable-fastcgi

[root@localhost php-5.3.7]# make

[root@localhost php-5.3.7]# make install

注:Nginx+PHP整合,在安裝時必須啓用--enable-fastcgi和 --enable-fpm,這兩個選項是做什麼的上面已經描述。執行完後系統會提示--enable-fastcgi是一個未知選項,我們不必理會

再把php.ini-production複製到/usr/local/php/lib下,改名php.ini,

把/usr/local/php/etc/php-fpm.conf.default複製一份到相同目錄命名爲php-fpm.conf

[root@localhost php-5.3.7]# cp php.ini-production /usr/local/php/lib/php.ini

[root@localhost php-5.3.7]# cp /usr/local/php/etc/php-fpm.conf.default  /usr/local/php/etc/php_fpm.conf

爲php-fpm提供Sysv init腳本,並將其添加至服務列表:

[root@localhost php-5.3.7]# cp sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm

[root@localhost php-5.3.7]# chmod +x /etc/rc.d/init.d/php-fpm

[root@localhost php-5.3.7]# chkconfig --add php-fpm

[root@localhost php-5.3.7]# chkconfig php-fpm on

打開php-fpm.conf,去掉相應的分號註釋,最後如下

pid = /usr/local/php/var/run/php-fpm.pid

error_log = log/php-fpm.log

listen = 127.0.0.1:9000

user = nobody

group = nobody

pm = dynamic

pm.max_children = 50

pm.start_servers = 20

pm.min_spare_servers = 5

pm.max_spare_servers = 35

pm.max_requests = 500

[root@localhost php-5.3.7]# service php-fpm start //啓動php-fpm

測試網頁

[root@localhost ~]# vim /usr/html/index.php

<?php

phpinfo();

?>

wps_clip_image-10930

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