八、编译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

 

编译选项的一些说明

 

如果 Apache openssl bz2 zlib zip mysql gd 已经通过 yum rpm 包安装的话,后边可以不加路径,编译检查程序会找默认的路径。如果你要使用自己编译过的那个版本,请务必后边加上正确的安装路径。

 
部分编译选项的含意:
-- with-openssl 为了满足数据传输不被监听和篡改的需要。

--with-mysql 是用来为 PHP 脚本提供连接 MySQL 数据库和处理 SQL 命令的接口。这也是 LAMP 的精髓,必须加上。

--with-gd 是提供 PHP 处理置图形的接口。这在实际中经 常用来生成缩略图或者用来对图片加水印或者对网站数据生成报表。

 

在编译前如果你要添加的某个功能,但你的服务器上却没有安装相应的文件,请从系统安装光盘中查找安装或从网络上下载源码自行编译,然后在编译PHP时把相应选项加上即可。
 

 

对于手动编译 gd ,请注意,请在编译 gd 的时候必须把 freetype libjpeg libpng 选项加入: ./configure –prefix=/usr/local/gd  --with-freetype --with-jpeg --with-png ,也请在编译 gd 前确保 freetype libjpeg libpng 的库文件已经安装了。如果不想编译也可以去安装光盘上相应的 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:
页面地址: http://freetype.org/download.html

Libjpeg

下载页面: http://linux.softpedia.com/get/Programming/Libraries/libjpeg-160.shtml

Libzlib

页面地址: http://www.zlib.net/

Libpng

页面地址: http://www.libpng.org/pub/png/libpng.html

Zlib

页面地址: http://www.zlib.net/

Gd

下载地址: http://www.libgd.org/Downloads

 

编译和安装

# 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文件的解释器

容器中增加下面的字段

AddType application/x-httpd-php .php .phtml

AddType application/x-httpd-php-source .phps
 
按下来我们要对LAMP服务器做一个整体的测试,确保我们前边编译中添加的各项功能都能正常工作,并且他们可以Apache和PHP及MySQL可以协调工作。