设为首页 收藏本站
查看: 1196|回复: 0

LEMP架构及应用部署

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-9-12 08:56:32 | 显示全部楼层 |阅读模式
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-devel和zlib-devel。
[iyunv@localhost ~]# yum -y  install  pcre-devel zlib-devel
(2)、创建运行用户和组
[iyunv@localhost ~]# useradd  -M  -s  /sbin/nologin  nginx
(3)、编译安装nginx
[iyunv@localhost ~]# tar zxf  nginx-1.0.8.tar.gz
[iyunv@localhost ~]# cd nginx-1.0.8
[iyunv@localhost nginx]# ./configure  --prefix=/usr/local/nginx  --user=nginx --group=nginx  --with-http_status_modult
[iyunv@localhost ~]#make &&  make  install
为了使nginx服务器运行方便,可以为主程序nginx创建链接文件。
[iyunv@localhost ~]# ln -s /usr/local/nginx/sbin/nginx /usr/login/sbin
附加:
如有想让对nginx服务启动、关闭方便的话,建议编写下面的脚本。
[iyunv@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
[iyunv@localhost ~]# chmod  +x  /etc/init.d/nginx
[iyunv@localhost ~]# chkconfig  --add nginx
  • 2.    安装MySQL数据库

(1)、编译安装MySQL数据库
可以从官方网站www.mysql.com下载,以5.1版本为例
[iyunv@localhost ~]# tar zxf mysql-5.1.55.tar.gz
[iyunv@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字符集的通用原则
[iyunv@localhost ~]# make  && make  install
(2)、优化调整
[iyunv@localhost mysql-1.5.55]# cp  support-files/my-medium.cnf  /etc/my.conf
[iyunv@localhost mysql-1.5.55]# cp  support-files/mysql.server  /etc/init.d/mysqld
[iyunv@localhost mysql-1.5.55]# chmod  a+x  /etc/rc.d/init.d/mysqld
[iyunv@localhost  mysql-1.5.55]# chkconfig  --add mysqld
[iyunv@localhost mysql-1.5.55]# ln  -s /usr/local/mysql/sbin/* /usr/local/bin/
[iyunv@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)、初始化数据库
[iyunv@localhost~]# useradd  -M  -u 27  -s  /sbin/nologin mysql
[iyunv@localhost~]# cd  /usr/local/mysql/bin
[iyunv@localhostbin]# ./mysql_install_db  --user=mysql
[iyunv@localhostbin]# chown  -R  root:mysql /usr/local/mysql
[iyunv@localhostbin]# chown  -R  mysql /usr/local/mysql/var
            4)、初始化数据库
[iyunv@localhost~]# service  mysqld  start
[iyunv@localhost~]# mysqladmin  -u  root password “pwd@123”
  • 3.    安装PHP环境

较新版本(如5.3)的PHP已经自带FPM(FastCGI Process  Manager,FastCGI进程管理器)模块,用来对php解析实例进行管理、优化解析效率。单服务器的LEMP架构经常使用这种方式,因此在编译PHP的时候应添加“—enable-fpm”以启用此模块。
以源码包php-5.3.6为例:
(1)、编译安装PHP
[iyunv@localhost ~]# tar  zxf php-5.3.6.tar.gz
[iyunv@localhost ~]#cd  php-5.3.6/
[iyunv@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库的支持
[iyunv@localhost php-5.3.6]#make  && make  intall
  (2)、安装后的调整
[iyunv@localhost  php5-3.6]# cp php.ini-development /usr/local/php5/php.ini
[iyunv@localhost  php5-3.6]#ln -s  /usr/local/php5/bin/*  /usr/local/bin/
[iyunv@localhost  php5-3.6]#ln -s  /usr/local/php5/sbin/*  /usr/local/sbin/
(3)、安装ZendGuardLoader
[iyunv@localhost ~]#tar  zxf ZendGuardLoader-php-5.3-linux-glibc23-i386.tar.gz
[iyunv@localhost ~]#  cd  ZendGuardLoader-php-5.3-linux-glibc23-i386/php-5.3.x
[iyunv@localhost php-5.3.x]#cp  ZendGuardLoader.so  /usr/local/php5/lib/php.ini
            [iyunv@localhost php-5.3.x]#  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端口)
[iyunv@localhost  ~]#cd /usr/loca/php5/etc/
[iyunv@localhost etc]# cp php-fpm.conf.default  php-fpm.conf
[iyunv@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  //最多空闲进程数
[iyunv@localhost etc]# /usr/local/sbin/php-fpm
查看是否被监听,如被监听则会显示
[iyunv@localhost etc]# netstat  -anpt  | grep  php-fpm
(2)、修改nginx服务脚本,以便于在启动/停止nginx服务器时php-fpm进程也会自动启动/停止。
[iyunv@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网页时采取何种操作。
[iyunv@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样本配置
  }
}
  • 5.    PHP页面访问测试

[iyunv@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.    下载并部署程序代码

[iyunv@localhost ~]#tar  jxf SKYUC_Free_For_PHP5.3.tar.bz2
[iyunv@localhost ~]#mv  SKYUC_Free_For_PHP5.3/wwwroot  /var/www/benet/skyuc/
[iyunv@localhost ~]#cd  /var/www/benet/skyuc/
[iyunv@localhost ~]#chown  -R nginx:nginx  admincp/  data/ templates/  upload/
  • 2.    创建数据库

新建数据库skyucdb,授权用户runskyuc。
[iyunv@localhost ~]#mysql  -u root  -p
Enter  password:           //验证root用户密码
mysql>create  database  skyucdb;
mysql>grant  all  on skyucdb.*  to  runskyuc@localhost  identified  by  “sky@uc123”;
  • 3.    安装web应用

[iyunv@localhost ~]#cd  /var/www/benet./skync/
[iyunv@localhost  skync]# mv install  install.lock
[iyunv@localhost ~]#chmod  600  install.lock
  • 4.    访问web应用系统

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


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-24691-1-1.html 上篇帖子: Linux下php安装Redis安装 下篇帖子: 超级web服务器yum 安装apache+源码编译tomcat+awstat+phpmadin+mysql+php+AB压力测试
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表