Bug #55244
Can't use Flow with PHP > 5.4
Status: | Closed | Start date: | 2014-01-22 | |
---|---|---|---|---|
Priority: | Won't have this time | Due date: | ||
Assigned To: | Samuel Mehrbrodt | % Done: | 0% |
|
Category: | - | |||
Target version: | - | |||
Affected Flow version: | (any) |
Description
I have PHP 5.5.3 here and can't run Flow, get the following message:
Fatal error: Directive 'allow_call_time_pass_reference' is no longer available in PHP in Unknown on line 0
TYPO3\Flow\Core\Booting\Exception\SubProcessException thrown in file Packages/Framework/TYPO3.Flow/Classes/TYPO3/Flow/Core/Booting/Scripts.php in line 531.
The directive 'allow_call_time_pass_reference' was deprecated since PHP 5.0 and removed in 5.4: http://www.php.net/manual/de/ini.core.php#ini.allow-call-time-pass-reference
I'm running FLOW 2.1 (included in NEOS).
History
#1 Updated by Adrian Föder over 1 year ago
- Status changed from New to Needs Feedback
- Assigned To set to Samuel Mehrbrodt
- Priority changed from Should have to Won't have this time
Samuel, this seems to not be a Flow issue; I would guess your CLI's INI is a different version and contains this unallowed directive.
Could you check, on your console, what php -v
says?
#2 Updated by Samuel Mehrbrodt over 1 year ago
$ php -v
PHP 5.5.3-1ubuntu2.1 (cli) (built: Dec 12 2013 04:24:35)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2013 Zend Technologies
with Zend OPcache v7.0.3-dev, Copyright (c) 1999-2013, by Zend Technologies
#3 Updated by Adrian Föder over 1 year ago
thanks; could you then please update/set your Configuration/Settings.yaml file to a phpBinaryPathAndFilename value pointing to your PHP (5) binary? I still fear Flow picks up an old binary.
In this regard: do you maybe have another PHP (4, maybe) installed somewhere on the same system?
Thanks,
Adrian
#4 Updated by Samuel Mehrbrodt over 1 year ago
I don't have an older PHP version, but I now manually entered '/usr/bin/php5' in the phpBinaryPathAndFilename and renamed the Settings.yaml.example to Settings.yaml.
I think it's using the PHP 5.5. version. I edited the main index.php file to include phpinfo() at the very beginning and the version it showed was also 5.5.3.
However, the problem persists.
#5 Updated by Adrian Föder over 1 year ago
I edited the main index.php
...which is? The Web/index.php? That's not the issue here, because the problem occurs in a so called sub request, i.e. a PHP request Flow runs on its own.
It would be great if you could debug, for example, \TYPO3\Flow\Core\Booting\Scripts::executeCommand(), by echo'ing the $command for example in order to find out more...
#6 Updated by Samuel Mehrbrodt over 1 year ago
$command: "FLOW_ROOTPATH='/var/www/neos/' FLOW_CONTEXT='Development' XDEBUG_CONFIG='idekey=FLOW_SUBREQUEST remote_port=9001' "/usr/bin/php" -c '/etc/php5/apache2/php.ini' '/var/www/neos/Packages/Framework/TYPO3.Flow/Classes/TYPO3/Flow/Core/../../../../Scripts/flow.php' 'typo3.flow:core:compile'"
$result: int(1)
$output: array(2) {
[0]=>
string(0) ""
[1]=>
string(106) "Fatal error: Directive 'allow_call_time_pass_reference' is no longer available in PHP in Unknown on line 0"
}
$settings: http://pastie.org/8656920
$ /usr/bin/php -v
PHP 5.5.3-1ubuntu2.1 (cli) (built: Dec 12 2013 04:24:35)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2013 Zend Technologies
with Zend OPcache v7.0.3-dev, Copyright (c) 1999-2013, by Zend Technologies
#7 Updated by Samuel Mehrbrodt over 1 year ago
Oh my dear... see my last line in my php.ini:
allow_call_time_pass_reference = On
Sorry for the hassle, my fault. Now it works...
#8 Updated by Adrian Föder over 1 year ago
- Status changed from Needs Feedback to Closed
hah, and to me it's a typical problem of "went the wrong way": since that diverging PHP version for the subprocess is more common I didn't even tend to ask if your ini itself maybe contained the incorrect setting :)