八、编译PHPOpenSSL支持
编译前的配置
 # cd /usr/local/src/php-5.3.0
# ./configure --prefix=/usr/local/php-5.3.0 \
--with-mysql=/usr/local/mysql --with-mysql-sock=/tmp/mysql.sock \
--with-apxs2=/usr/local/apache/bin/apxs \
--with-openssl=/usr/local/openssl \
--with-gd --with-zlib-dir --with-bz2 --with-jpeg-dir --with-png-dir --with-freetype-dir \
--enable-dba --enable-bcmath --enable-calendar --enable-zend-multibyte ----enable-ftp --enable-sockets
 
编译选项的一些说明
 
如果Apacheopensslbz2zlibzipmysqlgd已经通过yumrpm包安装的话,后边可以不加路径,编译检查程序会找默认的路径。如果你要使用自己编译过的那个版本,请务必后边加上正确的安装路径。
 
部分编译选项的含意:
--with-openssl 为了满足数据传输不被监听和篡改的需要。
--with-mysql 是用来为PHP脚本提供连接MySQL数据库和处理SQL命令的接口。这也是LAMP的精髓,必须加上。
--with-gd 是提供PHP处理置图形的接口。这在实际中经常用来生成缩略图或者用来对图片加水印或者对网站数据生成报表。
 
在编译前如果你要添加的某个功能,但你的服务器上却没有安装相应的文件,请从系统安装光盘中查找安装或从网络上下载源码自行编译,然后在编译PHP时把相应选项加上即可。
 
 
对于手动编译gd,请注意,请在编译gd的时候必须把freetypelibjpeglibpng选项加入:./configure –prefix=/usr/local/gd  --with-freetype --with-jpeg --with-png,也请在编译gd前确保freetypelibjpeglibpng的库文件已经安装了。如果不想编译也可以去安装光盘上相应的devel文件。
 
我在这里的做法是确认下面的包已经正确安装:
 # rpm -qa |egrep -i "freetype|libjpeg|libpng|zlib|bzip2|^gd-"
检查下面的几个包是否完整安装,如果是其中有自行编译的请不要这样查询
# ls -1 *.rpm
bzip2-devel-1.0.3-4.el5_2.i386.rpm
freetype-devel-2.2.1-20.el5_2.i386.rpm
gd-2.0.33-9.4.el5_1.1.i386.rpm
gd-devel-2.0.33-9.4.el5_1.1.i386.rpm
libjpeg-devel-6b-37.i386.rpm
libpng-devel-1.2.10-7.1.el5_0.1.i386.rpm
zlib-devel-1.2.3-3.i386.rpm
 
下面是我安装了上面的安装了上面的rpm包后的查询结果。
# rpm -qa |egrep -i "freetype|libjpeg|libpng|zlib|bzip2|^gd-"
zlib-1.2.3-3
freetype-2.2.1-20.el5_2
bzip2-1.0.3-4.el5_2
bzip2-devel-1.0.3-4.el5_2
libjpeg-devel-6b-37
bzip2-libs-1.0.3-4.el5_2
libpng-1.2.10-7.1.el5_0.1
libjpeg-6b-37
perl-Compress-Zlib-1.42-1.fc6
gd-2.0.33-9.4.el5_1.1
zlib-devel-1.2.3-3
libpng-devel-1.2.10-7.1.el5_0.1
freetype-devel-2.2.1-20.el5_2
 
 
下载地址
Freetype:
Libjpeg
Libzlib
页面地址:http://www.zlib.net/
Libpng
Zlib
页面地址:http://www.zlib.net/
Gd
 
编译和安装
# make
# make install
配置PHP
# cp php.ini-production  /usr/local/lib/php.ini    
或者cp php.ini-development /usr/local/lib/php.ini
修改httpd.conf文件,请在对应的容器中增加如下的行。
# vi /usr/local/apache/conf/httpd.conf
确保已经包含了加载模块的语句
    For PHP 4:
 
      LoadModule php4_module libexec/libphp4.so
 
    For PHP 5:
 
      LoadModule php5_module libexec/libphp5.so
在安装了apache后再编译安装PHP,一般会自动添加上类似的话:
LoadModule php5_module        modules/libphp5.so
没有必要重复添加
 
增加主索引文件的列表
DirectoryIndex index.html
修改为
DirectoryIndex index.html index.php
 
增加PHP文件的解释器
<IfModule mime_module>容器中增加下面的字段
AddType application/x-httpd-php .php .phtml
AddType application/x-httpd-php-source .phps
 
按下来我们要对LAMP服务器做一个整体的测试,确保我们前边编译中添加的各项功能都能正常工作,并且他们可以Apache和PHP及MySQL可以协调工作。