首页 > 代码库 > lamp中分离mysql

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
 
修改密码
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
 
#注意:--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
 
复制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 etc]# chkconfig --add 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

[root@web1 php]# cd /usr/local/apache/conf/ 
[root@web1 conf]# vim httpd.conf
定位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是否工作
[root@web1 conf]# cd /usr/local/apache/htdocs/ 
[root@web1 htdocs]# vim 1.php
    <?php
    phpinfo();
    ?>
访问结果
 
 测试与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进行通信
 
 
 

lamp中分离mysql