1

我需要在没有外部网络访问权限的服务器上安装 PEAR。php 文件夹中没有 go-pear.bat,即使它有 go-pear.bat 我认为它需要访问网络。

我从 PEAR 网站的本地副本中查看了安装 PEAR。但它需要已经安装 PEAR 才能工作。

那么你们中的任何人都知道如何在不访问互联网的情况下安装 PEAR 吗?

4

3 回答 3

2

您不需要在虚拟主机上安装 PEAR,只需在本地计算机上即可。两种主要方法是

  • 手动跟踪您的依赖关系,并自己将所有适当的文件复制到服务器
  • 在本地机器上安装 pear 后,执行pear install -R/my/root_dir -a PEAR. 这会将PEAR包和所有依赖项安装到指定的根目录。将此安装复制到您的虚拟主机。

我认为也可以使用 pear 通过 FTP 管理安装。我从未尝试过。

您还应该看看“pear help”和“pear help install”。

于 2009-10-21T07:38:28.043 回答
1

如果您在 Windows 上并拥有 PHP 安装程序,则有一种方法可以做到这一点。

在 PHP 安装过程中,您可以在选择 PHP 安装组件时选择扩展菜单下的 PEAR 选项以安装 PEAR 包。

如果您已经安装了 PHP,您只需单击安装程序选择“修改”,然后选择正确的选项。

http://lh4.ggpht.com/_SDci0Pf3tzU/SgBXLClDWEI/AAAAAAAAEuI/TgnBA_SEHFs/s400/pear%20install.jpg

于 2009-10-21T12:12:40.827 回答
1

我写了一篇关于这个主题的文章:

http://christian.roy.name/blog/install-pear-without-network-no-internet-accessoffline

它还允许您使用 pear 命令。

创建临时文件夹,稍后我将使用它。

mkdir pear-temp
cd pear-temp

将所有 PEAR 包上传到该临时文件夹(使用 SFTP、FTP 等)。

如果您使用 USB 密钥,那么您可以像这样复制它们:
cp /mnt/usb/*.tgz ./

将核心包提取到单独的文件夹中。

mkdir lib
tar x -C lib -zf PEAR-*.tgz
tar x -C lib -zf Console_Getopt-*.tgz
tar x -C lib -zf Archive_Tar-*.tgz
tar x -C lib -zf Structures_Graph-*.tgz

这个 bash 功能是能够设置由冒号连接的 include_path。

function join() {
    local IFS=$1
    shift
    echo "$*"
}

pear 需要输出缓冲,并且需要从 lib 文件夹中加载所有核心包。

PHPOPT="-d output_buffering=1 -d include_path=.:$(join ':' lib/*)"

首先我们设置我们的配置文件。

php $PHPOPT lib/PEAR-*/scripts/pearcmd.php config-create $HOME/ $HOME/.pearrc

现在我们安装所有的包。确保您也拥有所有必需的依赖项。

php $PHPOPT lib/PEAR-*/scripts/pearcmd.php install -o -O *.tgz

清理

cd ..
rm -Rf pear-temp

把梨放在你的路上:

PATH="$PATH:$HOME/pear"

如果您希望这是永久的,请编辑您的 .profile 或 .bashrc。

也编辑您的 php.ini 或使用 set_include_path() 函数添加它,无论哪个:)

喝酒成功!

于 2012-03-09T19:38:11.983 回答