让PEAR在XAMPP上运行(Windows上的Apache / MySQL堆栈)

问题描述 投票:9回答:8

我正在尝试使用XAMPP按照Laconica在我的Windows开发服务器上安装instructions provided,这是一个开源微博应用程序。

该网站找不到PEAR,并抛出以下错误:

警告:require_once(PEAR.php)[function.require-once]:无法打开流:第31行的C:\ xampplite \ htdocs \ laconica \ lib \ common.php中没有此类文件或目录

致命错误:require_once()[function.require]:在C:\ xampplite \ htdocs \ laconica \ lib \ common中打开所需的'PEAR.php'(include_path ='。; \ xampplite \ php \ pear \ PEAR')失败。第31行的PHP

  1. PEAR位于C:\xampplite\php\pear
  2. phpinfo()告诉我,包含路径是.;\xampplite\php\pear

我究竟做错了什么?为什么不包含PEAR文件夹?

php pear laconica
8个回答
22
投票

您需要修复include_path系统变量以指向正确的位置。

要修复它,请编辑php.ini文件。在该文件中,您将找到一行“include_path = ...”。 (你可以通过在页面上运行phpinfo()来找出php.ini的位置。)修复行“\xampplite\php\pear\PEAR”的部分,以读取“C:\xampplite\php\pear”。确保在生产线之前和/或之后留下分号。

重启PHP,你应该好好去。要在IIS中重新启动PHP,您可以重新启动分配给您站点的应用程序池,或者更好地重新启动IIS。


8
投票

如果您正在使用便携式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

您需要将':'替换为您的便携式驱动器当前运行的实际驱动器号。不幸的是,这需要在驱动器号发生变化的任何时候完成,但确实需要安装我需要的模块。


4
投票

我首先尝试了所有其他答案,但它们似乎都没有工作,所以我在pear配置文件中静态设置了梨路径

C:\ XAMPP \ PHP \梨\ 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
投票

根据第1点,你的PEAR路径是c:\ xampplite \ php \ pear \

但是,您的路径指向\ xampplite \ php \ pear \ PEAR

将两者放在另一个之上你可以清楚地看到一个太长了:

C:\ Xampplite文件\ PHP \梨\

\ Xampplite文件\ PHP \梨\ PEAR

您的包含路径设置为将一个PEAR深入到梨树中。 pear文件夹的PEAR子文件夹包含PEAR组件。您需要将包含路径调整一级。

(你不需要c:顺便说一下,你的路径很好,太深了)


0
投票

尝试添加驱动器号:

include_path='.;c:\xampplite\php\pear\PEAR'

还验证PEAR.php实际上是在那里,它可能在\ php \而不是:

include_path='.;c:\xampplite\php'

0
投票

这种问题的另一个问题是:避免在Windows机器上运行Unix shell(例如,Git Bash或Cygwin)中的pear。我有同样的问题,上面建议的路径修复没有帮助。切换到Windows shell,pear命令按预期工作。


0
投票

在Windows上使用Xampp shell(XAMPP控制面板中有一个“Shell”按钮)

然后

cd php\pear

去'C:\ xampp \ php \ pear'

然后键入

pear

0
投票

我解决了

avast会删除目录中的server.php,因此请禁用防病毒软件

检查laravel文件夹中的(server.php)文件

server.php

<?php

/**
 * Laravel - A PHP Framework For Web Artisans
 *
 * @package  Laravel
 * @author   Taylor Otwell <[email protected]>
 */

$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';
© www.soinside.com 2019 - 2024. All rights reserved.