关于php:让PEAR在XAMPP上工作(Windows上的Apache / MySQL堆栈)

关于php:让PEAR在XAMPP上工作(Windows上的Apache / MySQL堆栈)

Getting PEAR to work on XAMPP (Apache/MySQL stack on Windows)

我正在按照提供的说明,使用XAMPP在Windows开发服务器上安装Laconica,这是一个开放源代码微博应用程序。

该网站找不到PEAR,并引发以下错误:

Warning: require_once(PEAR.php) [function.require-once]: failed to open stream: No such file or directory in C:\\xampplite\\htdocs\\laconica\\lib\\common.php on line 31

Fatal error: require_once() [function.require]: Failed opening required 'PEAR.php' (include_path='.;\\xampplite\\php\\pear\\PEAR') in C:\\xampplite\\htdocs\\laconica\\lib\\common.php on line 31

  • PEAR位于C:\\xampplite\\php\\pear
  • phpinfo()向我显示包含路径为.;\\xampplite\\php\\pear
  • 我究竟做错了什么? 为什么不包含PEAR文件夹?


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

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

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


    如果您使用的是便携式XAMPP安装和Windows 7,并且像我一样,则从控制面板中删除了XAMPP shell之后,便有了该版本,此处没有建议的答案将对您有好处,因为这些软件包将不会安装。

    问题出在配置文件上。经过大量的尝试和错误后,我发现正确的设置。

    只需在\ xampp \ php目录中拉出一个命令窗口并运行

    1
    2
    3
    4
    5
    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

    您将要用便携式驱动器当前正在运行的实际驱动器号替换":"。不幸的是,只要此驱动器号发生变化,都需要执行此操作,但是它确实安装了我需要的模块。


    我首先尝试了所有其他答案,但它们似乎都不起作用,因此我在梨配置文件中静态设置了梨路径。

    C:\ xampp \ php \ pear \ Config.php

    找到此代码:

    1
    2
    3
    4
    5
    6
    if (!defined('PEAR_INSTALL_DIR') || !PEAR_INSTALL_DIR) {
        $PEAR_INSTALL_DIR = PHP_LIBDIR . DIRECTORY_SEPARATOR . 'pear';
    }
    else {
        $PEAR_INSTALL_DIR = PEAR_INSTALL_DIR;
    }

    并替换为:

    1
    $PEAR_INSTALL_DIR ="C:\\\\xampp\\\\php\\\\pear";

    我重新启动了apache并使用了以下命令:

    1
    pear config-all

    确保所有路径不再以C:\ php \ pear开头


    在Windows上,请使用Xampp Shell(XAMPP控制面板中有一个" Shell"按钮)

    然后

    1
    cd php\\pear

    转到" C:\ xampp \ php \ pear"

    然后输入

    1
    pear

    以每1点为例,您的PEAR路径为c:\ xampplite \ php \ pear \

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

    将两个放在另一个之上,您可以清楚地看到一个太长:

    c:\ xampplite \ php \ pear \

    \ xampplite \ php \ pear \ PEAR

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

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


    我解决了

    avast删除目录中的server.php
    所以禁用防病毒

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

    server.php

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <?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';


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


    尝试添加驱动器号:

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

    还请验证PEAR.php是否确实存在,它可能位于\ php \中:

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


    推荐阅读

      linux重新服务命令?

      linux重新服务命令?,服务,系统,网络,标准,工作,设备,命令,名称,信息,网络服

      linux安装执行命令?

      linux安装执行命令?,系统,软件,网络,密码,官方网站,在线,工作,盘中,电脑,第

      linux虚拟机命令安装?

      linux虚拟机命令安装?,系统,软件,工具,虚拟机,网络,状态,操作系统,命令,文

      linux安装执行命令?

      linux安装执行命令?,系统,软件,网络,密码,官方网站,在线,工作,盘中,电脑,第

      linux服务器基本命令?

      linux服务器基本命令?,地址,系统,设备,网络,工作,标准,信息,电脑,命令,密码,l

      linux微信安装命令?

      linux微信安装命令?,工具,手机,系统,认证,平台,管理,联系人,管理系统,电脑,

      linux安装强制命令行?

      linux安装强制命令行?,机器人,软件,工作,工业,系统,地址,电脑,生产,设计,状

      linux服务器下载命令?

      linux服务器下载命令?,服务,密码,系统,档案,工具,网络,公共,百度,地址,认证,l

      linux命令怎么停服务?

      linux命令怎么停服务?,服务,系统,状态,代码,跨行,软件,情况,第一,名称,命令,l

      怎么给linux安装命令?

      怎么给linux安装命令?,软件,系统,在线,名称,官网,发行,命令,检测,简介,信息,

      linux命令行安装应用?

      linux命令行安装应用?,软件,系统,名称,官网,在线,管理,工作,信息,命令,目录,l

      linux服务端退出命令?

      linux服务端退出命令?,档案,命令,环境,异常,标准,网络,模式,终端,编辑,文件,l

      linux安装浏览器命令?

      linux安装浏览器命令?,官网,系统,平台,网站,管理,设备,咨询,工具,官方网站,

      linux中启动服务命令?

      linux中启动服务命令?,服务,系统,命令,信息,工作,设备,网络,标准,名称,密码,l

      linux安装sz命令?

      linux安装sz命令?,系统,软件,标准,服务,工作,工具,命令,位置,平台,百度,如何

      linux安装纯命令行?

      linux安装纯命令行?,软件,系统,发行,环境,基础,工作,工具,公司,终端,命令,如

      linux服务器常用命令?

      linux服务器常用命令?,工作,系统,地址,信息,命令,目录,管理,标准,设备,功能,

      linux安装npm命令?

      linux安装npm命令?,证书,最新,档案,代理,信息,位置,系统,工程,命令,版本,ngin

      linux筛选服务命令?

      linux筛选服务命令?,服务,系统,状态,软件,环境,主体,技术,号码,发行,名称,查

      linux什么命令安装c?

      linux什么命令安装c?,系统,管理,工作,软件,在线,名字,传播,代码,工具,信息,li