12

I use PHP 5.3 on Debian and according to php -m 'Phar' is loaded.

But executing php pyrus.phar or php pyrus.phar config-show leads to no output at all.

What might be the problem?

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 gives me:

[...]

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

[...]

What confuses me is that libxml2 is supposed to be available by default for PHP >5.3.1 but php -m only lists libxml. Though php -i will give me:

libXML support => active
libXML Compiled Version => 2.7.8
libXML Loaded Version => 20708
libXML streams => enabled
cweiske
  • 30,033
  • 14
  • 133
  • 194
Raffael
  • 19,547
  • 15
  • 82
  • 160
  • Try `php -d error_reporting=E_ALL pyrus.phar` or other common pitfall options. Which version did you test? The latest download `2.0.0a2` seems to work for me. – mario Mar 21 '11 at 10:15
  • php -d error_report=E_ALL pyrus.phar again leads to no output at all. Though if I replace pyrus.phar in the command with pyrus2.phar it tells me Could not open input file .... so something is happening. Yes, I am trying the latest pyrus. – Raffael Mar 21 '11 at 10:19
  • I'm having the same issue you have: on Ubuntu, it works like a charm, but it doesn't work on my Debian machine. I'll see if I can find the issue. – Berry Langerak Mar 23 '11 at 10:27

1 Answers1

19

Found it :)

It seems Debian will install a PHP version with the Suhosin patch. My own output of php -v will show the following:

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, Copyright (c) 2007-2010, by SektionEins GmbH

Now, it seems Suhosin causes this issue: it doesn't allow the phar file to be executed. If you look in /var/log/user.log, you should see an entry as follows:

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)

Since we're executing this only on cli, adding the line below to /etc/php5/cli/conf.d/phar.ini should fix this issue, it did for me.

suhosin.executor.include.whitelist="phar"

Good luck :)

George
  • 2,860
  • 18
  • 31
Berry Langerak
  • 18,561
  • 4
  • 45
  • 58