CentOS6.2-x64下LEMP环境部署

一、安装Nginx

1、安装支持软件

[root@localhost ~]# yum -y install pcre-devel zlib-devel

2、创建运行用户、组

[root@localhost ~]# useradd -M -s /sbin/nologin nginx

3、编译安装 Nginx
注意:需要先安装 gcc环境:yum –y install *gcc*

[root@localhost ~]# cd /data/
[root@localhost data]# tar zxf nginx-1.0.8.tar.gz
[root@localhost data]# cd nginx-1.0.8
[root@localhost nginx-1.0.8]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module
[root@localhost nginx-1.0.8]# make          
[root@localhost nginx-1.0.8]# make install

    为了使 Nginx服务器的运行更加方便,可以为主程序nginx创建链接文件,以便管理员直接执行“nginx”命令就可以调用Nginx的主程序。

[root@localhost nginx-1.0.8]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
[root@localhost nginx-1.0.8]# ls -l /usr/local/sbin/nginx
lrwxrwxrwx 1 root root 27 05-30 17:07 /usr/local/sbin/nginx -> /usr/local/nginx/sbin/nginx

2 Nginx的运行控制
1、检查配置文件

[root@localhost nginx-1.0.8]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

2、启动、停止 nginx

[root@localhost nginx-1.0.8]# nginx

通过检查 Nginx程序的监听状态,或者在浏览器中访问此Web服务(默认页面将显示“Welcom to nginx!”),可确定Nginx服务是否正常运行。

[root@localhost nginx-1.0.8]# netstat -anpt | grep nginx
tcp         0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      6229/nginx: master
[root@localhost nginx-1.0.8]# elinks http://localhost          //使用 elinks浏览器

    主程序 Nginx支持标准的进程信号,通过kill或者killall命令发送HUP信号表示重载配置、QUIT表示退出进程、KILL信号表示杀死进程。例如:若使用killall命令,重载配置、停止服务的操作分别如下所示(通过“-s”选项指定信号种类)。

[root@localhost nginx-1.0.8]# killall -s HUP nginx              //重新加载配置文件
[root@localhost nginx-1.0.8]# killall -s QUIT nginx             //关闭进程

Nginx进程运行时,PID号默认存放在logs/目录下的nginx.pid文件中,因此若改用kill命令,也可以根据nginx.pid文件中的PID号来进行控制。
3、使用 Nginx服务脚本

[root@localhost ~]# vim /etc/init.d/nginx
#!/bin/bash
# chkconfig: - 99 20
# description: Nginx Server Control Script
PROG="/usr/local/nginx/sbin/nginx"
PIDF="/usr/local/nginx/logs/nginx.pid"
case "$1" in
        start)
                $PROG
                ;;
        stop)
                kill -s QUIT $(cat $PIDF)
                ;;
        restart)
                $0 stop
                $0 start
                ;;
        reload)
                kill -s HUP $(cat $PIDF)
                ;;
        *)
                echo "Usage: $0 {start|stop|restart|reload}"
                exit 1
esac
exit 0
 
[root@localhost ~]# chkconfig --add nginx
[root@localhost ~]# /etc/init.d/nginx restart
[root@localhost ~]# chkconfig nginx on

    这样一来,就可以通过 Nginx脚本来启动、停止、重启、重载Nginx服务器了,方法是执行时添加相应的start、stop、restart、reload参数。
3 、状态统计及虚拟主机应用
1) Nginx 的访问状态统计
Nginx内置了 HTTP_STUB_STATUS状态统计模块,用来反馈当前的Web访问情况,配置编译参数时可添加—with-http_stub_status_module来启用此模块。

[root@localhost /]# vim /usr/local/nginx/conf/nginx.conf    
http {
    …... //省略部分信息
server {
        listen       80;
        server_name localhost;
        #charset koi8-r;
        #access_log logs/host.access.log main;
        location / {
            root   html;
            index index.html index.htm;
        }
                    以下内容为自行添加
        location ~ /status {                    //访问位置为 /status
            stub_status on;                   //打开状态统计功能
            access_log off;                   //关闭此位置的日志记录
        }
    }
}
 
[root@localhost ~]# /etc/init.d/nginx restart    

     新的配置生效以后,在浏览器中访问Nginx服务器的/statux网站位置,可以看到当前的状态统计信息,其中,“Active connections”表示当前的活动连接数;而“server accepts handled requests”表示已经处理的连接信息,三个数字依次表示已处理的连接数、成功的TCP握手次数、已处理的请求数。

2) 基于域名的虚拟Web主机
1)准备网站目录及测试文件。

[root@localhost /]# mkdir -p /var/www/baidu
[root@localhost /]# echo "www.aaa.com" > /var/www/aaa/index.html
[root@localhost /]# mkdir -p /var/www/bbb
[root@localhost /]# echo "www.bbb.com" > /var/www/bbb/index.html

 
2)调整 nginx.conf配置文件。

    ... //省略部分信息
http {
    …... //省略部分信息
    server {
        listen       80;
        server_name www.aaa.com;
        charset utf-8;
        access_log logs/aaa.com.access.log main;
        location / {
            root   /var/www/bbb;
            index index.html index.htm;
        }
    }
    server {
        listen       80;
        server_name www.bbb.com;
        charset utf-8;
        access_log logs/bbb.com.access.log main;
        location / {
            root   /var/www/bbb;
             index index.html index.htm;
        }
    }
}

    3)访问虚拟 Web主机。(需要事先做好DNS解析或者修改hosts文件)
    在浏览器中分别访问两个站点: www.aaa.comwww.bbb.com,若能看到各自的测试首页内容,就表示虚拟 Web主机的配置成功。
二、安装 mysql 数据库
1)编译安装

[root@localhost ~]# yum -y install ncurses-devel              //首先安装依赖包
[root@localhost ~]# tar -zxf mysql-5.1.55.tar.gz
[root@localhost ~]# cd mysql-5.1.55
[root@localhost mysql-5.1.55]#  ./configure --prefix=/usr/local/mysql --with-charset=utf8 --with-clollation=utf8_general_ci --with-extra-charsets=gbk,gb2312
[root@localhost mysql-5.1.55]# make && make install

2)优化调整

[root@localhost mysql-5.1.55]# cp support-files/my-medium.cnf /etc/my.cnf 
[root@localhost mysql-5.1.55]# cp support-files/mysql.server /etc/init.d/mysqld
[root@localhost mysql-5.1.55]# chmod a+x /etc/rc.d/init.d/mysqld
[root@localhost mysql-5.1.55]# chkconfig --add mysqld
[root@localhost mysql-5.1.55]# ln -s /usr/local/mysql/bin/* /usr/local/bin/
[root@localhost mysql-5.1.55]# ln -s /usr/local/mysql/lib/mysql/* /usr/lib/
[root@localhost mysql-5.1.55]# ln -s /usr/local/mysql/include/mysql/* /usr/include/

3)初始化数据库

[root@localhost mysql-5.1.55]# useradd -M -u 27 -s /sbin/nologin mysql
[root@localhost mysql-5.1.55]#  cd /usr/local/mysql/bin/
[root@localhost bin]# ./mysql_install_db --user=mysql
[root@localhost bin]#  chown -R root:mysql /usr/local/mysql/
[root@localhost bin]# chown -R mysql /usr/local/mysql/var/

4)启动并登陆mysql数据库

[root@localhost bin]# service mysqld start 
[root@localhost bin]# mysqladmin  -u root password 'pwd123'
[root@localhost bin]# mysql -u root -p

三、安装 PHP 解析环境
首先安装依赖包并解决依赖关系:
[root@localhost ~]# yum install libxml2-devel libpng-devel libpng gd gd-devel
[root@localhost ~]# ln –s /usr/lib64/* /usr/lib
(1)编译安装PHP

[root@localhost ~]# tar -xzf php-5.3.6.tar.gz
[root@localhost ~]# cd php-5.3.6/
[root@localhost php-5.3.6]#./configure --prefix=/usr/local/php5 --with-gd --with-zlib --with-mysql=/usr/local/mysql/ --with-config-file-path=/usr/local/php5 --enable-mbstring --enable-fpm
[root@localhost php-5.3.6]# make
[root@localhost php-5.3.6]# make install

(2)安装后调整

[root@localhost php-5.3.6]# cp php.ini-development /usr/local/php5/php.ini
[root@localhost php-5.3.6]# ln -s /usr/local/php5/bin/* /usr/local/bin/
[root@localhost php-5.3.6]# ln -s /usr/local/php5/sbin/* /usr/local/sbin/

(3)安装ZendGuardLoader

[root@localhost ~]# tar -xzf ZendGuardLoader-php-5.3-linux-glibc23-x86_64.tar.gz
[root@localhost ~]# cd ZendGuardLoader-php-5.3-linux-glibc23-x86_64
[root@localhost ~]# cp ZendGuardLoader.so /usr/local/php5/lib/php/
[root@localhost ~]# vim /usr/local/php5/php.ini
…… //省略部分信息                                 //在文件中添加
zend_extension=/usr/local/php5/lib/php/ZendGuardLoader.so
zend_loader.enable=1

(4) 配置Nginx支持PHP环境
启用php-fpm进程(默认监听9000端口)

[root@localhost ~]# cd /usr/local/php5/etc
[root@localhost ~]# cp php-fpm.conf.default php.fpm.conf
[root@localhost ~]# vim php-fpm.conf
…… //省略部分信息
25 pid = run/php-fpm.pid                 //确认pid文件位置
122 user = nginx                         //运行用户
123 group = nginx                        //运行组
157 pm.start_servers = 20                 //启动时开启的进程数
162 pm.min_spare_servers = 5             //最小空闲进程数
167 pm.max_spare_servers = 35            //最多空闲进程数
[root@localhost etc]# /usr/local/sbin/php.fpm
[root@localhost etc]# netstat –anpt | grep php-fpm
tcp     0   0   127.0.0.1:9000   0.0.0.0:*    LISTEN      4448/php-fpm.conf)

(5)修改 Nginx服务脚本,以便在启动/停止Nginx服务器时将php-fpm进程也自动启动/停止。

[root@localhost /]# vim /etc/init.d/nginx
#!/bin/bash
# chkconfig: - 99 20
# description: Nginx Server Control Script
PROG="/usr/local/nginx/sbin/nginx"
PIDF="/usr/local/nginx/logs/nginx.pid"
PROG_FPM="/usr/local/sbin/php-fpm"
PIDF_FPM="/usr/local/php5/var/run/php-fpm.pid"
case "$1" in
        start)
                $PROG
                $PROG_FPM
                ;;
        stop)
                kill -s QUIT $(cat $PIDF)          //根据 PID终止Nginx进程
                kill -s QUIT $(cat $PIDF_FPM)    //根据 PID终止php-fpm进程
                ;;
        restart)
                $0 stop
                $0 start
                ;;
        reload)
                kill -s HUP $(cat $PIDF)
                ;;
        *)
                echo "Usage: $0 {start|stop|restart|reload}"
                exit 1
esac
exit 0
 

    因此,一旦启动或关闭 nginx服务,php-fpm程序也会随之启动或关闭,不需要额外再启动或关闭php-fpm。
(6) 配置 Nginx支持PHP解析。
conf/目录下的fastcgi.conf文件中已经包含必需的宏设置,可通过include语句添加进来。

    server {
        listen       80;
        server_name www.benet.com;
        charset utf-8;
        access_log logs/benet.com.access.log main;
        location / {
            root   /var/www/benet;
            index index.html index.htm;
        }
        添加以下内容
        location ~ \.php$ {                         //访问 .php页面的配置段
            root           /var/www/dong;        //PHP网页文档根目录
            fastcgi_pass   127.0.0.1:9000;          //php-fpm的监听地址
            fastcgi_index index.php;              //PHP首页文件
            include        fastcgi.conf;           //包括 fastcgi.conf样本配置
        }
    }

(7) PHP页面访问测试

 [root@localhost benet]# vim /var/www/benet/test.php       //手动添加
<?php                                     
phpinfo;
?>

    然后访问测试网页,如 http://www.dong.com/test.php,若能看到成功连接的提示信息,则表示 PHP解析及数据库连接均正常。
四、在 LEMP平台中部署Web应用
 

本文出自 “七越” 博客,转载请与作者联系!

你可能感兴趣的:(centos)