• httpd结合php的fpm模式


    httpd2.4版本的编译安装,不再赘述,查看上一篇:http://www.cnblogs.com/jsonhc/p/7134053.html

    从官网下载php源码包:php-5.6.30.tar.bz2

    1、安装必要的依赖包

    yum install -y libxml2 libxml2-devel bzip2-devel libjpeg-devel  libpng-devel freetype-devel
    安装:libmcrypt
    tar xf libmcrypt-2.5.7.tar.gz
    cd libmcrypt-2.5.7
    ./configure
    make && make install
    2、解压缩并编译执行
    tar xf php-5.6.30.tar.bz2
    cd php-5.6.30
    ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-openssl --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-mcrypt --with-zlib --with-libxml-dir=/usr --enable-xml --enable-sockets  --enable-fpm --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2 --with-gd
    make && make install
    3、添加配置文件,启动脚本
    #cp php.ini-production /etc/php.ini
    #cp sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm
    #chmod +x /etc/rc.d/init.d/php-fpm
    #chkconfig --add php-fpm
    #chkconfig --list php-fpm
    为php-fpm提供配置文件:
    #cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
    并修改其中几个值:
    pm.max_children = 50
    pm.start_servers = 5
    pm.min_spare_servers = 2
    pm.max_spare_servers = 8

    [root@wadeson php-5.6.30]# service php-fpm start
    Starting php-fpm done

    [root@wadeson ~]# netstat -tunlp
    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
    tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 5104/sshd
    tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 27281/php-fpm

    4、修改httpd配置文件以支持php

    ######load modules####             启用这两个模块
    LoadModule proxy_module modules/mod_proxy.so
    LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so

    ######添加php:

    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps

    ####修改DirectoryIndex:

    DirectoryIndex index.html index.php

    ####然后在虚拟主机中配置用fcgi来处理php文件

    ######config fpm####
    ProxyRequests Off
    ProxyPassMatch ^/(.*.php)$ fcgi://127.0.0.1:9000/usr/local/apache2.4/www/$1

    ProxyPassMatch ^/(.*.php)$ fcgi://IP:9000/PATH/TO/DOCUMENT_ROOT/$1   #把以.php结尾的文件请求发送到php-fpm进程,php-fpm至少需要知道运行的目录和URI。注意:这里的 DOCUMENT_ROOT 只是php文件的存放路径,可以不是httpd的站点根目录。实际环境中,php-fpm与httpd多位于不同的主机上,动态资源部署在php-fpm服务器上。
     
    由于httpd编译安装的目录在/usr/local/apache2.4下面,默认的网站根目录为htdocs
    现在检验是否成功:

    [root@wadeson apache2.4]# cd htdocs/
    [root@wadeson htdocs]# ll
    total 4
    -rw-r--r--. 1 root root 10 Jul 11 14:35 index.html
    [root@wadeson htdocs]# cat index.html
    test page

    访问截图:

    刚刚在配置文件配置的是动态目录为:ProxyPassMatch ^/(.*.php)$ fcgi://127.0.0.1:9000/usr/local/apache2.4/www/$1

    [root@wadeson apache2.4]# cd www/
    [root@wadeson www]# ll
    total 4
    -rw-r--r--. 1 root root 154 Jul 11 14:34 index.php
    [root@wadeson www]# cat index.php
    <?php
    $conn=mysql_connect('127.0.0.1','root','redhat');
    if ($conn)
    echo "successful";
    else
    echo "failure";
    mysql_close();
    phpinfo();
    ?>

    然后访问截图:

    所以静态存放的网站文件与动态存放的php文件没有直接的联系,可以随便安放,当然放在一起也是可以的

    添加xcache加速:

    #tar xf xcache-3.2.0.tar.gz

    #cd xcache-3.2.0

    #/usr/local/php/bin/phpize

    #./configure --enable-xcache --with-php-config=/usr/local/php/bin/php-config

    #make && make install

    #mkdir /etc/php.d

    #cp xcache.ini /etc/php.d/

    #vim /etc/php.d/xcache.ini

    extension = /usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/xcache.so

    然后访问查看:(重载一下服务)

  • 相关阅读:
    AutoCAD 2012安装错误,与.net framework (1603错误)以及ms2005vc++的问题。
    [转载]Thrift的C#入门Demo_图文详解版
    ASPX的Timer位置没放正确,导致整页刷新,而不是UpdatePanel里的内容刷新。
    div、ul、li等无法居中问题,text-align无效 margin auto无效
    flash导入图片缩放后出现毛边、失真、锯齿、文字模糊不清晰的情况
    table居中方法之一:设置width,然后为style设置margin:auto
    ZR普转提day1
    从“四人过桥”到“N人过桥”
    Luogu P2375 [NOI2014]动物园
    Luogu P3435 [POI2006]OKR-Periods of Words
  • 原文地址:https://www.cnblogs.com/jsonhc/p/7150602.html
Copyright © 2020-2023  润新知