×××LNMP

LNMP简介:

LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构

Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。

Mysql是一个小型关系型数据库管理系统

PHP是一种在服务器端执行的嵌入HTML文档的脚本语言

这四种软件均为免费开源软件,组合到一起,成为一个免费、高效、扩展性强的网站服务系统。

Nginx是一个小巧而高效的Linux下的Web服务器软件,是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler 站点开发的,已经在一些俄罗斯的大型网站上运行多年,相当的稳定。

Nginx性能稳定、功能丰富、运维简单、处理静态文件速度快且消耗系统资源极少。

作为 Web 服务器:相比 Apache,Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率。

作为负载均衡服务器:Nginx 既可以在内部直接支持 RailsPHP,也可以支持作为 HTTP代理服务器对外进行服务。Nginx 用C编写,不论是系统资源开销还是CPU使用效率都比Perlbal要好的多。

作为邮件代理服务器:Nginx同时也是一个非常优秀的邮件代理服务器(最早开发这个产品的目的之一也是作为邮件代理服务器),Last/fm 描述了成功并且美妙的使用经验。

Nginx 安装非常的简单,配置文件非常简洁(还能够支持perl语法)。Nginx支持平滑加载新的配置,还能够在不间断服务的情况下进行软件版本的升级。

 

所需源码包:

mysql-5.5.15-linux2.6-i686.tar

nginx-1.0.11.tar

php-5.3.7.tar

libevent-2.0.16-stable.tar

 

准备工作:

建立挂载点,进行光盘挂载

[root@localhost ~]# mkdir /mnt/cdrom

[root@localhost ~]# mount /dev/cdrom /mnt/cdrom

编写yum仓库

[root@localhost ~]# vim /etc/yum.repos.d/rhel-debuginfo.repo

×××LNMP_lnmp

构建编译环境

[root@localhost Server]#yum -y install gcc openssl-devel zlib-devel pcre-devel

创建一个放置源码包的目录 /root/soft

×××LNMP_lnmp_02

 

Nginx安装步骤

[root@localhost ~]# cd soft

[root@localhost soft]# tar -zxvf nginx-1.0.11.tar.gz #解压缩nginx源码包到当前目录,会生成一个目录nginx-1.0.11

[root@localhost soft]# cd nginx-1.0.11 #进入目录nginx-1.0.11

[root@localhost soft]#useradd -s /sbin/nologin -M nginx  # 添加一个不能登录的且没有家目录 名为nginx的用户

./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/

[root@localhost nginx-1.0.11]# make && make install

[root@localhost nginx-1.0.11]#pkill -1 nginx #重启nginx

测试:用Web浏览器访问主页,出现nginx页面,nginx安装成功!

×××LNMP_lnmp_03

修改nginx配置文件

[root@localhost ~]# vim /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 only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param  REDIRECT_STATUS    200;

[root@localhost ~]# vim /etc/nginx/nginx.conf

user  nginx;----------------------------------------------------------------修改user nobody

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;
        }

  location / {
            root   html;
            index  index.php index.html index.htm;-----------------------添加index.php
        }

 

MySql安装步骤

[root@localhost ~]# cd soft

[root@localhost soft]# tar -zxvf mysql-5.5.15-linux2.6-i686.tar.gz #解压缩mysql源码包会生成一个目录mysql-5.5.15-linux2.6-i686

[root@localhost soft]# cd mysql-5.5.15-linux2.6-i686 #进入这个目录

[root@ localhost mysql-5.5.15-linux2.6-i686]# groupadd mysql #创建组mysql

[root@ localhost mysql-5.5.15-linux2.6-i686]# useradd -r -g mysql mysql #创建名为mysql的管理员并将其加入组mysql

[root@ localhost mysql-5.5.15-linux2.6-i686]# cd /usr/local

[root@ localhost local]# ln -s mysql-5.5.15-linux2.6-i686 mysql #为安装后的mysql路径建立一个链接

[root@ localhost local]# cd mysql #进入mysql目录

[root@ localhost mysql]# chown -R mysql . #修改mysql目录下的文件的所有者为mysql

[root@ localhost mysql]# chgrp -R mysql . #修改mysql目录下的文件的所属组为mysql

[root@ localhost mysql]# scripts/mysql_install_db --user=mysql #以mysql的身份初始化

[root@ localhost mysql]# chown -R root . #修改mysql目录下的文件的所有者为root

[root@ localhost mysql]# chown -R mysql data #修改data文件的所有者为mysql

[root@ localhost mysql]# cp support-files/my-medium.cnf /etc/my.cnf #拷贝生成mysql的配置脚本文件

[root@ localhost mysql]# cp support-files/mysql.server /etc/init.d/mysqld #拷贝生成mysql的启动脚本文件

[root@ localhost mysql]# service mysqld start #启动mysql

Starting MySQL.... [ OK ]

[root@ localhost mysql]# cd /etc/ld.so.conf.d

[root@ localhost ld.so.conf.d]# vim mysql.conf #指明mysql的库文件的路径

×××LNMP_lnmp_04

[root@ localhost ld.so.conf.d]# ldconfig -v|grep mysql #检测是否有库文件

/usr/local/mysql/lib:

libmysqlclient.so.18 -> libmysqlclient_r.so.18.0.0

[root@ localhost ld.so.conf.d]# cd /usr/include

[root@ localhost include]# ln -s /usr/local/mysql/include mysql #为mysql头文件建立一个标准路径链接

[root@ localhost include]# ll mysql

lrwxrwxrwx 1 root root 24 Aug 28 18:48 mysql -> /usr/local/mysql/include

 

libevent安装步骤

[root@localhost ~]# cd soft

[root@localhost soft]# tar -zxvf libevent-2.0.16-stable.tar.gz #解压缩libevent源码包,会生成一个目录libevent-2.0.16-stable

[root@localhost soft]# cd libevent-2.0.16-stable #进入这个目录

[root@localhost libevent-2.0.16-stable]#./configure && make && make install #编译并安装

 

PHP安装步骤

[root@localhost ~]# cd soft

[root@localhost soft]# tar -jxvf php-5.3.7.tar.bz2

[root@localhost soft]# cd php-5.3.7

[root@localhost php-5.3.7]# #开始编译

./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config  --with-openssl --enable-fpm  --with-libevent-dir=/usr/local --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml

[root@localhost libevent-2.0.16-stable]# make && make install #安装

[root@localhost ~]#vim /usr/local/php/etc/php-fpm.conf #修改php-fpm配置文件

将这四部分前面的注释去掉

; Note: Used when pm is set to either 'static' or 'dynamic'
; Note: This value is mandatory.
pm.max_children = 50

; The number of child processes created on startup.
; Note: Used only when pm is set to 'dynamic'
; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2
pm.start_servers = 10

; The desired minimum number of idle server processes.
; Note: Used only when pm is set to 'dynamic'
; Note: Mandatory when pm is set to 'dynamic'
pm.min_spare_servers = 5

; The desired maximum number of idle server processes.
; Note: Used only when pm is set to 'dynamic'
; Note: Mandatory when pm is set to 'dynamic'
pm.max_spare_servers = 35

[root@localhost ~]#/usr/local/php/sbin/php-fpm #启动php-fpm

[root@localhost nginx-1.0.11]#pkill -1 nginx #重启nginx

 

测试:

测试php是否正常工作

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

×××LNMP_lnmp_05

测试结果

×××LNMP_lnmp_06

测试php能否调用mysql

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

×××LNMP_lnmp_07

测试结果

×××LNMP_lnmp_08

上述测试表明LNMP搭建成功!