I am trying to run a simple python script through php on Amazon EC2 instance.
The file is working fine on terminal i.e am getting the output. But when am trying the same
After a lot of "scratching my head", I finally figured it out.
First of all you one need to figure out the current user who is executing the php. One can either check out php.info file or use
$processUser = posix_getpwuid(posix_geteuid());
print $processUser['name'];
This will give you the user who is executing the code. In my case it was apache
rather than www-data
(I shouldn't have assumed so in first place).
After that you will need to edit the sudoers
file (etc/sudoers)
Add the lines over there.
apache ALL=NOPASSWD:/var/www/myfile.py
apache ALL=NOPASSWD:/usr/bin/pythondestination
or you can simply add
apache ALL=(ALL) NOPASSWD:ALL
(You probably should just specify the path).
Then execute the script through php.