看到PEAR章节,提到安装PEAR需要go-pear.bat,我机器上的PHP(v7.0.8)目录下,并没有go-pear.bat这个文件,网上查了一遍,怎么说的都有,最后还是在官网上找到解决方案。
http://pear.php.net/manual/en/installation.getting.php
Windows
After you have downloaded and installed PHP, you have to manually execute the batch file located in e.g. c:phpgo-pear.bat
. Alternatively, download https://pear.php.net/go-pear.phar with your browser and save the output to a local file named go-pear.phar
. You can then run
php go-pear.phar
in a Windows Command Prompt to start the installation.
The setup will ask you some questions and afterwards the PEAR Package Manager will be installed in the path, which you have specified during installation.
Finally you have to add that installation path to your PATH
environment. Either do this manually (Start > Control Panel > System > Environment) or run (double-click) the newly generated PEAR_ENV.reg
that's now found in the PHP source directory.
After that you can access the PEAR Package Manager by running the command pear
in a Windows Command Prompt.
After changing php.ini
, you will need to restart your web server.
Now check that PEAR works.
为什么目录下有可能不存在go-pear.bat?这是个问题。
大概是以下几个原因:
1.历史原因,曾经发布的包里是包含go-pear.bat的,现在新版本的已经取消【如此重要的扩展库,是不是天然包含更好一些?】
有待研究,慢慢补充
=====================================================================================
Microsoft Windows [版本 10.0.10586]
(c) 2015 Microsoft Corporation。保留所有权利。
D:PHPx64>php go-pear.php
Sorry! Your PHP version is too new (7.0.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!【这里有个错误单词,谁知道如何提交给PHP官方?】
D:PHPx64>php go-pear.phar
Are you installing a system-wide PEAR or a local copy?
(system|local) [system] : local
Please confirm local copy by typing 'yes' : yes
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:PHPx64
2. Temporary directory for processing : D:PHPx64 mp
3. Temporary directory for downloads : D:PHPx64 mp
4. Binaries directory : D:PHPx64
5. PHP code directory ($php_dir) : D:PHPx64pear
6. Documentation directory : D:PHPx64docs
7. Data directory : D:PHPx64data
8. User-modifiable configuration files directory : D:PHPx64cfg
9. Public Web Files directory : D:PHPx64www
10. System manual pages directory : D:PHPx64man
11. Tests directory : D:PHPx64 ests
12. Name of configuration file : D:PHPx64pear.ini
13. Path to CLI php.exe : D:PHPx64
1-13, 'all' or Enter to continue:
Beginning install...
Configuration written to D:PHPx64pear.ini...
Initialized registry...
Preparing to install...
installing phar://D:/PHPx64/go-pear.phar/PEAR/go-pear-tarballs/Archive_Tar-1.4.0.tar...
installing phar://D:/PHPx64/go-pear.phar/PEAR/go-pear-tarballs/Console_Getopt-1.4.1.tar...
installing phar://D:/PHPx64/go-pear.phar/PEAR/go-pear-tarballs/PEAR-1.10.1.tar...
installing phar://D:/PHPx64/go-pear.phar/PEAR/go-pear-tarballs/Structures_Graph-1.1.1.tar...
installing phar://D:/PHPx64/go-pear.phar/PEAR/go-pear-tarballs/XML_Util-1.3.0.tar...
install ok: channel://pear.php.net/Archive_Tar-1.4.0
install ok: channel://pear.php.net/Console_Getopt-1.4.1
install ok: channel://pear.php.net/Structures_Graph-1.1.1
install ok: channel://pear.php.net/XML_Util-1.3.0
install ok: channel://pear.php.net/PEAR-1.10.1
PEAR: Optional feature webinstaller available (PEAR's web-based installer)
PEAR: Optional feature gtkinstaller available (PEAR's PHP-GTK-based installer)
PEAR: Optional feature gtk2installer available (PEAR's PHP-GTK2-based installer)
PEAR: To install optional features use "pear install pear/PEAR#featurename"
******************************************************************************
WARNING! The include_path defined in the currently used php.ini does not
contain the PEAR PHP directory you just specified:
<D:PHPx64pear>
If the specified directory is also not in the include_path used by
your scripts, you will have problems getting any PEAR packages working.
Would you like to alter php.ini <D:PHPx64php.ini>? [Y/n] : y
php.ini <D:PHPx64php.ini> include_path updated.
Current include path : .;C:phppear
Configured directory : D:PHPx64pear
Currently used php.ini (guess) : D:PHPx64php.ini
Press Enter to continue:
** WARNING! Old version found at D:PHPx64, please remove it or be sure to use the new d:phpx64pear.bat command
The 'pear' command is now at your service at d:phpx64pear.bat
** The 'pear' command is not currently in your PATH, so you need to
** use 'd:phpx64pear.bat' until you have added
** 'D:PHPx64' to your PATH environment variable.
Run it without parameters to see the available actions, try 'pear list'
to see what packages are installed, or 'pear help' for help.
For more information about PEAR, see:
http://pear.php.net/faq.php
http://pear.php.net/manual/
Thanks for using go-pear!
==================================================================================
按书上操作,假设希望安装Auth包,此命令和相应的输出如下:
D:PHPx64>pear install auth
WARNING: channel "pear.php.net" has updated its protocols, use "pear channel-update pear.php.net" to update
WARNING: "pear/DB" is deprecated in favor of "pear/MDB2"
WARNING: "pear/MDB" is deprecated in favor of "pear/MDB2"
WARNING: "pear/HTTP_Client" is deprecated in favor of "pear/HTTP_Request2"
Package "vpopmail" does not have REST info xml available
Package "kadm5" does not have REST info xml available
Did not download optional dependencies: pear/Log, pear/File_Passwd, pear/Net_POP3, pear/DB, pear/MDB, pear/MDB2, pear/Auth_RADIUS, pear/Crypt_CHAP, pear/File_SMBPasswd, pear/HTTP_Client, pear/SOAP, pear/Net_Vpopmaild, pecl/vpopmail, pecl/kadm5, use --alldeps to download automatically
pear/Auth can optionally use package "pear/Log" (version >= 1.9.10)
pear/Auth can optionally use package "pear/File_Passwd" (version >= 1.1.0)
pear/Auth can optionally use package "pear/Net_POP3" (version >= 1.3.0)
pear/Auth can optionally use package "pear/DB" (version >= 1.6.0)
pear/Auth can optionally use package "pear/MDB"
pear/Auth can optionally use package "pear/MDB2" (version >= 2.0.0RC1)
pear/Auth can optionally use package "pear/Auth_RADIUS"
pear/Auth can optionally use package "pear/Crypt_CHAP" (version >= 1.0.0)
pear/Auth can optionally use package "pear/File_SMBPasswd" (version >= 1.0.0)
pear/Auth can optionally use package "pear/HTTP_Client" (version >= 1.1.0)
pear/Auth can optionally use package "pear/SOAP" (version >= 0.9.0)
pear/Auth can optionally use package "pear/Net_Vpopmaild" (version >= 0.1.0)
pear/Auth can optionally use package "pecl/vpopmail" (version >= 0.2)
pear/Auth can optionally use package "pecl/kadm5" (version >= 0.2.3)
pear/Auth can optionally use PHP extension "imap"
pear/Auth can optionally use PHP extension "saprfc"
pear/Auth can optionally use PHP extension "soap"
downloading Auth-1.6.4.tgz ...
Starting to download Auth-1.6.4.tgz (56,771 bytes)
..............done: 56,771 bytes
ERROR: failed to mkdir C:phppeardataAuthAuthFrontend
最后告诉我failed to mkdir C:phppeardataAuthAuthFrontend,然而,我的PHP装在了D盘,这该如何是好?!?有没有提供一种指定路径的方式?或者,在哪里能改?
既然说failed to mkdir,有可能是因为权限,我是从“运行”中启动的cmd,找到快捷方式后,以管理员权限运行,这次报install ok:channel://pear.php.net/Auth-1.6.4,看来是安装成功。然后,按照刚才报错的理解,应该是装到C:phppear里了,经查,确实在。那么,把C盘的pear目录复制到我的D盘PHP的pear目录。
这种方式,非常不智能。
http://pear.php.net/packages.php
这里是可安装的包
安装go-pear之后,会在php.ini中增加一行:
;***** Added by go-pear
include_path=".;D:PHPx64pear"
;*****
所以,使用require_once时,直接使用require_once("Numbers/Roman.php");即可。