码迷,mamicode.com
首页 > 其他好文 > 详细

LEMP架构及应用部署

时间:2014-09-11 19:33:13      阅读:285      评论:0      收藏:0      [点我收藏+]

标签:程亚娟   lemp部署   lemp网站平台   lemp架构   lemp部署web应用   

LEMP架构及应用部署

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

适用环境

系统支持:CentOS-5 (32bit/64bit)、CentOS-6 (32bit/64bit)等linux系统

内存要求:≥256M

  • 构建LEMP网站平台

  • 以编译的方式安装nginx

1)、使用yum安装nginx所需要支持的软件,分别是pcre-develzlib-devel

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

2)、创建运行用户和组

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

3)、编译安装nginx

[root@localhost ~]# tar zxf  nginx-1.0.8.tar.gz

[root@localhost ~]# cd nginx-1.0.8

[root@localhost nginx]# ./configure  --prefix=/usr/local/nginx  --user=nginx --group=nginx  --with-http_status_modult

[root@localhost ~]#make &&  make  install

为了使nginx服务器运行方便,可以为主程序nginx创建链接文件。

[root@localhost ~]# ln -s /usr/local/nginx/sbin/nginx /usr/login/sbin

附加:

如有想让对nginx服务启动、关闭方便的话,建议编写下面的脚本。

[root@localhost ~]#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  -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 ~]# chmod  +x  /etc/init.d/nginx

[root@localhost ~]# chkconfig  --add nginx

  1. 2.    安装MySQL数据库

1)、编译安装MySQL数据库

可以从官方网站www.mysql.com下载,以5.1版本为例

[root@localhost ~]# tar zxf mysql-5.1.55.tar.gz

[root@localhost ~]# cd  mysql-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字符集的通用原则

[root@localhost ~]# make  && make  install

2)、优化调整

[root@localhost mysql-1.5.55]# cp  support-files/my-medium.cnf  /etc/my.conf

[root@localhost mysql-1.5.55]# cp  support-files/mysql.server  /etc/init.d/mysqld

[root@localhost mysql-1.5.55]# chmod  a+x  /etc/rc.d/init.d/mysqld

[root@localhost  mysql-1.5.55]# chkconfig  --add mysqld

[root@localhost mysql-1.5.55]# ln  -s /usr/local/mysql/sbin/* /usr/local/bin/

[root@localhost mysql-1.5.55]#  ln -s  /usr/local/mysql/lib/mysql/*  /usr/lib/

[root@localhostmysql-1.5.55]#ln  -s /usr/local/mysql/include/mysql/*  /usr/include

        3)、初始化数据库

[root@localhost~]# useradd  -M  -u 27  -s  /sbin/nologin mysql

[root@localhost~]# cd  /usr/local/mysql/bin

[root@localhostbin]# ./mysql_install_db  --user=mysql

[root@localhostbin]# chown  -R  root:mysql /usr/local/mysql

[root@localhostbin]# chown  -R  mysql /usr/local/mysql/var

            4)、初始化数据库

[root@localhost~]# service  mysqld  start

[root@localhost~]# mysqladmin  -u  root password “pwd@123”

  1. 3.    安装PHP环境

较新版本(如5.3)的PHP已经自带FPMFastCGI Process  ManagerFastCGI进程管理器)模块,用来对php解析实例进行管理、优化解析效率。单服务器的LEMP架构经常使用这种方式,因此在编译PHP的时候应添加—enable-fpm以启用此模块。

以源码包php-5.3.6为例:

1)、编译安装PHP

 [root@localhost ~]# tar  zxf 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

注解:

--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库的支持

[root@localhost php-5.3.6]#make  && make  intall

  2)、安装后的调整

[root@localhost  php5-3.6]# cp php.ini-development /usr/local/php5/php.ini

[root@localhost  php5-3.6]#ln -s  /usr/local/php5/bin/*  /usr/local/bin/

[root@localhost  php5-3.6]#ln -s  /usr/local/php5/sbin/*  /usr/local/sbin/

3)、安装ZendGuardLoader

[root@localhost ~]#tar  zxf ZendGuardLoader-php-5.3-linux-glibc23-i386.tar.gz

[root@localhost ~]#  cd  ZendGuardLoader-php-5.3-linux-glibc23-i386/php-5.3.x

[root@localhost php-5.3.x]#cp  ZendGuardLoader.so  /usr/local/php5/lib/php.ini

            [root@localhost php-5.3.x]#  vi /usr/local/php5/php.ini

添加内容:

zend_extension=/usr/local/php5/lib/php/ZenGuardLoader.so

zend_loader.enable=1

  1. 4.    配置nginx支持PHP环境

如果让nginx能够解析PHP网页,有两种方法可以选择:一种是让nginx充当中介,将访问PHP页面的web请求交给其他LEMP去处理;另一种是通过使用PHPFPM模块来实现。

   1)、启用php-fpm进程,以便于监听PHP解析请求。建立php-fpm.conf文件,并修改其中的PID文件、运行用户、服务数(进程数量)等相关设置,然后启动php-fpm程序即可。(默认监听本机的9000端口)

[root@localhost  ~]#cd /usr/loca/php5/etc/

[root@localhost etc]# cp php-fpm.conf.default  php-fpm.conf

[root@localhost etc]# vi  php-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  //最多空闲进程数

[root@localhost etc]# /usr/local/sbin/php-fpm

查看是否被监听,如被监听则会显示

[root@localhost etc]# netstat  -anpt  | grep  php-fpm

2)、修改nginx服务脚本,以便于在启动/停止nginx服务器时php-fpm进程也会自动启动/停止。

[root@localhost ~]# 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网页时采取何种操作。

 [root@localhost ~]#vi  /usr/local/nginx/conf/nginx.conf

  server  {

  ……

     location  ~ \.php$  {        //访问.php页面的配置段

          proxy_pass   IP地址:80;  //Apache服务器的监听地址

      }

}

第二种方法(调用本机的php-fpm进程),使用的配置语句如下所示。在conf/目录下的fastcgi.conf文件中已经包含必需的设置,可通过include语句添加进来。

server  {

  ……

  location ~  \.php$ {       //访问php页面的配置段

          root    /var/www/benet;   //PHP网页文档根目录

          fastcgi_pass  127.0.0.1:9000;  //php-fpm的监听地址

          fastcgi_index  index.php;  //PHP首页文件

          include   fastcgi.conf;   //包括fastcgi.conf样本配置

  }

}

  1. 5.    PHP页面访问测试

[root@localhost ~]#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. 1.    下载并部署程序代码

[root@localhost ~]#tar  jxf SKYUC_Free_For_PHP5.3.tar.bz2

[root@localhost ~]#mv  SKYUC_Free_For_PHP5.3/wwwroot  /var/www/benet/skyuc/

[root@localhost ~]#cd  /var/www/benet/skyuc/

[root@localhost ~]#chown  -R nginx:nginx  admincp/  data/ templates/  upload/

  1. 2.    创建数据库

新建数据库skyucdb,授权用户runskyuc

[root@localhost ~]#mysql  -u root  -p

Enter  password:           //验证root用户密码

mysql>create  database  skyucdb;

mysql>grant  all  on skyucdb.*  to  runskyuc@localhost  identified  by  “sky@uc123”;

  1. 3.    安装web应用

[root@localhost ~]#cd  /var/www/benet./skync/

[root@localhost  skync]# mv install  install.lock

[root@localhost ~]#chmod  600  install.lock

  1. 4.    访问web应用系统

访问http://www.benet.com/skyuc,可以看到“天空网络电影系统”站点首页,通过http://www.benet.com/skyuc/admincp以管理员账号登入后台进行管理。

 


本文出自 “程亚娟” 博客,请务必保留此出处http://812893920.blog.51cto.com/8474261/1551271

LEMP架构及应用部署

标签:程亚娟   lemp部署   lemp网站平台   lemp架构   lemp部署web应用   

原文地址:http://812893920.blog.51cto.com/8474261/1551271

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!