PHP pear安装配置教程


Posted in PHP onMay 14, 2016

什么是PEAR?

PEAR是PHP扩展与应用库(the PHP Extension and Application Repository)的缩写。它是一个PHP扩展及应用的一个代码仓库,简单地说,PEAR之于PHP就像是CPAN(Comprehensive Perl Archive Network)之于Perl。

由此可见PEAR是PHP代码的仓库,在这里可以找到很多有用的代码,避免我们重复写一些功能,但是PEAR代码包并不是直接通过HTTP网站下载的,我们需要安装PEAR。

如何获取并安装PEAR

建议:下面操作在Windows 7环境下完成,同样适用于Windows XP/2003/Vista/2008系统,部分操作带有尝试性,为了避免弯路,建议先看完本文,然后再进行相关操作。

如果PHP目录下没有自带PEAR,即找不到go-pear.php文件,那么就需要我们手动下载go-pear.php文件,点击这里下载并另存为go-pear.php,这个文件放到php.exe所在的PHP安装目录下,我这里安装目录是D:\php5(下文以此目录为准),那么go-pear.php的位置应该是D:\php5\go-pear.php。

开始 ? 运行,输入cmd,启动命令提示符,输入以下命令,主要是切换到go-pear.php目录下,然后执行这个PHP脚本文件:

cd D:\php5
D:
php go-pear
.php
遗憾的是可能由于我的PHP版本太新,上述操作提示失败,具体的信息如下:

Deprecated: Assigning the return value of new by reference is deprecated in D:\php5\go-pear.php on line 733

Sorry! Your PHP version is too new (5.3.8) for this go-pear.

Instead use http://pear.php.net/go-pear.phar for a more stable and current version of go-pear, more suited to your PHP version.

Thank you for your coopertion and sorry for the inconvenience!

意思是要求我们到http://pear.php.net/go-pear.phar下载go-pear.phar文件,然后取代go-pear.php再试。下载好go-pear.phar文件并放到D:\php5文件夹中,执行下面的命令:

cd D:\php5
D:
php go-pear.phar

这时出现:

Are you installing a system-wide PEAR or a local copy?
(system|local) [system] :
按回车默认system然后继续。以下是默认的pear的临时、数据、配置、测试、执行目录的设置:

Below is a suggested file layout for your new PEAR installation. To
change individual locations, type the number in front of the
directory. Type 'all' to change all of them or simply press Enter to
accept these locations.
 
 1. Installation base ($prefix)     : D:\php5
 2. Temporary directory for processing   : D:\php5\tmp
 3. Temporary directory for downloads    : D:\php5\tmp
 4. Binaries directory       : D:\php5
 5. PHP code directory ($php_dir)     : D:\php5\pear
 6. Documentation directory      : D:\php5\docs
 7. Data directory        : D:\php5\data
 8. User-modifiable configuration files directory : D:\php5\cfg
 9. Public Web Files directory     : D:\php5\www
10. Tests directory        : D:\php5\tests
11. Name of configuration file     : C:\Windows\pear.ini
12. Path to CLI php.exe       : D:\php5
 
1-12, 'all' or Enter to continue:

直接回车使用默认值然后继续安装。本来以为万事大吉的,可是偏偏在这里出现了错误

Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected ‘UTC' for '8.0/no DST' instead in phar://D:/php5/go-pear.phar/PEAR/Registry.php on line 1012
PEAR_Config::writeConfigFile fopen(‘C:\Windows\pear.ini','w') failed (fopen(C:\Windows\pear.ini): failed to open stream: Permission denied)

看样子是没有权限写入C:\Windows\pear.ini,由于我使用的是Windows 7系统,然后普通用户打开的命令提示符,在这里当然没有权限写入C:\Windows目录了,看来要另辟蹊径了。回到刚才Are you installing a system-wide PEAR or a local copy?这段,为什么不选择local copy呢?网上都是直接说默认回车选择system的,不想改写C:\Windows目录,于是我重新执行php go-pear.phar,并且选择local。

Are you installing a system-wide PEAR or a local copy?
(system|local) [system] : local
Please confirm local copy by typing 'yes' : yes

好了,这下正常了:-)

Would you like to alter php.ini <D:\php5\php.ini>? [Y/n] :
然后就是上面这句,只有选择Y同意修改php.ini。

php.ini <D:\php5\php.ini> include_path updated.
 
Current include path   : .;C:\php\pear
Configured directory   : D:\php5\pear
Currently used php.ini (guess) : D:\php5\php.ini
Press Enter to continue:

接着出现上面这段,看来没有什么好改的,直接回车确认即可。

到这里应该能看到Thanks for using go-pear!这句了,那么恭喜你,PEAR总算是安装成功了!

如何安装PEAR Package包

接下来让我们去PEAR网站上看看有什么需要的吧。PEAR每个包都有安装命令的提示,比如说MDB2这个包,上面已经提示使用pear install MDB2命令安装了,假设目录还是D:\php5,那么我们利用下面的命令试试:

cd D:\php5
D:
pear install MDB2
结果出现下面这个错误:

D:\php5>pear install MDB2
downloading MDB2-2.4.1.tgz ...
Starting to download MDB2-2.4.1.tgz (119,790 bytes)
..........................done: 119,790 bytes
ERROR: failed to mkdir C:\php\pear\docs\MDB2\docs\examples

无法创建目录,看来又是权限问题,索性以管理员身份启动cmd命令提示符,然后重新执行上面的命令。这次总算安装成功了install ok!

另一个安装报错案例:PHP pear安装出现 Warning: require_once(Structures/Graph.php)...错误

在WINDOWS安装pear,一路无阻很顺利安装完成,接着想安装下pear email包来玩下,但接下来却报:

Warning: require_once(Structures/Graph.php): failed to open stream: No such file
 or directory in PEAR\Downloader.php on line 1217
PHP Warning:  require_once(Structures/Graph.php): failed to open stream: No such
 file or directory in E:\Program Files\php5_3\pear\pear\PEAR\Downloader.php on l
ine 1217
 新手没办法,网上找解决。折腾了老半天,还是报这错误.原因很清楚就是少了Structures_Graph这个PEAR应用,相直接通用pear命令:
pear install Structures_Graph-1.1.1
在线安装这个应用,但让人痛心的是竟然也报同样的错误,我丢。。

不跟它玩了直接到PEAR官网下载Structures_Graph-1.1.0.tgz包。解压看看里面的结构;发现里面正好有一个Structures/Graph.php;于是解压并把压缩包里的Structures文件夹放到pear根目下面。接着再运行Structures_Graph的安装命令,惊喜!!成功了。

接着再安装email,不出意外也成功。到此这个纠结了我半天的问题终于解决了。

谢谢大家的阅读哦!

PHP 相关文章推荐
php和js如何通过json互相传递数据相关问题探讨
Feb 26 PHP
php设置编码格式的方法
Mar 05 PHP
ie与session丢失(新窗口cookie丢失)实测及解决方案
Jul 15 PHP
Linux下PHP加速器APC的安装与配置笔记
Oct 24 PHP
PHP页面实现定时跳转的方法
Oct 31 PHP
php获取汉字拼音首字母的方法
Oct 21 PHP
CodeIgniter控制器之业务逻辑实例分析
Jan 20 PHP
PHP实现一个轻量级容器的方法
Jan 28 PHP
PHP工厂模式、单例模式与注册树模式实例详解
Jun 03 PHP
PHP面向对象程序设计之对象克隆clone和魔术方法__clone()用法分析
Jun 12 PHP
Laravel-admin之修改操作日志的方法
Sep 30 PHP
Laravel中GraphQL接口请求频率实战记录
Sep 01 PHP
php+html5+ajax实现上传图片的方法
May 14 #PHP
yii2使用ajax返回json的实现方法
May 14 #PHP
php文件上传类完整实例
May 14 #PHP
Smarty高级应用之缓存操作技巧分析
May 14 #PHP
php生成Android客户端扫描可登录的二维码
May 13 #PHP
php短信接口代码
May 13 #PHP
php实现在线通讯录功能(附源码)
May 13 #PHP
You might like
smarty巧妙处理iframe中内容页的代码
2012/03/07 PHP
windows8.1下Apache+Php+MySQL配置步骤
2015/10/30 PHP
浅谈PHP的反射机制
2016/12/15 PHP
php上传后台无法收到数据解决方法
2019/10/28 PHP
PHP设计模式之建造者模式(Builder)原理与用法案例详解
2019/12/12 PHP
PHP7创建销毁session的实例方法
2020/02/03 PHP
ThinkPHP5分页paginate代码实例解析
2020/11/10 PHP
探讨在JQuery和Js中,如何让ajax执行完后再继续往下执行
2013/07/09 Javascript
js弹出div并显示遮罩层
2014/02/12 Javascript
jquery数组封装使用方法分享(jquery数组遍历)
2014/03/25 Javascript
jquery图片切换插件
2015/03/16 Javascript
javascript设计模式之对象工厂函数与构造函数详解
2015/07/30 Javascript
jquery+ajax实现注册实时验证实例详解
2015/12/08 Javascript
javascript入门之window对象【新手必看】
2016/11/22 Javascript
微信小程序中input标签详解及简单实例
2017/05/18 Javascript
Vue 项目分环境打包的方法示例
2018/08/03 Javascript
微信小程序url传参写变量的方法
2018/08/09 Javascript
vue移动端微信授权登录插件封装的实例
2018/08/28 Javascript
微信小程序实现单选选项卡切换效果
2020/06/19 Javascript
vue el-tree 默认展开第一个节点的实现代码
2020/05/15 Javascript
[53:21]2014 DOTA2国际邀请赛中国区预选赛5.21 DT VS LGD-CDEC
2014/05/22 DOTA
python+Splinter实现12306抢票功能
2018/09/25 Python
Python列表操作方法详解
2020/02/09 Python
python实现在内存中读写str和二进制数据代码
2020/04/24 Python
Django 实现 Websocket 广播、点对点发送消息的代码
2020/06/03 Python
Python自动发送和收取邮件的方法
2020/08/12 Python
详解Python中如何将数据存储为json格式的文件
2020/11/18 Python
使用CSS3来代替JS实现交互
2017/08/10 HTML / CSS
css3 clip实现圆环进度条的示例代码
2018/02/07 HTML / CSS
Gibson London官网:以地道的英国男装而著称
2019/12/06 全球购物
小学安全教育材料
2014/02/17 职场文书
兵马俑的导游词
2015/02/02 职场文书
医院病假条怎么写
2015/08/17 职场文书
实习报告范文之电话客服岗位
2019/07/26 职场文书
2019年警察入党转正申请书最新范文
2019/09/03 职场文书
Java 超详细讲解设计模式之中的抽象工厂模式
2022/03/25 Java/Android