Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php sudo:pear:未找到命令_Php_Macos_Pear - Fatal编程技术网

Php sudo:pear:未找到命令

Php sudo:pear:未找到命令,php,macos,pear,Php,Macos,Pear,我有雪豹,它显然预装了php和pear。我启用了php,但找不到任何PEAR的迹象。我已经安装了它,现在phpinfo()显示了它的安装 include_path .:/usr/lib/php/share/pear 还是当我输入任何pear命令时 $ sudo pear 我得到一个错误:sudo:pear:command未找到 我遗漏了什么?给这只猫剥皮的方法有很多,但如果您已经安装了定位,我会键入以下内容(您可能会这样做): 这应该列出一个或多个东西,其中一个看起来像通往梨的路径。让我们假

我有雪豹,它显然预装了php和pear。我启用了php,但找不到任何PEAR的迹象。我已经安装了它,现在phpinfo()显示了它的安装

include_path .:/usr/lib/php/share/pear
还是当我输入任何pear命令时

$ sudo pear
我得到一个错误:sudo:pear:command未找到


我遗漏了什么?

给这只猫剥皮的方法有很多,但如果您已经安装了定位,我会键入以下内容(您可能会这样做):

这应该列出一个或多个东西,其中一个看起来像通往梨的路径。让我们假设它说的是类似于
/usr/local/bin/pear
。那么您的下一个命令是:

$ sudo /usr/local/bin/pear
我想到两个警告:

  • locate可能会列出多个可执行的pear文件。如果是这样的话,根据您使用的PHP选择正确的一个可能很重要
  • 您可能希望将
    pear
    所在的目录添加到
    PATH
    环境变量中

  • 您需要更新系统$PATH变量,以便pear命令能够工作。使用以下命令编辑bash概要文件(如果您有textmate):

    并在这一行中添加:

    export PATH=/usr/local/pear/bin:$PATH
    
    在那之后重新加载你的终端,它现在应该可以工作了

    编辑:
    谢谢你强调我的错误,特罗特。我已经更改了路径,以确定bin的大致位置(取决于您选择安装它的位置)

    如果您直接在
    PHP
    上安装了pear(例如
    MAMP
    ),您应该将
    pear
    复制到
    /usr/local/bin

    cp /php5.3.2/pear /usr/local/bin/pear
    

    然后导出var
    PATH
    ,并在shell中使用“
    pear
    ”进行测试。

    我遇到了类似的问题,需要更新sudoers中的secure\u PATH,因为它覆盖了用户的$PATH

    检查sudo上的安全路径

    [root@host ~]# sudo -V | grep 'Value to override'
    Value to override user's $PATH with: /sbin:/bin:/usr/sbin:/usr/bin
    
    如果
    $PATH
    被覆盖,我们将
    visudo
    并编辑
    /etc/sudoers

    Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin
    

    所以我确实有textmate,但当然我没有找到mate命令。我添加了.bash_概要文件的路径,但它是一个新文件,因此可能我在错误的位置添加了它,因为它仍然不起作用。我相当确定/usr/lib/php/share/pear不是实际命令行二进制文件的路径,所以我认为这不会起作用。include_path是包含在include()和require()中的PHP文件的位置。如果发现命令行二进制文件隐藏在同一目录中,那将是非常令人惊讶和值得的。。。我知道路径是/usr/lib/php/share/pear,但奇怪的是,即使我去了那个目录,我仍然无法运行pear,那不是安装pear命令行二进制文件的目录。在终端提示符中键入
    locate bin/pear
    时会发生什么情况?Locate默认安装在我见过的每个Mac OS X安装上,所以我很惊讶看到你说它没有安装。如果确实没有安装,请尝试
    where is pear
    。如果所有其他操作都失败,您可以尝试
    sudo/usr/local/bin/pear
    sudo/usr/local/php5/bin/pear
    。我在Mac OS X上看到过pear出现在两个位置。如果你真的不知道它在哪里,但确定它在哪里,并且你可以非常耐心地尝试一些彻底但效率低下的方法,比如:
    sudo find/-name pear
    ,但这可能需要很长时间才能运行。我准备至少给它几个小时。我怀疑,那只会是真正绝望的时刻。(在生产服务器上运行可能不是个好主意。)所以locate说:locate数据库(/var/db/locate.database)不存在。酷!因此,现在您可以在想要使用它时始终键入
    sudo/usr/lib/php/bin/pear
    ,或者您可以按照@hayashi-kei的指示,但使用此行添加:
    export PATH=/usr/lib/php/bin:$PATH
    如果先发布此问题,可能会出现重复的情况?
    [root@host ~]# sudo -V | grep 'Value to override'
    Value to override user's $PATH with: /sbin:/bin:/usr/sbin:/usr/bin
    
    Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin