ID: 50663 User updated by: samuel dot roze at gmail dot com 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:
Okay. In fact it apears that it isn't a PHP bug. I'm sorry. Regards, Previous Comments: ------------------------------------------------------------------------ [2010-01-05 06:49:42] ras...@php.net 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. ------------------------------------------------------------------------ [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] ras...@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