微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

‘php pyrus.phar’不会被执行

我在Debian上使用 PHP 5.3,并根据PHP -m’Phar’加载.

但是执行PHP pyrus.phar或PHP pyrus.phar config-show根本没有输出.

可能是什么问题?

debian:~# PHP -v
PHP 5.3.5-1 with Suhosin-Patch (cli) (built: Feb 19 2011 01:57:59)
copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0,copyright (c) 1998-2010 Zend Technologies
    with Xdebug v2.1.0,copyright (c) 2002-2010,by Derick Rethans
    with Suhosin v0.9.32.1,copyright (c) 2007-2010,by SektionEins GmbH

PHP -i给我:

[...]

Phar

Phar: PHP Archive support => enabled
Phar EXT version => 2.0.1
Phar API version => 1.1.1
SVN revision => $Revision: 305584 $
Phar-based phar archives => enabled
Tar-based phar archives => enabled
ZIP-based phar archives => enabled
gzip compression => enabled
bzip2 compression => enabled
OpenSSL support => enabled


Phar based on pear/PHP_Archive,original concept by Davey Shafik.
Phar fully realized by Gregory Beaver and marcus Boerger.
Portions of tar implementation copyright (c) 2003-2009 Tim Kientzle.
Directive => Local Value => Master Value
phar.cache_list => no value => no value
phar.readonly => On => On
phar.require_hash => On => On

[...]

令我困惑的是libxml2认可用于PHP> 5.3.1,但PHP -m仅列出libxml.
虽然PHP -i会给我:

libXML support => active
libXML Compiled Version => 2.7.8
libXML Loaded Version => 20708
libXML streams => enabled
找到了 :)

似乎Debian将使用Suhosin补丁安装PHP版本.我自己的PHP -v输出显示如下:

web01:/home/Berry# PHP -v
PHP 5.3.5-1 with Suhosin-Patch (cli) (built: Feb 19 2011 01:57:59) 
copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0,copyright (c) 1998-2010 Zend Technologies
    with Suhosin v0.9.32.1,by SektionEins GmbH

现在,似乎Suhosin导致这个问题:它不允许执行phar文件.如果你看/var/log/user.log,你应该看到一个条目如下:

web01:/home/Berry# tail /var/log/user.log | grep pyrus
Mar 23 11:27:50 web01 suhosin[17463]: ALERT - Include filename ('phar:///home/Berry/pyrus.phar/PEAR2_Pyrus-2.0.0a2/PHP/PEAR2/Pyrus/ScriptFrontend/Commands.PHP') is an URL that is not allowed (attacker 'REMOTE_ADDR not set',file '/home/Berry/pyrus.phar',line 40)

由于我们仅在cli上执行此操作,所以将下面的行添加到/etc/PHP5/cli/conf.d/phar.ini应该可以解决这个问题,它对我来说是这样的.

suhosin.executor.include.whitelist="phar"

祝你好运 :)

原文地址:https://www.jb51.cc/php/139876.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐