LNMP简介

LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。Linux是一类Unix计算机操作系统的统称,是目前最流行的免费操作系统。代表版本有:debian、centos、ubuntu、fedora、gentoo等。   Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。  Mysql是一个小型关系型数据库管理系统。   PHP是一种在服务器端执行的嵌入HTML文档的脚本语言。   这四种软件均为免费开源软件,组合到一起,成为一个免费、高效、扩展性强的网站服务系统。
      Nginx是一个小巧而高效的Linux下的Web服务器软件,是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler 站点开发的,已经在一些俄罗斯的大型网站上运行多年,相当的稳定。Nginx性能稳定、功能丰富、运维简单、处理静态文件速度快且消耗系统资源极少。作为 Web 服务器:相比 Apache,Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率。作为负载均衡服务器:Nginx 既可以在内部直接支持 Rails 和 PHP,也可以支持作为 HTTP代理服务器对外进行服务。
LNMP源码搭建
所需源码:

php-5.4.0.tarhttp://www.php.net), nginx-1.1.18.tarhttp://www.nginx.org),mysql-5.0.95.tar(http://www.mysql.com

linux版本为企业版5.4,ip地址192.168.101.22
首先编辑yum,在/etc/yum.repos.d/目录下编辑rhel-debuginfo.repo(我们使用的是本地yum):

 

建立光盘挂载点/mnt/cdrom,将光盘挂载上面mount /dev/cdrom /mnt/cdrom。
 
用yum   grouplist来查看开发环境所用的组,其中开发环境所需的有:开发库Development   Librarity 、开发工具 Development Tools、

 

 

需安装pcre-devel指令为:yum install pcre-devel
 
下面开始安装源码
 
一、 编译安装nginx-1.1.18
 
1、添加nginx系统组和用户
 groupadd -r nginx
 useradd -r -g nginx -s /bin/false -M nginx
2、编译
[root@Eleven ~]# tar -zxvf nginx-1.1.18.tar.gz -C /usr/src/
[root@Eleven ~]# cd /usr/src/nginx-1.1.18/
   ./configure \
--prefix=/usr \
--sbin-path=/usr/sbin/nginx \
 --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/ \
--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi \
--http-scgi-temp-path=/var/tmp/nginx/scgi \
--with-pcre
 说明:--prefix=/usr 软件安装目录
--sbin-path=/usr/sbin/nginx 软件的二进制文件目录
 --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 软件的锁文件nginx.lock路径
 --user=nginx    指定所属用户
 --group=nginx   指定所属组
--with-http_ssl_module 添加了ssl模块支持
--with-http_flv_module        添加了flv模块支持
--with-http_stub_status_module
--with-http_gzip_static_module 添加了静态压缩模块支持  
 --http-client-body-temp-path=/var/tmp/nginx/client/ http             客户端请求临时文件的存放路径
--http-proxy-temp-path=/var/tmp/nginx/proxy/                         代理访问的临时文件存放路径
--http-fastcgi-temp-path=/var/tmp/nginx/fcgi/                          fastcgi 临时文件存放路径
--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi    
--http-scgi-temp-path=/var/tmp/nginx/scgi
 
3、安装
make && make install
 
mkdir -pv /var/tmp/nginx/client

 

 

[root@Eleven nginx-1.1.18]# nginx

查看端口
[root@Eleven nginx-1.1.18]# netstat -tupln |grep nginx

 

测试:

 

 

二、 编译安装mysql
如果没有安装ncurses-devel首先安装解决依赖关系,指令:yum -y install ncurses-devel
 
创建MySQL用户,指令:useradd -M -s /sbin/nologin mysql
 
[root@Eleven ~]# tar -zxvf mysql-5.0.95.tar.gz -C /usr/src/
[root@Eleven ~]# cd /usr/src/mysql-5.0.95/
 
./configure \
--prefix=/usr/local/mysql \
--without-debug \     # 取消调试模式提高性能
--with-extra-charsets=utf8,gbk \  # 仅仅指定需要的默认字符集提高性能
--enable-assembler \  # 使用汇编模式提高性能
--with-mysqld-ldflags=-all-static \ # 以静态方式编译提高性能
--with-client-ldflags=-all-static \ 
--with-unix-socket-path=/tmp/mysql.sock \  # 使用unix socket提高性能
--with-ssl 
回车
然后执行:make && make install
 
安装完成后复制配置文件和启动脚本:
 
cp support-files/my-medium.cnf /etc/my.cnf # 复制配置文件
cp support-files/mysql.server /etc/init.d/mysqld  # 复制启动脚本
chmod +x /etc/init.d/mysqld # 给启动脚本执行权限
ln -s /usr/local/mysql/bin/* /usr/local/bin/ # 为可执行的二进制文件做软连接
ln -s /usr/local/mysql/lib/mysql/lib* /usr/lib/ # 为动态链接库做一个软连接
mysql_install_db --user=mysql # 用MySQL用户安装数据库
 
chown -R root.mysql /usr/local/mysql/     # 更改安装目录属主为root,属组为mysql
chown -R mysql.mysql /usr/local/mysql/var/ # 更改数据库目录属主和属组都为mysql
 
然后启动mysql

 

测试:

 

可知mysql已成功安装

 

 

三、编译安装PHP
在安装php之前首先解决依赖关系,需安装几个源码包:
(1)、libmcrypt-2.5.8.tar.bz2,下载地址:
 
[root@Eleven ~]# tar -jxvf libmcrypt-2.5.8.tar.bz2 -C /usr/src/
[root@Eleven ~]# cd /usr/src/libmcrypt-2.5.8/
[root@Eleven libmcrypt-2.5.8]# ./configure
[root@Eleven libmcrypt-2.5.8]# make && make install
 
 
(2)、mhash-0.9.9.9.tar.bz2 下载地址:
 
[root@Eleven ~]# tar -jxvf mhash-0.9.9.9.tar.bz2 -C /usr/src/
[root@Eleven ~]# cd /usr/src/mhash-0.9.9.9/
[root@Eleven mhash-0.9.9.9]# ./configure
[root@Eleven mhash-0.9.9.9]# make && make install
 
 
这两个包安装完成后要把动态链接库做一个软连接到/usr/lib,以为接下来的mcrypt依赖于这两个包
ln -s /usr/local/lib/libmcrypt* /usr/lib
ln -s /usr/local/lib/libmhash.* /usr/lib/
 
(3)、mcrypt-2.6.8.tar.gz,下载地址:
[root@Eleven ~]# tar -zxvf mcrypt-2.6.8.tar.gz -C /usr/src/
[root@Eleven ~]# cd /usr/src/mcrypt-2.6.8/
[root@Eleven mcrypt-2.6.8]# ./configure
[root@Eleven mcrypt-2.6.8]# make && make install
 
下面安装php
首先解决依赖,指令:
yum –y install libxml2-devel curl-devel libpng-devel openldap-devel
 
 
[root@Eleven ~]# tar -zxvf php-5.4.0.tar.gz -C /usr/src/
[root@Eleven ~]# cd /usr/src/php-5.4.0/
[root@Eleven php-5.4.0]#./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql/ --with-zlib --enable-xml --disable-rpath --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --with-curl --with-curlwrappers --enable-fpm --enable-fastcgi --with-mcrypt --with-gd --with-openssl --with-mhash --enable-sockets --with-ldap --with-ldap-sasl --with-xmlrpc -enable-zip --enable-soap

 

 

[root@Eleven php-5.4.0]# make && make install
 
到这里整个LNMP已经安装完成.下面我们就配置php和nginx能运行php网站:
首先为php创建配置文件,指令:
(1)cp php.ini-production /usr/local/php/php.ini   # 如果是开发就复制php.ini-development
(2)cp /usr/local/php/etc/php-fpm.conf.default
/usr/local/php/etc/php-fpm.conf
(3)ln -s /usr/local/php/bin/php /usr/bin/
 
 
然后配置php-fpm,编辑php-fpm.conf
[root@Eleven php-5.4.0]# vim /usr/local/php/etc/php-fpm.conf
修改143行:如下

 

 

启动php-fpm:
mkdir /var/run/php-fpm
/usr/local/php/sbin/php-fpm (一定要执行,否则不能成功)
[root@Eleven local]# cd /etc/nginx/
[root@Eleven nginx]# vim nginx.conf

 

 

 

增加下面几行

 

 

修改完毕后保存退出重启nginx:
[root@Eleven nginx]# pkill -1 nginx
 
然后在/usr/html/下创建index.php
[root@Eleven nginx]# vim  /usr/html/index.php
写入如下内容;

 

 

测试:用浏览器访问http://192.168.101.22/index.php

 

 

 

 

可以看到已成功连接php。
 
然后在进行测试php连接mysql,继续编辑index.php页面,内容改为:

 

 

 

测试结果为:

 

 

可以看到php与mysql以成功连接。
 
至此我们已经搭建好了LNMP环境。