在网络上有许多文章,关于PEAR安装说明,包括pear.php.net里的安装介绍,
大都会直接针对在服务器上进行安装过程等..作说明,有时这些安装设定的步骤一不
小心安装错了,设定错了或是给你跳出几个error真是会让人有不知所措的感觉
,进而对于PEAR这好用的套件,则退避三分,以下的介绍将对于pear安装在自己
的服务器主机或是虚拟主机上都可直接应用。
如果要将pear安装在自己的服务器主机,版本最好是要使用php 4.3.0以上,
并且在编译安装php时没有使用"./configure flag --without-pear"选项,
原则上这样pear的基本安装应该已经在系统里。
至于在虚拟主机上,并没有提供shell权限,也无法修改php.ini档的设定。
主机商也不会好心的专门为你安装PEAR看来是不可能的事了。如何在这样的
虚拟主机上使用PEAR呢?以下就是重点了:
首先到http://pear.php.net/packages.php下载所需要的压缩文件,如基本的
PEAR套件压缩文件PEAR-1.6.2.tgz和Benchmark套件压缩文件Benchmark-1.2.7.tgz
和Image_Barcode套件压缩文件Image_Barcode-1.1.0.tgz下载回来之后把压缩文件
一一解压缩 ,然后在你虚拟主机上的虚拟目录.htdoc或.www里面建立一个include_PEAR目录。
再将刚才解压出来的3个目录上传到include_PEAR该目录里面
(如PEAR目录就上传OS,PEAR,SCRIPT目录和PEAR.php檔)
传上去的目录结构就像是这样:
htdoc/
include_PEAR/
OS目录
PEAR目录
scripts目录
PEAR.php檔
以上的/表示目录层
(如Benchmark目录就上传Benchmark目录,doc目录就不用传了)
传上去的目录结构就像是这样:
htdoc/
include_PEAR/
Benchmark目录
以上的/表示目录层
(先在include_PEAR目录里面再建立一个Image目录然后再把Barcode目录和Barcode.php文件上传到Image目录里面,doc目录就不用传了)
传上去的目录结构就像是这样:
htdoc/
include_PEAR/
Image/
Barcode目录
Barcode.php檔
以上的/表示目录层
这样就可以开始使用PEAR了,测试的方法如下:
建立一支内容如下的程序showBenchmark.php
<?php
ini_set("include_path", "/htdocs/includes_PEAR/" . PATH_SEPARATOR . ini_get("include_path"));
require_once 'Benchmark/Timer.php';
$timer = new Benchmark_Timer();
$timer->start();
echo "Hello World!";
$timer->stop();
$totaltime=$timer->timeElapsed();
echo "<br>This Page Show Time:".$totaltime."Sec";
?>
建立一支内容如下的程序showBarcode.php
<?php
ini_set("include_path", "/htdocs/include_PEAR/" . PATH_SEPARATOR . ini_get("include_path"));
require_once 'Image/Barcode.php';
Image_Barcode::draw('1234', 'int25', 'png');
?>
将这2支程序上传到htdoc/底下
然后在网址打上http://你的网址/showBenchmark.php
你将会看到这程序效果,Benchmark是一支测试执行网页时间程序
<!--[if !vml]--><!--[endif]-->
然后在网址再打上http://你的网址/showBarcode.php
你将会看到这程序效果,Image_Barcode是一支跑条形码的程序,很实用喔!
<!--[if !vml]--><!--[endif]-->
如果有看到以上2支程序执行的成果,恭喜你,你已经将PEAR套件装好了。
以下这一段是因为我们无法在虚拟主机上和不想在自己主机上修改php.ini文件,所以我们就在程序直接加上include路径:
<?php
ini_set("include_path", "/htdocs/include_PEAR/" . PATH_SEPARATOR . ini_get("include_path"));
//这一句,我补充一点:“/htdocs/include_PEAR/”如果是UNIX主机,路径用“/”隔开;
//如果是Windows主机,路径用“/”隔开,这其实php.ini文件上已有注释说明,如下所示:
//; UNIX: "/path1:/path2"
//;include_path = ".:/php/includes"
//;
//; Windows: "/path1;/path2"
//;include_path = ".;c:/php/includes"
但在php文件里,“/”还是需要转义一下的,例如:
ini_set("include_path", "d://AppServ//www//include_PEAR//" . PATH_SEPARATOR . ini_get("include_path"));
其实像这种非标准的也是可以的:
ini_set("include_path", "d:/AppServ/www/include_PEAR/" . PATH_SEPARATOR . ini_get("include_path"));
//不知道ini_set()函数是干什么的???Look:
------------------------------------------------------------------------------------------------
//当PHP读取php.ini配置文件中的所有设置信息的同时,它提供了采用ini_set()函数根据per-script原则更改这些设置的功能。此函数接收两个参数:需要调整的配置变量名,以及变量的新值。
例如,在某脚本出现时增加最大执行时间(maximum execution time):
<?php
ini_set('max_execution_time', 600)
// more code
?>;
这样的设置将仅仅影响被设置的脚本。一旦脚本执行完毕,该变量将自动恢复到原始值。
?>
-------------------------------------------------------------------------------------------------
如果有出现错误就照上面检查一下你放的目录名称和路径是否相对应,是否正确。
好了,至此不管是使用Windows和Linux或是FreeBsd上,或者是租用虚拟主机都可以使用PHP的PEAR了。