问题标签 [phar]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1548 浏览

php - 将 PHAR 存档标记为 PHP 可执行文件

我正在尝试将我的 PHAR 存档标记为 PHP我不知道正确的术语),以便我可以从 cli 中使用它而无需任何php部分。因此,php /path/to/my/archive.phar ARGUMENTS_HERE我可以将它移到/usr/local/bin并从任何地方调用它,而不是打电话archive。(就像 PHPUnit 或 Composer 一样)。

如果我是对的,要做到这一点,我只需要#!/usr/bin/env php在我的 PHAR 存档文件之上添加?

我怎么做?我试图在我的构建脚本中模仿作曲家编译器,但它只是使 PHP_CLI 崩溃(分段错误)

如您所见,我只需要存根即可运行/lib/app.php文件,仅此而已。

预先编译的 PHAR

当然,我尝试的第一件事是将其手动添加到我的存档中,但它看起来会损坏它:

请注意,在我手动修改之前,完全相同的存档可以工作。(但php /path/to/arch当然需要)

0 投票
1 回答
1212 浏览

php - 如何以兼容的方式包含 PHP 文件以使用和不使用 Phar 进行打包?

给定一个具有以下结构的 PHP 应用程序:

我正在尝试使用相同的源库同时涵盖以下情况:

  1. No Phar:能够按原样使用应用程序,DocumentRoot指向web/并将所有请求重定向到index.php
  2. Minimal Phar:能够生成仅包含web/index.php的 phar并将保存为:web/application-minimal.phar
  3. Full Phar:能够生成包含lib目录和web/index.php内容的 phar ,并将保存为:web/application-full.phar

对于 phar 文件,所有请求都将被重定向到 phar 文件本身。

是否可以在不必更改 *require_once* 的情况下实现所有这些用例?

我尝试了不同的方法(相对/绝对)来包含来自 *web/index.php" 的lib/mylib.php,以及尝试使用Phar::mount()的一些技巧。我的尝试都没有成功。

0 投票
1 回答
952 浏览

php - 如何更新使用 phar.cache_list 指令缓存的 phar?

我将我的 phar 添加到了cache_list指令中,php.ini并且缓存效果很好。几天后我更新了 phar 现在我收到以下错误:

如果我注释掉该cache_list指令,phar 可以正常工作并加载,但现在我无法再缓存它。这让我觉得 PHP 正在查看crc32旧文件。

我已经尝试重新启动 apache 我不知道如何“刷新”缓存,或者这是否是问题所在。

0 投票
1 回答
901 浏览

php - 如何从 PHP 源代码中获取可执行的 phar 命令?

我希望能够使用本手册中phar所述的命令行工具(在 Debian Linux 上

到目前为止我所做的:

  1. 下载PHP PHAR 源文件夹

  2. 将其移至/usr/share/

  3. 更改了phar.phpfrom #!/usr/local/bin/phpto的第一行#!/usr/bin/php(PHP 符号链接的路径 -> 到 PHP 可执行文件);

  4. 创建了一个符号链接phar/usr/share/phar/phar.php.

现在phar help返回一个错误:

我究竟做错了什么?如何让它工作?

谢谢

0 投票
2 回答
22326 浏览

linux - 运行 make 时出错:缺少分隔符(您的意思是 TAB 而不是 8 个空格?)

我正在尝试phar在我的 Debian VM 上安装 PHP 命令行工具,这里如何描述:

(1) 下载php-src,我假设它在/tmp/php/src

(2) 制作目录 /tmp/phar

(3) 另存为/tmp/php-src/ext/phar/Makefile

(4) cd /tmp/php-src/ext/phar

(5) 运行sudo make

现在在第 5 步之后我得到一个错误:

据我所知,此错误消息可能有两个可能的原因:

  1. make 文件中的选项卡。我已经用od -t c Makefile. 该文件不包含制表符 ( \t)。

  2. 它可能是 v3.81 的错误make需要补丁或升级到(但不稳定:“警告:此软件包来自实验发行版。 ”)v3.82。我已经下载并安装(dpkg -i make_3.82-1_amd64.deb)它,但错误仍然存​​在。

是什么导致错误?如何避免?

谢谢

0 投票
1 回答
1133 浏览

php - 无法从 Zend Framework 2 的 ZFTool 创建 Phar

ZFTool 的 Phar 存档可以从 GitHub下载或手动创建

当我尝试自己编译 Phar 时,出现此错误:

它找不到文件夹/lib/ZendFramework/ZFTool/vendor...

难道我做错了什么?

0 投票
1 回答
676 浏览

php - 密码库致命错误

我正在使用PasswordLib。我在 wamp 上运行我的项目,一切正常,但是当我将它上传到我的主机时,我收到了这个错误:

致命错误:未捕获的异常 'PharException' 带有消息 '__HALT_COMPILER(); 必须在 /data/web/virtuals/9784/virtual/www/subdom/roids/_libs/PasswordLib.phar:21 的 phar' 中声明 堆栈跟踪:#0 /data/web/virtuals/9784/virtual/www/ subdom/roids/_libs/PasswordLib.phar(21): Phar::mapPhar('PasswordLib.pha...') #1 /data/web/virtuals/9784/virtual/www/subdom/roids/index.php( 7): require_once('/data/web/virtu...') #2 {main} 在第 21 行的 /data/web/virtuals/9784/virtual/www/subdom/roids/_libs/PasswordLib.phar 中抛出

致命错误:未捕获的异常 'PharException' 带有消息 'phar "/data/web/virtuals/9784/virtual/www/subdom/roids/_libs/PasswordLib.phar" SHA1 签名无法验证:/data/ 中的签名损坏web/virtuals/9784/virtual/www/subdom/roids/_libs/PasswordLib.phar:21 堆栈跟踪:#0 /data/web/virtuals/9784/virtual/www/subdom/roids/_libs/PasswordLib.phar(21 ): Phar::mapPhar('PasswordLib.pha...') #1 /data/web/virtuals/9784/virtual/www/subdom/roids/index.php(7): require_once('/data/web/ virtu...') #2 {main} 在第 21 行抛出 /data/web/virtuals/9784/virtual/www/subdom/roids/_libs/PasswordLib.phar

你有什么想法可能是什么问题?

谢谢

0 投票
0 回答
929 浏览

php - 使用 phar 安装 aws php sdk

我正在尝试使用适用于 PHP 2 的 AWS 开发工具包在 S3 上创建文件。

通过 Phar 安装:

http://docs.aws.amazon.com/awssdkdocsphp2/latest/gettingstartedguide/sdk-php2-installing-the-sdk.html#sdk-php2-installing-via-phar

我将以下行添加到“/etc/php5/conf.d/suhosin.ini”:

我重新启动了 apache,并且 aws.phar 包含按预期工作。但是,在不进行任何更改的情况下,在进一步尝试时,服务器似乎没有发送响应,Chrome 显示“未收到数据”错误。

每次我重新启动 apache 它都会返回响应,但不会在后续加载时返回。

知道是什么原因造成的吗?

使用 Laravel、PHP 5.3.2 和 Ubuntu。

更新 无论有没有 suhosin.ini 编辑,似乎都会发生同样的事情。

即使服务器没有向 Web 浏览器返回响应,代码似乎也可以正常运行,因为它在 S3 上创建了一个文件。

0 投票
1 回答
14133 浏览

php - 为简单的应用程序生成 PHAR

我正在尝试使用 Symfony2 控制台库构建 CLI 工具。我有一些基本的工作,现在我想把它打包成一个 phar。我已经阅读了一些示例,但我看到的示例非常简单(3 个文件,没有命名空间等)。

在我的src/目录中,我有以下内容:

在此处输入图像描述

上面src/我有一个console.php我执行来运行应用程序。我也有一个vendors/目录,因为我正在使用 composer 安装依赖项。console.php很简单:

根据我对构建 phar 的了解(很少),我认为我需要将其console.php作为存根和其他所有内容src/以及我在vendors/.

查看phpmaster.com上的示例代码,他们使用 手动指定要包含在 phar 中的每个文件file_get_contents,但我需要维护我的目录结构以使用作曲家的自动加载器并保持 PSR-0 目录结构。

有没有一种简单的方法来创建 .phar 并在其中维护我的目录结构,以便我仍然可以使用 composer 的自动加载器?

0 投票
1 回答
2908 浏览

php - 如何在像 xampp 这样的网络服务器上部署 phar 文件

我正在使用 maven 和 php 并将我的代码打包到 phar 存档并将其部署在 xampp 上。在java中,我们为应用服务器的webapp文件夹复制war文件,如tomcat。我如何在 php 中做到这一点?我只是去把 .phar 放在 xampp/htdocs 文件夹中吗?

谢谢