zoukankan      html  css  js  c++  java
  • 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

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

  • 相关阅读:
    771. Jewels and Stones
    706. Design HashMap
    811. Subdomain Visit Count
    733. Flood Fill
    117. Populating Next Right Pointers in Each Node II
    250. Count Univalue Subtrees
    94. Binary Tree Inorder Traversal
    116. Populating Next Right Pointers in Each Node
    285. Inorder Successor in BST
    292. Nim Game Java Solutin
  • 原文地址:https://www.cnblogs.com/jsonhc/p/7150602.html
Copyright © 2011-2022 走看看