作者:聂勇 欢迎转载,请保留作者信息并说明文章来源!
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的运行环境。
一、安装准备
- httpd-2.2.19.tar.gz
- libxml2-2.7.8.tar.gz (可选)
- zlib-1.2.5.tar.gz (可选)
- freetype-2.4.5.tar.gz (可选)
- jpegsrc.v8c.tar.gz (可选)
- libpng-1.5.2.tar.gz (可选)
- gd-2.0.35.tar.gz (可选)
- php-5.3.6.tar
二、编译安装Apache2
1、解压缩Apache2源代码包。
2、编译安装三步曲。
说明:
- –enable-so 支持*.so扩展插件为Apache提供新的功能。由于后面是提供libphp5.so扩展模块来让Apache处理php,所以–enable-so是必须的。
- –prefix 指定安装路径。
三、编译安装PHP5
1、编译安装libxml。 (可选)
1)解压缩libxml。
2)编译安装三步曲。
2、编译安装zlib。(可选)
1)解压缩zlib。
2)编译安装三步曲。
3、编译安装freetype。(可选)
1)解压缩freetype。
2)编译安装三步曲。
4、编译安装jpeg。(可选)
1)解压缩jpeg。
2)编译安装三步曲。
5、编译安装libpng。(可选)
1)解压缩libpng。
2)编译安装三步曲。
6、编译安装gd。(可选)
1)解压缩gd。
2)编译安装三步曲。
说明:
- –with-png 指定编译安装libpng指定的prefix目录。
- –with-freetype 指定编译安装freetype指定的prefix目录。
- –with-jpeg 指定编译安装jpeg指定的prefix目录。
7、编译安装PHP5。
1)解压缩PHP5。
2)编译安装三步曲。
说明:
- 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,否则去掉此选项。
如果在执行configure后出现以下内容,表示成功:
12345678910+--------------------------------------------------------------------+| 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.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 runlibtool --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配置文件。
说明:
- php.ini-development位于php-5.3.6.tar解压后的目录中。
2、修改Apache2的配置文件httpd.conf,增加如下内容:
五、测试
1、启动Apache2。
2、编写一个helloworld.php放入Apache2的htdocs目录,其源代码如下:
3、打开浏览器,显示内容如下图所示:
六、编译安装过程中的错误处理
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
解决方法:修改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!
解决方法:安装mysqlclient-dev包,在ubuntu下可以执行如下命令安装mysqlclient-dev包: