在phar中挂载文件夹不起作用

时间:2014-03-12 11:00:52

标签: php mount phar

我已经创建了一个Symfony2 Web应用程序的phar,但我在缓存文件夹方面遇到了一些麻烦。

我发现我可以mount将一个外部文件/文件夹放入一个phar中。这样可以解决我的问题,但我无法在PHP网站上获得示例。

我有一个包含index.php的phar:

<?php
$configuration = simplexml_load_string(file_get_contents(
Phar::running(false) . '/config.xml'));
?>

然后我使用以下代码包含.phar:

<?php
// first set up the association between the abstract config.xml
// and the actual one on disk
Phar::mount('phar://config.xml', '/var/www/$projectname/config.xml');
// now run the application
include 'phar-archive.phar';
?>

所有文件都存在,但我收到以下错误:

  

PHP致命错误:未捕获的异常&#39; PharException&#39;带消息&#39; config.xml不是phar档案,无法挂载&#39;在/var/www/$projectname/index.php:3

我已经尝试了相对/绝对路径,更改权限但无法使其正常工作。另外,我如何将文件夹安装到phar中的工作示例将非常棒!

1 个答案:

答案 0 :(得分:1)

首先检查此地点是否存在变量$projectname(只需在echo $projectname;之前运行Phar::mount)。如果一切正常,那么改变

Phar::mount('phar://config.xml', '/var/www/$projectname/config.xml');

Phar::mount('phar://config.xml', "/var/www/{$projectname}/config.xml");

似乎变量$projectname未转换为其值,因为您使用了单引号。