让 PEAR 在 XAMPP(Windows 上的 Apache/MySQL 堆栈)上工作
题
我正在尝试安装 拉科尼卡, ,在我的 Windows 开发服务器上使用 XAMPP 的开源微博应用程序 提供的说明.
网站找不到PEAR,并抛出以下错误:
警告:require_once(PEAR.php) [function.require-once]:无法打开流:第 31 行 C:\xampplite\htdocs\laconica\lib\common.php 中没有此类文件或目录
致命错误:require_once() [函数.require]:无法在第 31 行的 C:\xampplite\htdocs\laconica\lib\common.php 中打开所需的 'PEAR.php' (include_path='.;\xampplite\php\pear\PEAR')
- 梨位于
C:\xampplite\php\pear
phpinfo()
显示包含路径是.;\xampplite\php\pear
我究竟做错了什么?为什么没有包含 PEAR 文件夹?
解决方案
你需要修复你的 include_path
系统变量指向正确的位置。
要修复它,请编辑 php.ini
文件。在该文件中,您将找到一行内容:“include_path = ...
”。(您可以通过运行找出 php.ini 的位置 phpinfo()
)修正行中“”的部分\xampplite\php\pear\PEAR
“ 读书 ”C:\xampplite\php\pear
”。确保在该行之前和/或之后保留分号。
重新启动 PHP,您应该就可以开始了。要在 IIS 中重新启动 PHP,您可以重新启动分配给您站点的应用程序池,或者更好的是,一起重新启动 IIS。
其他提示
如果您使用的是便携式 XAMPP 安装和 Windows 7,并且像我一样拥有从控制面板中删除 XAMPP shell 后的版本,那么这里建议的答案都不会对您有多大帮助,因为软件包不会安装。
问题出在配置文件上。经过多次尝试和错误,我找到了正确的设置。
只需在 \xampp\php 目录中拉出一个命令窗口并运行
pear config-set doc_dir :\xampp\php\docs\PEAR
pear config-set cfg_dir :\xampp\php\cfg
pear config-set data_dir :\xampp\php\data\PEAR
pear config-set test_dir :\xampp\php\tests
pear config-set www_dir :\xampp\php\www
您需要将“:”替换为便携式驱动器当前运行的实际驱动器号。不幸的是,只要驱动器号发生变化,就需要执行此操作,但它确实安装了我需要的模块。
我首先尝试了所有其他答案,但似乎都不起作用,所以我在 pear 配置文件中静态设置了 pear 路径
C:\xampp\php\pear\Config.php
找到这段代码:
if (!defined('PEAR_INSTALL_DIR') || !PEAR_INSTALL_DIR) {
$PEAR_INSTALL_DIR = PHP_LIBDIR . DIRECTORY_SEPARATOR . 'pear';
}
else {
$PEAR_INSTALL_DIR = PEAR_INSTALL_DIR;
}
并将其替换为:
$PEAR_INSTALL_DIR = "C:\\xampp\\php\\pear";
我重新启动了apache并使用了命令:
pear config-all
确保所有路径不再以 C:\php\pear 开头
根据第 1 点,您的 PEAR 路径是 c:\xampplite\php\pear\
但是,您的路径指向 \xampplite\php\pear\PEAR
将两个放在另一个之上,您可以清楚地看到一个太长:
c:\xampplite\php\pear\
\xampplite\php\pear\PEAR
您的包含路径设置为将一个 PEAR 放入梨树中太深。pear 文件夹的 PEAR 子文件夹包含 PEAR 组件。您需要将包含路径向上调整一级。
(你不需要 c:顺便说一句,你的路径本来就很好,只是太深了)
尝试添加驱动器盘符:
include_path='.;c:\xampplite\php\pear\PEAR'
还要验证 PEAR.php 是否确实存在,它可能位于 \php\ 中:
include_path='.;c:\xampplite\php'
此类问题的另一个陷阱:避免在 Windows 机器上的 Unix shell(例如 Git Bash 或 Cygwin)中运行 pear。我遇到了同样的问题,上面建议的路径修复没有帮助。切换到 Windows shell,pear 命令按预期工作。
在 Windows 上使用 Xampp外壳 (XAMPP 控制面板中有一个“Shell”按钮)
然后
cd php\pear
转到“C:\xampp\php\pear”
然后输入
pear
我解决了
AVAST在您的目录中删除您的server.php,因此请禁用防病毒软件
检查 laravel 文件夹中的 (server.php) 文件
服务器.php
<?php
/**
* Laravel - A PHP Framework For Web Artisans
*
* @package Laravel
* @author Taylor Otwell <taylor@laravel.com>
*/
$uri = urldecode(
parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH)
);
// This file allows us to emulate Apache's "mod_rewrite" functionality from the
// built-in PHP web server. This provides a convenient way to test a Laravel
// application without having installed a "real" web server software here.
if ($uri !== '/' && file_exists(__DIR__.'/public'.$uri)) {
return false;
}
require_once __DIR__.'/public/index.php';