您的位置:首页 > 运维架构 > Linux

利用源码搭建lnmp

2012-09-02 10:54 309 查看
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目录下





解压缩文件到/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





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

根据下面步骤安装:





执行make && make install

指明库文件:













指明头文件:









Nginx配置:

















执行./configure &&make &&make install

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













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









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

装上开发组之后,再装上上述几个,就不需要在装libevent api了,她会自动装载上





执行make make install





Vim /usr/html/index.html

测试:





整合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();

?>



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux中lnmp