zoukankan      html  css  js  c++  java
  • 部署LNMP架构及其应用

    部署企业LNMP架构

    (一)首先安装nginx服务,具体请见另一篇关于nginx的博文

    (二)安装MySQL数据库

    1、安装前准备
    [root@localhost ~]# rpm -e mysql-server --nodeps      #卸载系统自带的rpm方式安装的mysql服务
    [root@localhost ~]# rpm -e mysql --nodeps             #卸载系统自带的rpm方式安装的mysql客户端
    [root@localhost ~]# rpm -ivh ncurses-devel            #安装光盘自带的基础包
    [root@localhost ~]# useradd -M -s /sbin/nologin mysql
    2、安装cmake软件,代替./configure配置mysql程序
    [root@localhost ~]# tar -zxvf cmake-2.8.6.tar.gz -C /usr/src/
    [root@localhost ~]# cd /usr/src/cmake-2.8.6/
    [root@localhost cmake-2.8.6]# ./configure && gmake && gmake install
    3、安装mysql软件
    [root@localhost ~]# tar -zxvf mysql-5.5.22.tar.gz -C /usr/src/
    [root@localhost ~]# cd /usr/src/mysql-5.5.22/
    [root@localhost mysql-5.5.22]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DSYSCONFDIR=/etc -
    DWITH_EXTRA_CHARSETS=all
    [root@localhost mysql-5.5.22]# make && make install
    4、安装后调整
    [root@localhost ~]# chown -R mysql:mysql /usr/local/mysql         
    [root@localhost ~]# cp /usr/src/mysql-5.5.22/support-files/my-medium.cnf /etc/my.cnf     #创建配置文件
    [root@localhost ~]# /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/#初始化数据库
    [root@localhost ~]# ln -s /usr/local/mysql/bin/* /usr/local/bin/                         #设置环境变量    
    
    [root@localhost ~]# cp /usr/src/mysql-5.5.22/support-files/mysql.server /etc/init.d/mysqld   #添加系统服务
    [root@localhost ~]# chmod +x /etc/init.d/mysqld
    [root@localhost ~]# service mysqld restart
    [root@localhost ~]# chkconfig --add mysqld
    [root@localhost ~]# chkconfig mysqld on
    [root@localhost ~]# netstat -anpt | grep mysqld           #mysql的端口默认为3306
    5、验证登陆
    [root@localhost ~]# mysqladmin -u root -p password "123.com";history -c         #设置mysql登陆密码后面接;history -c是为了安全起见清除命令历史记录
    [root@localhost ~]# mysql -u root -p123.com        #登陆mysql,"-p+密码"的方式不建议用,直接mysql -u root -p进入交互即可; 退出的话 quit或者ctrl+D
                                                

     (三)PHP解析环境的安装

      配置网页动静分离,解析PHP,有两种方法可以选择:1、使用PHP的FPM模块 2、将访问PHP页面的Web请求转交给Apache服务器去处理,今天我们介绍第一种。

      FPM模块(FastCGI Process Manager,FastCGI进程管理器)模块,用来对PHP解析实例进行管理、优化解析效率。FastCGI将Http Server和动态脚本语言分离开,Nginx专门处理静态请求,转发动态请求,比如转给Tomcat或者Apache等,单台LNMP架构服务器转发动态请求通常使用FPM方式来解析PHP

    1、安装PHP

     1 ~]# rpm -e php php-cli php-ldap php-common php-mysql --nodeps #将RPM方式安装的php及相关依赖包(如果已存在)卸载
     2 ~]# yum -y install gd libxml2-devel libjpeg-devel libpng-devel zlib-devel
     3 
     4 ~]# tar -zxvf libmcrypt-2.5.8.tar.gz -C /usr/src/ #安装数据加密工具
     5 ~]# cd /usr/src/libmcrypt-2.5.8/
     6 ~]# ./configure && make && make install
     7 ~]# ln -s /usr/local/lib/libmcrypt.* /usr/lib/
     8 
     9 ~]# tar -zxvf mhash-0.9.9.9.tar.gz -C /usr/src/ #安装数据加密工具,依赖libmcrypt
    10 ~]# cd /usr/src/mhash-0.9.9.9/
    11 ~]# ./configure && make && make install
    12 ~]# ln -s /usr/local/lib/libmhash* /usr/lib/
    13 
    14 ~]# tar -zxvf mcrypt-2.6.8.tar.gz -C /usr/src/ #安装数据加密工具,依赖libmhash
    15 ~]# cd /usr/src/mcrypt-2.6.8/
    16 ~]# ./configure && make && make install
    17 ~]# export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH #如果./configure报错,执行此命令
    18 
    19 ~]# tar -zxvf php-5.3.28.tar.gz -C /usr/src/
    20 ~]# cd /usr/src/php-5.3.28/
    21 ~]# ./configure --prefix=/usr/local/php --with-mcrypt --with-apxs2=/usr/local/httpd/bin/apxs --with-mysql=/usr/local/mysql --with-config-file-path=/usr/local/php --enable-mbstring
    22 
    23 ~]#./configure --prefix=/usr/local/php --with-gd --with-zlib --with-
    24 mysql=/usr/local/mysql/ --with-config-file-path=/usr/local/php --enable-mbstring --enable-fpm 
    25 --with-jpeg-dir=/usr/lib --with-mcrypt
    26 ~]# make && make install
    27 #----------------------------------------------------------------
    28 --with-mcrypt: 加载数据加密等扩展工具支持
    29 --with-mysql: 设置Mysql数据库服务程序的安装位置
    30 --with-config-file-path: 设置PHP的配置文件php.ini将要存放的位置
    31 --enable-mbstring: 启用多字节字符串功能,以便支持中文等代码
    32 #----------------------------------------------------------------

    2、配置PHP

     1 ~]#cp /usr/src/php-5.3.28/php.ini-development /usr/local/php/php.ini # php.ini-development开发板样例,用于学习测试php.ini-production生产版,用于实际运营
     2 ~]#vim /usr/local/php/php.ini
     3 修改:
     4 default_charset = "utf-8”            #需修改 //设置默认字符集
     5 file_uploads = On //允许通过PHP网页上传文件
     6 upload_max_filesize = 2M //允许上传的文件大小限制
     7 max_file_uploads = 20 //每个HTTP最多允许请求上传的文件数
     8 post_max_size = 8M //每次通过表单post提交的数据量限制
     9 short_open_tag = On                  #需修改 //允许识别PHP短语法标记,即<?…?>
    10 ~]#ln -s /usr/local/php/bin/* /usr/local/bin/
    11 ~]#ln -s /usr/local/php/sbin/* /usr/local/sbin/

    3、添加优化模块ZendGuardLoader
      ZendGuardLoader适用于PHP 5.3版本,若使用 PHP 5.2版本,应改为较早的ZendOptimizer.

    1 ~]#tar -zxvf ZendGuardLoader-php-5.3-linux-glibc23-x86_64.tar.gz -C /usr/src/
    2 ~]#cp /usr/src/ZendGuardLoader-php-5.3-linux-glibc23-x86_64/php-5.3.x/ZendGuardLoader.so /usr/local/php/lib/php/
    3 ~]#vim /usr/local/php/php.ini
    4 添加:
    5 zend_extension=/usr/local/php/lib/php/ZendGuardLoader.so
    6 zend_loader.enable=1

    4、启用php-fpm进程

     1 ~]#useradd -M -s /sbin/nologin php
     2 ~]#cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
     3 ~]#vim php-fpm.conf
     4 修改
     5 pid = run/php-fpm.pid    #确认pid文件位置
     6 user = php
     7 group = php
     8 pm.max_children = 50     #最多空闲进程数
     9 pm.start_servers = 20    #启动时开启的进程数
    10 pm.min_spare_servers = 5 #最少空闲进程数
    11 pm.max_spare_servers = 35
    12 ~]#/usr/local/sbin/php-fpm
    13 ~]#netstat -anpt | grep php-fpm   #默认9000端口
    14 ~]#cp /usr/src/php-5.3.28/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm #这里和apache不同,apache调用php模块不需要php手动开启,但是LNMP架构需要开启php-fpm模块,也可以把开启此模块写在nginx脚本里,因此,一旦启动或关闭Nginx服务,php-fpm程序也会随之启动或关闭,不需要额外再启动或关闭php-fpm,具体方法请见文章末尾
    15 ~]#chmod +x /etc/init.d/php-fpm
    16 ~]#service php-fpm stop
    17 ~]#service php-fpm start
    18 ~]#chkconfig --add php-fpm
    19 ~]#chkconfig php-fpm on

    (五)配置Nginx支持PHP解析
      无论是将PHP页面交给LAMP服务器去解析,还是调用本机的php-fpm进行解析,都需要在"server {}"配置段中添加location 设置,以便指定当访问.php网页时候采取何种操作,配置完毕后别忘了重启Nginx

      第一种方法:转交给其他Web服务器处理
      使用的配置语句如下,例如,交给IP地址为 192.168.4.253的LAMP服务器处理,从而实现由Nginx负责静态页面,LAMP负责动态页面的动静分离效果。

    ~]#vim /usr/local/nginx/conf/nginx.conf
    修改:
    server {
    ……
    location ~ .php$ {                 #访问.php页面的配置段 
    proxy_pass http://192.168.4.253:80; #Apache服务器的监听地址
             }
    }

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

    server {
    ……
    location ~ .php$ {
    root html;
    fastcgi_pass 127.0.0.1:9000; #修改,这是php-fpm的监听地址
    fastcgi_index index.php; #PHP首页文件
    include fastcgi.conf; #修改包括fastcgi.conf样本配置
             }
    }

    (六)PHP页面访问测试,请参考LAMP架构

    (七)把php-fpm服务控制写入nginx控制脚本的方法

    分别在start和stop下进入相应语句即可,首先定义php-fpm的主程序文件和pid的路径

    PROG_FPM="/usr/local/sbin/php-fpm"
    PIDF_FPM="/usr/local/php5/var/run/php-fpm.pid"

    然后调用两个变量

    start)
    $PROG_FPM
    stop)
    kill -s QUIT $(cat $PIDF_FPM)
  • 相关阅读:
    Ajax跨域解决实例
    关于tween.js测试介绍
    signal() 和 sigaction()
    信号概述
    监控文件事件
    栈和栈帧
    进程结构和内存布局
    关于文件I/o的原子操作
    查询Linux系统中glibc的版本
    IOPS和Throughput
  • 原文地址:https://www.cnblogs.com/mangood/p/6043050.html
Copyright © 2011-2022 走看看