56twe 发表于 2014-9-12 08:56:32

LEMP架构及应用部署

LAMP(Linux-Apache-MySQL-PHP)网站架构是目前国际流行的Web框架,该框架包括:Linux操作系统,Apache网络服务器,MySQL数据库,Perl、PHP或者Python编程语言,所有组成产品均是开源软件,是国际上成熟的架构框架,很多流行的商业应用都是采取这个架构,和 Java/J2EE架构相比,LAMP具有Web资源丰富、轻量、快速开发等特点,与微软的.NET架构相比,LAMP具有通用、跨平台、高性能、低价格的优势,因此LAMP无论是性能、质量还是价格都是企业搭建网站的首选平台。适用环境系统支持:CentOS-5 (32bit/64bit)、CentOS-6 (32bit/64bit)等linux系统内存要求:≥256M
[*]构建LEMP网站平台

[*]以编译的方式安装nginx

(1)、使用yum安装nginx所需要支持的软件,分别是pcre-devel和zlib-devel。# yum -yinstallpcre-devel zlib-devel(2)、创建运行用户和组# useradd-M-s/sbin/nologinnginx(3)、编译安装nginx# tar zxfnginx-1.0.8.tar.gz# cd nginx-1.0.8# ./configure--prefix=/usr/local/nginx--user=nginx --group=nginx--with-http_status_modult#make &&makeinstall为了使nginx服务器运行方便,可以为主程序nginx创建链接文件。# ln -s /usr/local/nginx/sbin/nginx /usr/login/sbin附加:如有想让对nginx服务启动、关闭方便的话,建议编写下面的脚本。#vim /etc/init.d/nginx#!/bin/bash
# chkconfig: - 9920
# description:Nginx Service Control Script
PROG=“/usr/local/nginx/sbin/nginx”   
PIDF= “/usr/local/nginx/logs/nginx.pid”
case “$1” in
   start)
   $PROG
   ;;
stop)kill-sQUIT$(cat$PIDF);;restart)$0 stop$0 start;;reload)kill -sHUP $(cat$PIDF);;*)
echo “Usage: $0 {start|stop|restart|reload}”exit 1esac
exit0
# chmod+x/etc/init.d/nginx
# chkconfig--add nginx

[*]2.    安装MySQL数据库

(1)、编译安装MySQL数据库可以从官方网站www.mysql.com下载,以5.1版本为例# tar zxf mysql-5.1.55.tar.gz# cdmysql-5.1.55[root@localhostmysql-1.5.55]# ./configure --prefix=/usr/local/mysql --with-charset=utf8   --with-collation=utf8_general_ci--with-extra-charsets=gbk,gb2312
注解:
--with-charset   //默认使用的字符集编码
--with-collation//指定默认使用字符集校对规则
--with-extra-charsets//指定额外支持的其他字符集编码
Utf8_general_ci   //适用于UTF-8字符集的通用原则
# make&& makeinstall
(2)、优化调整# cpsupport-files/my-medium.cnf/etc/my.conf
# cpsupport-files/mysql.server/etc/init.d/mysqld
# chmoda+x/etc/rc.d/init.d/mysqld
# chkconfig--add mysqld
# ln-s /usr/local/mysql/sbin/* /usr/local/bin/
#ln -s/usr/local/mysql/lib/mysql/*/usr/lib/
[root@localhostmysql-1.5.55]#ln-s /usr/local/mysql/include/mysql/*/usr/include
      (3)、初始化数据库
# useradd-M-u 27-s/sbin/nologin mysql
# cd/usr/local/mysql/bin
# ./mysql_install_db--user=mysql
# chown-Rroot:mysql /usr/local/mysql
# chown-Rmysql /usr/local/mysql/var
            (4)、初始化数据库
# servicemysqldstart
# mysqladmin-uroot password “pwd@123”

[*]3.    安装PHP环境

较新版本(如5.3)的PHP已经自带FPM(FastCGI ProcessManager,FastCGI进程管理器)模块,用来对php解析实例进行管理、优化解析效率。单服务器的LEMP架构经常使用这种方式,因此在编译PHP的时候应添加“—enable-fpm”以启用此模块。以源码包php-5.3.6为例:(1)、编译安装PHP # tarzxf php-5.3.6.tar.gz#cdphp-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注解:--prefix=/usr/local/php5指定PHP安装目录–with-config-file-path=/usr/local/php/etc   指定php.ini位置
–with-mysql=/usr/local/mysql          mysql安装目录,打开对mysql的支持–with-gd                                 打开gd库的支持–enable-mbstring               多字节,字符串的支持–enable-fpm                  打上php-fpm 补丁后才有这个参数,cgi方式安装的启动程序–with-zlib-dir                              打开zlib库的支持#make&& makeintall(2)、安装后的调整# cp php.ini-development /usr/local/php5/php.ini#ln -s/usr/local/php5/bin/*/usr/local/bin/#ln -s/usr/local/php5/sbin/*/usr/local/sbin/(3)、安装ZendGuardLoader#tarzxf ZendGuardLoader-php-5.3-linux-glibc23-i386.tar.gz#cdZendGuardLoader-php-5.3-linux-glibc23-i386/php-5.3.x#cpZendGuardLoader.so/usr/local/php5/lib/php.ini            #vi /usr/local/php5/php.ini
添加内容:
zend_extension=/usr/local/php5/lib/php/ZenGuardLoader.so
zend_loader.enable=1

[*]4.    配置nginx支持PHP环境

如果让nginx能够解析PHP网页,有两种方法可以选择:一种是让nginx充当中介,将访问PHP页面的web请求交给其他LEMP去处理;另一种是通过使用PHP的FPM模块来实现。 (1)、启用php-fpm进程,以便于监听PHP解析请求。建立php-fpm.conf文件,并修改其中的PID文件、运行用户、服务数(进程数量)等相关设置,然后启动php-fpm程序即可。(默认监听本机的9000端口)#cd /usr/loca/php5/etc/# cp php-fpm.conf.defaultphp-fpm.conf# viphp-fpm.conf…….省略部分信息pid=run/php-fpm.pid      //确认pid文件位置user=nginx            //运行用户group=nginx            //运行组pm.start_servers =20   //启动时开启的进程数pm.min_spare_servers =5//最少空闲进程数pm.max_spare_servers =35//最多空闲进程数# /usr/local/sbin/php-fpm查看是否被监听,如被监听则会显示# netstat-anpt| grepphp-fpm(2)、修改nginx服务脚本,以便于在启动/停止nginx服务器时php-fpm进程也会自动启动/停止。# vi/etc/init.d/nginx……省略部分信息PROG_FPM=“/usr/local/sbin/php-fpm”PIDF_FPM=“/usr/local/php5/”case “$1”in   start)$PROG -c$CONF$PROG_FPM;;stop)kill -s         QUIT$(can$PIDF)   //根据PID杀死进程kill-s    QUIT $(cat$PIDF_FPM)    //根据PID终止pid-fpm进程;;(3)、配置nginx支持PHP解析 无论是将PHP页面交给LAMP解析,还是调用本机的php-fpm进程进行解析,都需要在“server { }”配置段中添加location设置,以便于指定当访问.php网页时采取何种操作。 #vi/usr/local/nginx/conf/nginx.confserver{……   location~ \.php${      //访问.php页面的配置段          proxy_pass   IP地址:80;//Apache服务器的监听地址      }}第二种方法(调用本机的php-fpm进程),使用的配置语句如下所示。在conf/目录下的fastcgi.conf文件中已经包含必需的设置,可通过include语句添加进来。server{
……
location ~\.php$ {       //访问php页面的配置段
          root    /var/www/benet;   //PHP网页文档根目录
          fastcgi_pass127.0.0.1:9000;//php-fpm的监听地址
          fastcgi_indexindex.php;//PHP首页文件
          include   fastcgi.conf;   //包括fastcgi.conf样本配置
}
}

[*]5.    PHP页面访问测试

#vi/var/www/benet/test.php<?php$link=mysql_connect(‘localhost’ , ‘root’, ‘pwd123’ );   //连接MySQL数据库If ($link)echo “<h1>successful</h1>”;//连接成功时的反馈消息Mysql_close( );       //关闭数据库连接?>
[*]LEMP平台部署web应用

LEMP平台与LAMP平台是非常相似的,区别主要在于所用WEB服务软件的不同,   而这与使用PHP开发的WEB应用程序并无太大关系,因此PHP应用的部署方法也是类似的,下面以“天空网络电影系统(简称SKYUC)”为例介绍在LEMP平台中的部署过程。释放并部署程序代码:
[*]1.    下载并部署程序代码

#tarjxf SKYUC_Free_For_PHP5.3.tar.bz2#mvSKYUC_Free_For_PHP5.3/wwwroot/var/www/benet/skyuc/#cd/var/www/benet/skyuc/#chown-R nginx:nginxadmincp/data/ templates/upload/
[*]2.    创建数据库

新建数据库skyucdb,授权用户runskyuc。#mysql-u root-pEnterpassword:         //验证root用户密码mysql>createdatabaseskyucdb;mysql>grantallon skyucdb.*torunskyuc@localhostidentifiedby“sky@uc123”;
[*]3.    安装web应用

#cd/var/www/benet./skync/# mv installinstall.lock#chmod600install.lock
[*]4.    访问web应用系统

访问http://www.benet.com/skyuc,可以看到“天空网络电影系统”站点首页,通过http://www.benet.com/skyuc/admincp以管理员账号登入后台进行管理。
页: [1]
查看完整版本: LEMP架构及应用部署