【问题标题】:Getting PEAR to work on XAMPP (Apache/MySQL stack on Windows)让 PEAR 在 XAMPP 上工作(Windows 上的 Apache/MySQL 堆栈)
【发布时间】:2010-09-08 22:12:44
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

标签: php pear laconica


【解决方案1】:

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

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

重新启动 PHP,您应该一切顺利。要在 IIS 中重新启动 PHP,您可以重新启动分配给您的站点的应用程序池,或者更好的是,一起重新启动 IIS。

【讨论】:

  • PHP.ini (remove semi-colon)include_path = ".;F:\xampp\php\pear" 这对我有用。
  • @VigneshChinnaiyan 这对我也有用。现在自动完成工作。 :)
  • @VigneshChinnaiyan,我的 php.ini 文件中没有分号
  • 我的错误是 require_once(): Failed opening required '../../vendor/autoload.php' (include_path='C:\xampp\php\PEAR') in C:\xampp \htdocs\Zoo\php\googleSignInAPI\googleSignInConfig.php 在第 3 行。我的包含路径显示为 C:\xampp\php\PEAR。我该怎么办?
【解决方案2】:

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

您需要将“:”替换为当前运行便携式驱动器的实际驱动器号。不幸的是,只要驱动器号发生变化,就需要这样做,但它确实安装了我需要的模块。

【讨论】:

    【解决方案3】:

    我首先尝试了所有其他答案,但似乎没有一个有效,所以我在 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 开头

    【讨论】:

      【解决方案4】:

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

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

      把两个放在一个上面你可以清楚地看到一个太长了:

      c:\xampplite\php\pear\

      \xampplite\php\pear\梨

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

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

      【讨论】:

        【解决方案5】:

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

        然后

        cd php\pear
        

        去'C:\xampp\php\pear'

        然后输入

        pear
        

        【讨论】:

          【解决方案6】:

          我修好了

          avast 删除您目录中的 server.php 所以禁用杀毒软件

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

          server.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';

          【讨论】:

            【解决方案7】:

            尝试添加驱动器号:

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

            还要验证 PEAR.php 确实存在,它可能在 \php\ 中:

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

            【讨论】:

              【解决方案8】:

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

              【讨论】:

                猜你喜欢
                • 2013-12-11
                • 2012-10-11
                • 2012-12-27
                • 2010-12-13
                • 1970-01-01
                • 2014-07-04
                • 1970-01-01
                • 2013-10-30
                相关资源
                最近更新 更多