实验环境:

    1.VMware

    2.两台linux子机

    3.桥接,本机当客户机

 

实验目的:

    1.编译HTTPD和编译PHP、编译MYSQL,熟悉编译过程和原理

    2.HTTPD和PHP在同一台服务器上,PHP作为HTTPD的模块来与MYSQL建立连接

 

实验拓扑:

        wKioL1P2DRbypisiAABre0erW90597.jpg

 

    二进制格式安装mysql

    1.安装包组和依赖所用到的包

#yum install pcre-devel
#yum groupinstall ‘development tools’
#yum groupinstall ‘desktop platform development’
#yum groupinstall ‘server platform development’

 

    2.编译安装apr和编译安装apr-util

#tar xf apr-1.5.0.tar.bz2
#cd apr-1.5.0
#./configure --prefix=/usr/local/apr  //安装路径
#make && make install
 
#tar xf apr-util-1.5.3.tar.bz2
#cd apr-util-1.5.3
#./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
#make && make install

 

    3. 新建用户以安全方式运行进程

#useradd mysql -r -s /sbin/nologin mysql

 

    4.配置mysql,二进制格式的mysql包是解压出来只要配置一下就可以用的

#mkdir /mydata/data   //创建数据目录
#chown mysql:mysql /mydata/data
#cd /usr/local
#tar xf mariadb-5.5.36-linux-x86_64.tar.gz
#ln –sv mariadb-5.5.36-linux-x86_64.tar.gz mysql
#cd mysql
#chown –R root:mysql ./*
#mkdir /etc/mysql
#cp support-files/my-large.cnf  /etc/mysql/my.cnf
#vim my.cnf

    在下面添加一行数据目录的路径

        wKiom1P2EiujOo1tAAHHSiZSuAE435.jpg

#cd /usr/local/mysql/
#scripts/mysql_install_db  --user=mysql --datadir=/mydata/data
//初始化mysql

 

    5.提供服务启动文件

#cd /usr/local/mysql
#cp support-files/mysql.server /etc/rc.d/init.d/mysqld
#chmod +x /etc/rc.d/init.d/mysqld
#chkconfig --add mysqld
#service mysqld start

        wKioL1P2FRKAg1f4AAA-sR3at5g524.jpg

 

    6.加入环境变量,否则服务启用mysql命令

#vim /etc/profile.d/mysql.sh

        wKiom1P2FIXh6KCPAABESlGTuD4673.jpg

    这样就能用mysql命令进入数据库了

 

    7.导出man手册

#vim /etc/man.config

         wKioL1P2FtOAPfLHAAC8w0xf6PU276.jpg

    到这里,mysql就配置完成了,重新启动,mysql就监听在3306端口了

 

 

编译安装php

    1.安装包组和依赖所用到的包

#yum install pcre-devel
#yum groupinstall ‘development tools’
#yum groupinstall ‘desktop platform development’
#yum groupinstall ‘server platform development’

 

    2.编译安装apr和编译安装apr-util

#tar xf apr-1.5.0.tar.bz2
#cd apr-1.5.0
#./configure --prefix=/usr/local/apr
#make && make install
 
#tar xf apr-util-1.5.3.tar.bz2
#cd apr-util-1.5.3
#./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
#make && make install

 

    3.安装php

#./configure --prefix=/usr/local/php --with-mysql=mysqlnd 
--with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-openssl
--enable-mbstring --with-freetype-dir --with-jpeg-dir --with
-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml 
--enable-sockets --with-apxs2=/usr/local/httpd/bin/apxs 
--with-mcrypt=/usr/local/libmcrypt --with-config-file-path=/etc 
--with-config-file-scan-dir=/etc/php.d --with-bz2 -enable-maintainer-zts

    代码详解:

--prefix=/usr/local/php:设置安装路径
--with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd:
因为php跟mysql不在同一台服务器上,所以这里要这样做
--with-openssl:编译支持openssl支持
--enable-mbstring:支持多字节字符串,如果想支持中文,这个是必须启用的
--with-freetype-dir:字体处理工具,要实现字体的功能,要把这个装上
--with-jpeg-dir:能够直接生成jpeg图片
--with-png-dir:png图片
--with-zlib:支持压缩库
--with-libxml-dir=/usr:指定xml的库文件路径
--enable-xml:启用xml功能
--enable-sockets:允许php基于sockets方式进行通信
--with-apxs2=/usr/local/apache/bin/apxs:编译共享的 Apache 2.0 模块
--with-mcrypt:支持加密库
--with-config-file-path=/etc:php的配置文件存放位置
--with-config-file-scan-dir=/etc/php.d:所有以.ini结尾的文件存放位置
--with-bz2:支持bz2压缩
--enable-maintainer-zts:表示使用zts格式的php

 

    提示请重新安装bzip2,这里需要安装bzip2和bzip2-devel这两个包,用yum安装吧

        wKiom1P2F-XBj-_-AAFi7cqheeg522.jpg

 

    没有找到libmcrypt这个包,这里我的光盘上没有这个包,那就下载编译好了。

        wKioL1P2GU-gg-4GAAExCSzs8h8445.jpg

 

    4.编译安装libmcrypt

#tar xf libmcrypt-2.5.7.tar.gz
#cd libmcrypt-2.5.7
#./configure --prefix=/usr/local/libmcrypt
#make && make install

    这样libmcrypt的次错误就消失了,这又出现了一个错误,是我粗心,打错字母了,应该是“file”,还有bzip2应该改成bz2。

        wKiom1P2GKHQw4IZAAD10M__DVw975.jpg

    这下终于没有错误了,就可以安装了

        wKioL1P2Gg3TDd0jAAIC35GQgbU887.jpg

#make && make install

 

    5.安装好之后编辑httpd的配置文件

#Vim /etc/httpd/httpd.conf

    在里面添加两行,意思是让apache支持php

        wKioL1P2Gnaxf5ZFAABf5foq7fU337.jpg

 

    6.提供php的主配置文件

#cd php-5.4.26
#cp php.ini-production /etc/php.ini

    重启httpd服务

        wKiom1P2GcCR0rrrAAB7R9sOCmI612.jpg

 

    7.提供php的测试页面,测试

#vim /usr/local/httpd/htdocs/index.php

        wKioL1P2G3vBVQ8HAAA7iSxSNU8581.jpg

        wKiom1P2GifhxeP9AAGOsF7R5v8972.jpg

 

     8.测试php与mysql的连接

#yum install php-mysql     //这个包必须装上,因为php是依赖于php-mysql这个
                           //包跟mysql通信的
#vim /usr/local/httpd/htdocs/index.php

         wKiom1P2GtORNm5mAACbYwJl-fk107.jpg

        wKioL1P2HAfRYgUcAACdw3_pvW0243.jpg

    到此为止,php作为httpd的模块与mysql连接就成功了,httpd的编译在我博客的前一篇有,这里不再编译。