Hello,
I’m running Ubuntu 14.04. I would like to run the lime command from a PHP script using the shell_exec function. The command is to build a swf:
/usr/bin/lime build project.xml flash
The command works if I run it in a terminal, everything is properly set up on my system. But when I run it from my PHP script, I get this output:
This is the first time you are runing haxelib. Please run `haxelib setup` first
I guess this is because the haxelib path is not set up for the user www-data who executes the PHP script so I tried to add these environment variables in my /etc/profile file:
HAXEPATH=/usr/lib/haxe
export HAXEPATH
HAXELIB_PATH=/usr/lib/haxe/lib
export HAXELIB_PATH
But unfortunately, this still does not work, I got the same error output. Can someone help me on that?
Thanks!
It looks like haxelib is searching for the following:
$HOME/.haxelib
Perhaps you could set the “HOME” environment variable to trick it into working. This is likely occurring because the PHP script is being executed as a different user, another option would be to copy .haxelib from your user directory to the user directory of what PHP uses (if it exists). Long-term, though, this would be a great thing to be fixed in haxelib ![:confused: :confused:](//community.openfl.org/images/emoji/twitter/confused.png?v=5)
Thanks for your reply.
You are right. Setting the HOME env variable makes it work:
PHP Script:
<?php
putenv("HOME=/home/username");
$output = shell_exec('/usr/bin/lime build Path/To/project.xml flash');
According to the PHP doc, the env variables set by putenv are restored to their initial state when the script is done. So I guess there is nothing else to worry about except if an other process makes use of the $HOME var at the same moment.
It’s not clean but that should do the work for me.
Thanks again!
EDIT
A better way to do that in my opinion is to copy the .haxelib file to the /var/www directory the PHP script uses as home directory as you also suggested. This works as well and no need to change anything in the environment variables!
Thank you ![:smile: :smile:](//community.openfl.org/images/emoji/twitter/smile.png?v=5)
haha, awesome, glad this is working! ![:smile: :smile:](//community.openfl.org/images/emoji/twitter/smile.png?v=5)