apache:2.4.4

php:5.4.13

mysql:5.6.10(rpm,通用二进制格式,源码包)


apr--->apr-util---->httpd---->mysql---->php---->xcache


httpd:

 apr:apache portable runtime

 apr-util:工具套件

yum install pcre-devel


 ./configure

   --prefix=

   --sysconfdir=

   --enable-deflate

   --enable-ssl

   --enable-expires

   --enable-proxy-fcgi

   

 *  --enable-mpms-shared=all

   -with-mpm=event

   --enable-rewrite

   --enable-cgid

   --enable-so

  * --enable-modules=most

 *  --enable-mods-shared=most

   --with-apr=/usr/local/apr

   --with-apr-util=/usr/local/apr-util


Require not|ip IPADDR

        ip

        network/length

        network/mask

Require host FQDN

        .com

     Require all granted

     Require all deny

Require user USERNAME

Require group GROUPNAME


新增加的模块

mod_proxy

mod_proxy_fcgi

mod_proxy_scgi


mysql

  拷贝mysql至/usr/local/下

  gzip -d

  tar -xvf

  ln -s mysql*  mysql

  创建mysql用户和组

  更改mysql的属主和属组

  创建数据存放目录/mydata/data,更改属主属组,属组有w权限

  mysql/bin/mysqld --initialize-insecure  --basedir=  --datadir= -u mysql 

             --explicit-defaults-for-timestamp

  cp mysql/supportfile/mysql.server  /etc/init.d/mysqld

  chkconfig --add mysqld

mysql配置文件

   格式:[]

       内容     //片段式

   /etc/my.cnf    //mysqld配置文件

   /etc/my.cnf.d/mysql-clients.cnf   //mysql配置文件

   搜索顺序

   /etc/my.cnf---->/etc/mysql/my.cnf---->$BASEDIR/my.cnf--->~/.my,cnf

mysql服务器维护了2类变量:

  1 服务器变量

   定义了mysql的运行特性

   SHOW GLOBAL VARIABLES [LIKE 'datadir'];

  2 状态变量

   保存了mysql运行统计数据

   SHOW GLOBAL STATUS;



php

  ./configure --prefix=/usr/local/php  --with-pdo-mysql=mysqlnd  --with-openssl 

          --with-mysqli=mysqlnd --enable-mbstring

          --with-freetype-dir --with-jpeg-dir  --with-png-dir --with-zlib

          --enable-xml  --with-libxml-dir=/usr --enable-sockets 

          --with-apxs2=/usr/local/httpd/bin/apxs|--enable-fpm  --with-mcrypt

          --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d/

          --with-bz2

          --enable-maintainer-zts

mcrypt:libmcrypt|devel,mhash|devel

如果使用php5.3以上版本,为了链接mysql数据库,可以指定mysqlnd,这样在本机就不需要先安装mysql。mysqlnd从php5.3开始,可以在编译时绑定到它,php5.4成为了默认配置

1、为php提供配置文件

  在编译目录下 cp php.ini-production  /etc/php.ini

2、编辑/etc/httpd.conf文件

  AddType application/x-httpd-php  .php

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

3、修改httpd.conf文件为

  DirectoryIndex index.php  index.html

4、测试php链接mysql

  mysqli_connect('localhost','root','');

5、安装xcache

  在xcache的编译目录执行 /usr/local/php/bin/phpize

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

  mkdir -pv /etc/php.d

  cp xcache.ini /etc/php.d/



fastcgi 架构的lamp


1.apache的configure --enable-proxy  --enable-proxy-fcgi

2.php的configure中替换 --with-apxs2 为 --enable-fpm 并且去掉--with-maintainer-zts

3.为php提供配置文件

 cp php.ini-production /etc/php.ini

3.配置php-fpm

 为php-fpm提供sysv的init脚本

  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 php-fpm on

 为php-fpm提供配置文件

 cp /usr/local/php/etc/php-fpm.conf.default  /usr/local/php/etc/php-fpm.conf

 编辑php-fpm的配置文件

 pm.max-children=50

 pm.start_servers=5

 pm.min_spare_servers=2

 pm.max_spare_servers=8

 pid=/usr/local/php/var/run/php-fpm.pid


 fpm默认监听在127.0.0.1的9000端口

4.配置虚拟主机支持使用fcgi

 ProxyRequests off  //关闭apache的正向代理功能

 ProxyPassMatch ^/(.*\.php)$  fcgi://127.0.0.1:9000/PATH/TO/DOCUMENT_ROOT/$1  

     //支持正则表达式,使用$1引用前面()的分组。

  //把以.php结尾的的文件请求发送的php-fpm进程,php-fpm至少要知道运行的目录和url,这里在

 9000后指明了这两个参数,其他参数的传递已经被mod_proxy_fcgi.so进行了封装,不需要手工指定。


 ProxyPass /p_w_picpaths/a.png   http://172.16.1.1/p_w_picpaths/a.png  //反向代理-支持url


5 xcache

 /usr/local/php/bin/phpize

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

 make

 make install

 /usr/local/php/lib/php/extentions/no-debug-non-zts

 cp xcache.ini  /etc/php.d/