LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。
Linux是一类Unix计算机操作系统的统称,是目前最流行的免费操作系统。代表版本有:debian、centos、ubuntu、fedora、gentoo等。
Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。
Mysql是一个小型关系型数据库管理系统。
PHP是一种在服务器端执行的嵌入HTML文档的脚本语言。
这四种软件均为免费开源软件,组合到一起,成为一个免费、高效、扩展性强的网站服务系统。
作为 Web 服务器:apache选择使用select机制,进行轮询方式,并发连接请求最大为1024,而nginx采用epoll机制,效率比apache要高,理论上其最大的并发连接请求为65534,实际上也能达到5000的并发连接请求,体现更高的效率。
作为负载均衡服务器:Nginx既可以在内部直接支持Rails和PHP,也可以支持作为 HTTP代理服务器对外进行服务。Nginx用C编写,不论是系统资源开销还是CPU使用效率都比Perlbal要好的多。
作为邮件代理服务器:Nginx同时也是一个非常优秀的邮件代理服务器(最早开发这个产品的目的之一也是作为邮件代理服务器),Last/fm 描述了成功并且美妙的使用经验。
Nginx 安装非常的简单,配置文件非常简洁(还能够支持perl语法)。Nginx支持平滑加载新的配置,还能够在不间断服务的情况下进行软件版本的升级。
在本次LNMP环境的搭建过程中,OS使用Redhat EnterpriseLinux AS v5.4,nginx与PHP的结合采用fastcgi,nginx等待用户请求,当接收到用户请求的时候将用户请求发送给fastcgi,fastcgi与PHP进行交谈,PHP再来调用mysql中得数据,从这个工作流程看起来,应该先安装nginx或mysql,最后安装PHP,首先我先将需要安装的源码包放在了/root目录下:
libevent-2.0.16-stable.tar.gz提供nginx安装时gzip模块需要的 zlib 库
还需要安装pcre-devel提供nginx安装时rewrite模块需要的pcre 库
mysql-5.5.15-linux2.6-i686.tar.gz是一个二进制源码包
在安装之前先把这几个源码包拆解到指定的目录
tar -zxvf mysql-5.5.15-linux2.6-i686.tar.gz -C /usr/local/ /////由于这是个二进制源码包,直接拆解到安装目录下使用即可
tar -zxvf libevent-2.0.16-stable.tar.gz -C /usr/local/src/
tar -zxvf nginx-1.0.11.tar.gz-C /usr/local/src/
tar -jxvf php-5.4.13.tar.bz2-C /usr/local/src/
一、安装MySQL
二、安装nginx
首先要安装pcre-devel和libevent来提供nginx需要依赖的模块
--conf-path=<path> - 在没有给定-c选项下默认的nginx.conf的路径。如果没有指定,默认为<prefix>/conf/nginx.conf
--error-log-path=<path> - 在nginx.conf中没有指定error_log指令的情况下,默认的错误日志的路径。如果没有指定,默认为<prefix>/logs/error.log
--http-log-path=<path> - 在nginx.conf中没有指定access_log指令的情况下,默认的访问日志的路径。如果没有指定,默认为<prefix>/logs/access.log
--pid-path=<path> - 在nginx.conf中没有指定pid指令的情况下,默认的nginx.pid的路径。如果没有指定,默认为<prefix>/logs/nginx.pid。
--lock-path=<path> - nginx.lock文件的路径。
--user=<user> - 在nginx.conf中没有指定user指令的情况下,默认的nginx使用的用户。如果没有指定,默认为 nobody。
--group=<group> - 在nginx.conf中没有指定user指令的情况下,默认的nginx使用的组。如果没有指定,默认为 nobody。
--with-http_ssl_module -开启HTTP SSL模块,使NGINX可以支持HTTPS请求。
--with-http_flv_module - 启用 ngx_http_flv_module
--with-http_stub_status_module - 启用 "server status" 页
--with-http_gzip_module �C 启用 ngx_http_gzip_module. 如果启用,需要 zlib。
--http-client-body-temp-path=PATH -设置http客户端请求体临时文件路径
--http-proxy-temp-path=PATH -设置http代理临时文件路径
--http-fastcgi-temp-path=PATH -设置http fastcgi临时文件路径
--with-pcre=DIR - 指定 PCRE 库的源代码的路径。
可以使用/usr/local/nginx/sbin/nginx -c /etc/nginx/nginx.conf来启动nginx服务
三、安装PHP
--prefix=/usr/local/phpphp 安装目录
--enable-fpm 打上php-fpm 补丁后才有这个参数,cgi方式安装的启动程序
--enable-sockets 打开 sockets 支持
--with-MySQL=/usr/local/mysqlmysql 安装目录,对mysql的支持
--with-mysqli=/usr/local/mysql/bin/mysql_configmysqli 文件目录,优化支持
--enable-mbstring 多字节,字符串的支持
--with-png-dir 打开对png图片的支持
--with-jpeg-dir 打开对jpeg图片的支持
--with-zlib-dir 打开zlib库的支持
--with-freetype-dir 打开对freetype字体库的支持
--with-config-file-path=/usr/local/php/etc 指定php.ini位置
测试:
在站点根目录/usr/local/nginx/html下新建一个php页面
nginx与php-fpm能够很好的结合,接着修改刚刚创建的php页面的内容
可以看到php-fpm也能正常调用mysql
最后来设置一下这三个服务能够开机自启动