#50663 [Bgs]: exec and shell_exec don't works with msginit
ID: 50663
Updated by: rasmus@php.net
Reported By: samuel dot roze at gmail dot com
Status: Bogus
Bug Type: Program Execution
Operating System: Debian 5
PHP Version: 5.3.1
New Comment:
Yes, but from the command line stderr is printed alongside stdout.
exec will only give you whatever is sent to stdout. Try redirecting
stderr. But again, this is not a PHP bug. And this is not a support
forum.
Previous Comments:
------------------------------------------------------------------------
[2010-01-05 06:11:23] samuel dot roze at gmail dot com
Well, I said that it works on cli... Actually, the "file.po" file is
created, BUT the result of $exec is still empty instead of be the
expected string! The this string is directly printed on my command line,
and isn't returned to PHP.
------------------------------------------------------------------------
[2010-01-04 23:18:48] rasmus@php.net
Sorry, but these types of issues are never PHP-related. You just
proved it yourself that when you ran PHP in a cli environment, it
worked fine. But in the Apache environment it didn't. Therefore it
has to do with something in your Apache environment. Like environment
variables, LOCALE, or maybe even a requirement for a controlling tty,
or something along those lines. Regardless, it has nothing to do with
PHP. strace the working one and compare it to the strace of the non-
working one and figure out what is going on.
------------------------------------------------------------------------
[2010-01-04 22:39:36] samuel dot roze at gmail dot com
Notice: This PHP test work when using the "php file.php" command but no
on Apache. With the command, the message
"/home/samuel/Développement/workspaces/PHP/GetTextEdit/tests/php/file.po
a été créé." is printed on the shell, nothing is sent to PHP.
------------------------------------------------------------------------
[2010-01-04 22:23:19] samuel dot roze at gmail dot com
Description:
------------
The function exec or the shell_exec function are not working with the
msginit (gettext) program.
Reproduce code:
---------------
Create an empty "/home/user/file.pot" file.
<?php
$exec = exec('msginit -i "/home/user/file.pot" -o "file.po"');
var_dump($exec);
?>
Expected result:
----------------
string(X) "/home/d-sites/myonlinessh/includes/locales/ps_AK/messages a
été créé."
and that the file.po file was created.
Actual result:
--------------
string(0) ""
and the file.po doesn't exists.
Note: there's any error and the same command, with the www-data user
(used by Apache) works in my shell!
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=50663&edit=1
Thread (6 messages)