Search code examples
phpsshexecute

Force PHP to outline errors using command line


I'm trying to debug a PHP application that is running from the command line. I want to use a cronjob later on to invoke the module every hour.

For debugging I execute the PHP script like this:

php -c /etc/php5/apache2/php.ini /var/www/module/test/autostart/start.php 12 &

(forget about the „12“ - it's a parameter for the script)

Now basically I get this output via SSH:

[2] 10181
[1] Done                php -c /etc/php5/apache2/php.ini /var/www/module/test/autostart/start.php 12 

I have no idea what I have changed but a few weeks ago I got the actual php errors directly on the screen. That's what I expect. But I don't know how to force PHP to output me the result directly.


Solution

  • When you use & at the end, command is started in background. You can see background processes by command jobs. When you try it, you can see php process in 'stopped' state.

    Problem is that php is waiting for input. It is caused by this php extension:

    readline php extension

    Run it this way:

    php -c /etc/php5/apache2/php.ini /var/www/module/test/autostart/start.php 12 < /dev/null &
    

    or disable that extension.