实验拓扑
php
实验需求mysql
要求php以FastCGI模式和httpd协同工做而且可以连接MySQL数据库linux
访问静态页面内容直接有httpd处理sql
访问动态页面交由PHP处理shell
实验规划数据库
全部linux系统使用:CentOS 2.6.32-431.el6.x86_64apache
Apache版 本 号 为:httpd-2.4.16.tar.gz服务器
PHP 版 本 号 为:php-5.6.11.tar.bz2socket
MySQL 版 本 号 为:mysql-5.5.24.tar.gzide
httpd服务器地址为:192.168.10.150/24
PHP 服务器地址为:192.168.10.200/24
MySQL服务器地址为:192.168.10.250/24
实验步骤
为了实验方便建议关闭防火墙和selinux
[root@CentOS-1 ~]# service iptables stop
[root@CentOS-1 ~]# setenforce 0
安装httpd服务
安装编译工具以及依赖包
编译安装apr和apr-util
建立apr和apr-util的安装目录
将apr和apr-util解压
切换至apr源码目录并配置apr安装路径
配置完成后若是最后几行没有报错便可“make && make install”编译并安装了
切换至apr-util源码目录并配置相关参数,因为apr-util依赖于apr因此要指定apr所在目录
建立apache安装目录,并解压其压缩包,切换路径到源码包所在目录
./configure
--prefix=/usr/local/apache \ //指定安装路径
--enable-so \ //支持动态共享模块
--enable-rewirte \ //支持URL重写
--enable-cgi \ //支持CGI
--enable-cgid \ //使用event或者worker的mpm模式要启用cgid
--enable-modules=most \
--enable-mods-shared=most \ //启动共享模块
--enable-mpms-shared=all \ //支持全部mpm模式
--with-apr=/usr/local/apr \ //指定apr位置
--with-apr-util=/usr/local/apr-util //指定apr-util位置
若是配置没有报错则直接编译并安装
编辑httpd的service启动脚本在开头添加以下2行内容
将httpd的service启动脚本添加执行权限
将httpd加入到chkconfig设置开机自启动
启动httpd服务
因为没有定义域名因此会报一个警告这个是正常的,能够经过netstat命令过滤一下80端口发现是正在监听
访问页面测试httpd是否工做正常
安装MySQL数据库
安装cmake等编译工具以及相关依赖包
建立mysql用户并指定shell为“/sbin/nologin”
建立mysql安装目录,解压mysql并切换至源码目录
使用cmake配置mysql参数
cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ //安装路径
-DMYSQL_DATADIR=/home/mysql \ //数据文件路径,若是不指定就是安装目录下的data
-DSYSCONFDIR=/etc \ //配置文件路径
-DWITH_INNOBASE_STORAGE_ENGINE=1 \ //安装INNOBASE存储引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \ //安装ARCHIVE存储引擎
-DWITH_BLCAKHOLE_STORAGE_ENGINE=1 \ //安装BLACKHOLE存储引擎
-DWITH_READLINE=1 \ //可以使用localinfile来批量导入mysql数据
-DWITH_SSL=system \ //支持基于SSL的会话
-DWITH_SSL=bundled \
-DWITH_ZLIB=system \ //压缩库
-DWITH_LIBWRAP=0 \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \ //默认套接字文件路径
-DEXTRA_CHARSETS=all \ //支持的字符集
-DDEFAULT_CHARSET=utf8 \ //默认的字符集
-DDEFAULT_COLLATION=utf8_general_ci //字符集排序规则
若是配置无误便可编译安装
将mysql全部文件属主修改成mysql组
建立配置文件,若是已有则直接覆盖
将mysql加入到$PATH路径中
启动mysql数据库,默认监听在TCP的3306端口
安装php
安装编译工具
安装GD库
建立php安装目录,并将压缩包解压而后切换至源码包所在目录
./configure --prefix=/usr/local/php \ //指定安装路径
--enable-fpm \ //启用fpm模式
--with-mysql=mysqlnd \ //若是要想链接数据库就须要加上这三项
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-openssl \//开启openssl功能
--enable-mbstring \
--with-freetype-dir \//加载freetype字体库
--with-jpeg-dir \//支持图片
--with-png-dir \
--with-zlib \//让数据文件先压缩在传送
--with-libxml-dir=/usr \ //指定xml库目录
--enable-xml \//开启xml支持
--enable-sockets \//让PHP支持套接字
--with-config-file-path=/etc \//PHP配置文件位置
--with-config-file-scan-dir=/etc/php.d \//关联子配置文件的位置
--with-bz2
若是配置过程没有任何报错则能够编译并安装了
建立PHP配置文件
为php-fpm提供service启动脚本,并添加到chkconfig管理
启动php-fpm
配置httpd支持php
编辑httpd的配置文件
将此行的注释#号去掉开启虚拟主机
将这2个模块启用,将其前面注释去掉
编辑虚拟主机配置文件
输入以下内容
ProxyPassMatch ^/(.*\.php)$ fcgi://192.168.10.200:9000/opt/www/$1
//匹配以/开头“.php”结尾的文件交有192.168.10.200:9000(PHP服务器)处理,$1表示调用前面括号中的内容“(.*\.php)$”
重启httpd服务
在PHP服务器中建立php测试页
输入以下内容
访问测试是否可以工做正常
因而可知PHP页面工做正常
测试httpd自身的静态页面
切换至数据库服务器受权一个用户
进入数据库
添加tom帐号,拥有全部权限,容许从任意主机登陆(%表示任意IP),刷新受权信息
编辑PHP服务器的网页文件,测试数据库连接是否正常
输入一下内容
测试数据库是否连接正常
使用php-fpm模式和模块方式安装的区别在于模块安装用到php时直接将模块加载进来而php-fpm模式则是须要启动一个新的进程