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/