lamp中分离mysql
apahce和php的结合方式有两种
1 php作为模块与apache结合
2 php作为一个独立进程与apache结合,这种方式就需要通过反向代理的方式处理php脚本
lamp中mysql的分离,一般使用的是第二种方式!
参考帖子:http://chenpipi.blog.51cto.com/8563610/1381835 感谢发帖人
装载请标明来源:http://www.cnblogs.com/xiaoxiaoguixia/p/4045396.html 谢谢 支持笔者的汗水
本实验
一 基本结构
192.168.204.7 php+apache 192.168.204.9 mysql
apache(httpd) 2.4
php 5.5
mysql 5.6
apache 前端(处理静态)---php 动态php处理----mysql数据存储
二 mysql安装 (192.168.204.9上)
userdel mysql
groupadd mysql
useradd -r -g mysql mysql
tar -zxvf mysql-5.6.21-linux-glibc2.5-x86_64.tar.gz
ln -s src/mysql-5.6.21-linux-glibc2.5-x86_64 mysql
cd mysql/
mkdir /data/mysql
chown -R mysql.mysql /data/mysql/
scripts/mysql_install_db --user=mysql --datadir=/data/mysql
cp support-files/mysql.server /etc/init.d/mysqld
修改/etc/init.d/mysqld 中datadir=/data/mysql
basedir 可以不指定 默认为/usr/loca/mysql 安装文件路径
加入服务器自启动
chmod 755 /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on
加入环境变量
vim /etc/profile.d/mysql.sh
#!/bin/bash
PATH=$PATH:/usr/local/mysql/bin
PATH=$PATH:/usr/local/mysql/bin
修改密码
mysqladmin -uroot password '123456'
启动msyql
/etc/init.d/mysqld start
三 安装httpd(192.168.204.7)
安装方法,可以参考上一篇帖子
tar apr
tar apr-util
cp -rf apr-1.5.1 /usr/local/src/httpd-2.4.10/srclib/apr
cp -rf apr-util-1.5.4 /usr/local/src/httpd-2.4.10/srclib/apr-util
./configure --prefix=/usr/local/apache --with-included-apr --with-pcre --enable-mods-shared=most --enable-ssl
make && make install
四 安装 php(192.168.204.7)
解压过程可以参考上一篇帖子,这里只是php的预编译./configure 的选项参数不相同,因为现在是使用php-fpm的通信方式了
tar 解压httpd
useradd -s /sbin/nologin php-fpm # 创建启动fpm服务的用户
cd php-5.3.28
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-fpm --with-fpm-user=php-fpm --with-fpm-group=php-fpm --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-ftp --enable-mbstring --enable-exif --enable-zend-multibyte --disable-ipv6 --with-pear --with-curl --with-gettext
cd php-5.3.28
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-fpm --with-fpm-user=php-fpm --with-fpm-group=php-fpm --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-ftp --enable-mbstring --enable-exif --enable-zend-multibyte --disable-ipv6 --with-pear --with-curl --with-gettext
#注意:--with-mysql几个选项都要为mysqlnd;因为mysql服务器单独为另一台机器
--enable-zend-multibyte 可能没有 可以选择不加
五 顺利启动APACHE 要做的基本配置
1 修改conf 去除启动错误 修改/usr/local/apache/conf/http.conf
# ServerName www.example.com:80 去掉注释
2 添加启动脚本 vim /etc/init.d/httpd 加入以下内容,参考博客 http://www.cnblogs.com/xiaoxiaoguixia/p/4034197.html
chmod +x /etc/init.d/httpd
3 加入服务自启动
chkconfig --add httpd
chkconfig httpd on
chkconfig --list httpd 查看结果
六 PHP要做的配置
PHP的配置
复制php配置文件
[root@web1 php-5.5.18]# pwd
/usr/local/src/php-5.5.18
[root@web1 php-5.5.18]# cp php.ini-production /usr/local/php/etc/php-ini
/usr/local/src/php-5.5.18
[root@web1 php-5.5.18]# cp php.ini-production /usr/local/php/etc/php-ini
复制php-fpm启动脚本
[root@web1 php-5.5.18]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
[root@web1 php-5.5.18]# chmod +x /etc/init.d/php-fpm
[root@web1 php-5.5.18]# pwd
/usr/local/src/php-5.5.18
[root@web1 php-5.5.18]# chmod +x /etc/init.d/php-fpm
[root@web1 php-5.5.18]# pwd
/usr/local/src/php-5.5.18
加入自启动
[root@web1 etc]# chkconfig --add php-fpm
[root@web1 etc]# chkconfig php-fpm on
[root@web1 etc]# chkconfig --list php-fpm 检查是否在自启动列表中
[root@web1 etc]# chkconfig php-fpm on
[root@web1 etc]# chkconfig --list php-fpm 检查是否在自启动列表中
复制php-fpm的文件,有必要的话可以自行调整参数值
cd /usr/local/php/etc/
[root@web1 etc]# cp php-fpm.conf.default php-fpm.conf
启动php,默认监听所有地址
七 整合APACHE和PHP使APACHE支持PHP
定位AddType增加以下两行
定位Directory index 增加 index.php
定位LoadModule 开启 mod_proxy.so 和 mod_proxy_fcgi.so 两个模块
加入php的代理功能,php页面作为fcgi脚本呢处理,定位的http.conf 的最后一行
设置接受fcgi请求的地址
cd /usr/local/php/etc
vim php-fpm.conf
定位listen
接受fcgi请求的地址,默认是172.0.0.1:9000 修改成所有或者本机ip都行
重启httpd
八 Mysql能接受远方的主机的请求,授权给192.168.204.7主机(web主机)
192.168.204.9 的数据上要授权给192.168.204.7
mysql> grant all privileges on *.* to 'root'@'192.168.204.7' identified by '123456';
mysql> flush privileges;
九 测试结果
1 默认的http是工作的
2 测试apache能否php是否工作
<?php
phpinfo();
?>
访问结果
3
测试与mysql的连通性
192.168.204.7 ------> 192.168.204.9(mysql)
vim testmysql.php
<?php
$connect= mysql_connect('192.168.204.9','root','123456');
if($connect)
echo "Connect mysql Successs.....";
else
echo "Connect mysql Failed......";
?>
结果测试:表明可以和mysql进行通信