注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

0与1构筑世界,程序员创造时代

软件架构设计 Java编程

 
 
 

日志

 
 

Apache2+PHP5 编译安装 | Apache2+PHP5 Compile and Install  

2011-07-06 16:59:43|  分类: PHP |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
PHP原本简称为Personal Home Page,由Rasmus Lerdorf于1995年发明。1997年,由两个以色列程序员:Zeev Suraski和Andi Gutmans,重写了PHP的剖析器,成为PHP 3的基础,而PHP也在这个时候改称为PHP: Hypertext Preprocessor
PHP语法参考了C、Perl,是一种在服务端执行的嵌入HTML标签的脚本语言。适合于快速开发WEB应用程序,且在执行速度方面也比较理想,并且可以调用C编写的扩展模块。
用Java开发 WEB应用已经有7年的时间,前段时间领略了用Python开发测试程序和数据处理脚本的快速。接下来新的工作中会使用PHP开发产品,抽点时间搭建一下PHP的运行环境。

一、安装准备

  1. httpd-2.2.19.tar.gz
  2. libxml2-2.7.8.tar.gz     (可选)
  3. zlib-1.2.5.tar.gz           (可选)
  4. freetype-2.4.5.tar.gz   (可选)
  5. jpegsrc.v8c.tar.gz       (可选)
  6. libpng-1.5.2.tar.gz      (可选)
  7. gd-2.0.35.tar.gz         (可选)
  8. php-5.3.6.tar

二、编译安装Apache2

1、解压缩Apache2源代码包。
gunzip httpd-2.2.19.tar.gz
tar -xvf httpd-2.2.19.tar
cd httpd-2.2.1
2、编译安装三步曲。
./configure --enable-so --prefix=/devdata/c_tool/apache-httpd-2.2.19
make
make install
说明:
--enable-so   支持*.so扩展插件为Apache提供新的功能。由于后面是提供libphp5.so扩展模块来让Apache处理php,所以--enable-so是必须的。
--prefix   指定安装路径。

三、编译安装PHP5

1、编译安装libxml。   (可选)
1)解压缩libxml。
gunzip libxml2-2.7.8.tar.gz
tar -xvf libxml2-2.7.8.tar
cd libxml2-2.7.8

2)编译安装三步曲。
./configure --prefix=/devdata/c_tool/libxml2-2.7.8
make
make install

2、编译安装zlib。(可选)
1)解压缩zlib。
gunzip zlib-1.2.5.tar.gz
tar -xvf zlib-1.2.5.tar
cd zlib-1.2.5

2)编译安装三步曲。
./configure --prefix=/devdata/c_tool/zlib-1.2.5
make test
make install

3、编译安装freetype。(可选)
1)解压缩freetype。
gunzip freetype-2.4.5.tar.gz
tar -xvf freetype-2.4.5.tar
cd freetype-2.4.5

2)编译安装三步曲。
./configure --prefix=/devdata/c_tool/freetype-2.4.5
make
sudo make install   (as root)

4、编译安装jpeg。(可选)
1)解压缩jpeg。
gunzip jpegsrc.v8c.tar.gz
tar -xvf jpegsrc.v8c.tar
cd jpeg-8c

2)编译安装三步曲。
./configure --prefix=/devdata/c_tool/jpeg-8c
make
make install

5、编译安装libpng。(可选)
1)解压缩libpng。
gunzip libpng-1.5.2.tar.gz
tar -xvf libpng-1.5.2.tar
cd libpng-1.5.2

2)编译安装三步曲。
./configure --prefix=/devdata/c_tool/libpng-1.5.2
make check
make install

6、编译安装gd。(可选)
1)解压缩gd。
gunzip gd-2.0.35.tar.gz
tar -xvf gd-2.0.35.tar
cd gd/2.0.35

2)编译安装三步曲。
./configure --prefix=/devdata/c_tool/gd-2.0.35 --with-png=/devdata/c_tool/libpng-1.5.2 --with-freetype=/devdata/c_tool/freetype-2.4.5 --with-jpeg=/devdata/c_tool/jpeg-8c
make
make install
说明:
--with-png   指定编译安装libpng指定的prefix目录。
--with-freetype   指定编译安装freetype指定的prefix目录。
--with-jpeg   指定编译安装jpeg指定的prefix目录。

7、编译安装PHP5。
1)解压缩PHP5。
tar -xvf php-5.3.6.tar
cd php-5.3.6

2)编译安装三步曲。
./configure --prefix=/devdata/c_tool/php-5.3.6 --with-openssl --with-mysql --enable-zip --enable-sockets --enable-soap --enable-sqlite-utf8 --with-apxs2=/devdata/c_tool/apache-httpd-2.2.19/bin/apxs --with-libxml-dir=/devdata/c_tool/libxml2-2.7.8 --with-zlib-dir=/devdata/c_tool/zlib-1.2.5 --with-jpeg-dir=/devdata/c_tool/jpeg-8c --with-png-dir=/devdata/c_tool/libpng-1.5.2 --with-freetype-dir=/devdata/c_tool/freetype-2.4.5 --with-gd=/devdata/c_tool/gd-2.0.35
make
make test
make install
说明:
1. configure配置参数说明:
--with-openssl   前提必须是已经安装了openssl且版本>=0.9.6,否则去掉此选项。
--with-mysql      前提必须是已经安装了mysql客户端,否则去掉此选项。
--with-libxml-dir 前提必须是已经安装了libxml,否则去掉此选项。
--with-zlib-dir     前提必须是已经安装了zlib,否则去掉此选项。
--with-jpeg-dir   前提必须是已经安装了jpeg,否则去掉此选项。
--with-png-dir    前提必须是已经安装了libpng,否则去掉此选项。
--with-freetype-dir 前提必须是已经安装了freetype,否则去掉此选项。
--with-gd           前提必须是已经安装了gd,否则去掉此选项。

2. 如果在执行configure后出现以下内容,表示成功:
+--------------------------------------------------------------------+
| License:                                                           |
| This software is subject to the PHP License, available in this     |
| distribution in the file LICENSE.  By continuing this installation |
| process, you are bound by the terms of this license agreement.     |
| If you do not agree with the terms of this license, you must abort |
| the installation process at this point.                            |
+--------------------------------------------------------------------+

Thank you for using PHP.


3. make install会出现类似如下的输出,注意其中的加粗部分有助于了解make install的时候做了什么以及后续该如何处理。
Installing PHP SAPI module:       apache2handler
/devdata/c_tool/apache-httpd-2.2.19/build/instdso.sh SH_LIBTOOL='/devdata/c_tool/apache-httpd-2.2.19/build/libtool' libphp5.la /devdata/c_tool/apache-httpd-2.2.19/modules
/devdata/c_tool/apache-httpd-2.2.19/build/libtool --mode=install cp libphp5.la /devdata/c_tool/apache-httpd-2.2.19/modules/
cp .libs/libphp5.so /devdata/c_tool/apache-httpd-2.2.19/modules/libphp5.so
cp .libs/libphp5.lai /devdata/c_tool/apache-httpd-2.2.19/modules/libphp5.la

libtool: install: warning: remember to run `libtool --finish /devdata/c_tool/install-src/php-5.3.6/libs'
chmod 755 /devdata/c_tool/apache-httpd-2.2.19/modules/libphp5.so
[activating module `php5' in /devdata/c_tool/apache-httpd-2.2.19/conf/httpd.conf]
Installing PHP CLI binary:        /devdata/c_tool/php-5.3.6/bin/
Installing PHP CLI man page:      /devdata/c_tool/php-5.3.6/man/man1/
Installing build environment:     /devdata/c_tool/php-5.3.6/lib/php/build/
Installing header files:          /devdata/c_tool/php-5.3.6/include/php/
Installing helper programs:       /devdata/c_tool/php-5.3.6/bin/
  program: phpize
  program: php-config
Installing man pages:             /devdata/c_tool/php-5.3.6/man/man1/
  page: phpize.1
  page: php-config.1
Installing PEAR environment:      /devdata/c_tool/php-5.3.6/lib/php/
[PEAR] Archive_Tar    - installed: 1.3.7
[PEAR] Console_Getopt - installed: 1.3.0
[PEAR] Structures_Graph- installed: 1.0.4
[PEAR] XML_Util       - installed: 1.2.1
[PEAR] PEAR           - installed: 1.9.2
Wrote PEAR system config file at: /devdata/c_tool/php-5.3.6/etc/pear.conf
You may want to add: /devdata/c_tool/php-5.3.6/lib/php to your php.ini include_path
/devdata/c_tool/install-src/php-5.3.6/build/shtool install -c ext/phar/phar.phar /devdata/c_tool/php-5.3.6/bin
ln -s -f /devdata/c_tool/php-5.3.6/bin/phar.phar /devdata/c_tool/php-5.3.6/bin/phar
Installing PDO headers:          /devdata/c_tool/php-5.3.6/include/php/ext/pdo/


四、配置Apache2支持PHP解析

1、复制PHP配置文件。
cp php.ini-development /devdata/c_tool/php-5.3.6/lib/php/php.ini
说明:
php.ini-development位于php-5.3.6.tar解压后的目录中。

2、修改Apache2的配置文件httpd.conf,增加如下内容:
LoadModule php5_module        modules/libphp5.so  (此部分内容在编译php5执行make install的时候已经自动加入,如果没有需手动添加)

<FilesMatch \.php>
    SetHandler application/x-httpd-php
</FilesMatch>

五、测试

1、启动Apache2。
sudo httpd -k start

2、编写一个helloworld.php放入Apache2的htdocs目录,其源代码如下:
<html>
  <head>
  </head>
  <body>
  <?
  echo "Hello, World!";
  echo "<br/>";
  date_default_timezone_set("PRC");
  $now = getdate();
  echo "现在是:".$now[year]."年".$now[mon]."月".$now[mday]."日 ".$now[hours]."时".$now[minutes]."分".$now[seconds]."秒";
  ?>
  </body>
</html>

3、打开浏览器,显示内容如下图所示:
Apache2+PHP5 编译安装 | Apache2+PHP5 Compile and Install - 傲风 - 宝剑锋从磨砺出 梅花香自苦寒来
 

六、编译安装过程中的错误处理

1、编译安装gd时,configure报错:
gd_png.c:16: fatal error: png.h: No such file or directory
compilation terminated.
make[2]: *** [gd_png.lo] 错误 1
make[2]:正在离开目录 `/devdata/c_tool/install-src/gd/2.0.35'
make[1]: *** [all-recursive] 错误 1
make[1]:正在离开目录 `/devdata/c_tool/install-src/gd/2.0.35'
make: *** [all] 错误 2

Apache2+PHP5 编译安装 | Apache2+PHP5 Compile and Install - 傲风 - 宝剑锋从磨砺出 梅花香自苦寒来解决方法:
修改gd的源代码,找到gd_png.c 将include "png.h" 中的png.h改成具体的路径。


2、编译安装PHP5时,configure报错:
configure: error: Cannot find MySQL header files under yes.
Note that the MySQL client library is not bundled anymore!

Apache2+PHP5 编译安装 | Apache2+PHP5 Compile and Install - 傲风 - 宝剑锋从磨砺出 梅花香自苦寒来解决方法:
安装mysqlclient-dev包,在ubuntu下可以执行如下命令安装mysqlclient-dev包:
sudo apt-get install libmysqlclient-dev

参考资料 | References



<正文结束> 

文章声明


作者:傲风(aofengblog@163.com)       编写时间:2011年07月06日

网址:http://aofengblog.blog.163.com

作者保留所有权利,转载请保留文章全部内容!


  评论这张
 
阅读(2426)| 评论(4)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017