Run Bash Script from Php

I want to run a shell script within a php webpage to check some processes running on my system (Ubuntu 12.04). Googleing I've found about shell_exec() but I can't manage to run the script when loading php.

This is the php code I use.

$output = shell_exec('./dirlist.bash');
echo "<pre>$output</pre>";

and the piece of html I get

<pre></pre>

Also tried $output = shell_exec('sudo -u www-data ./dirlist.bash');

dirlist.bash does ls -l (just for testing script and shell_exec)

I think it is not a permission problem. Running directory grants write and execute privileges for all users (I should be careful here).

drwxrwxrwx  4 meteo meteo 4096 mar 11 15:20 RAMS

User www-data has been added to sudoers file in case it was needed

www-data ALL = (meteo) NOPASSWD: /home/meteo/www/RAMS/dirlist.bash

Thanks in advance

5

1 Answer

You probably need to chdir to the correct directory before calling the script. This way you can ensure what directory your script is "in" before calling the shell command.

$old_path = getcwd();
chdir('/my/path/');
$output = shell_exec('./script.sh var1 var2');
chdir($old_path);
echo "<pre>$output</pre>";
1

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Maya Lin-Takahashi

Maya Lin-Takahashi

Consumer Tech & Gadget Reviewer

Maya is a hardware enthusiast who tests and reviews smart home devices, smartphones, wearables, and audio gear. She focuses on practical consumer value and build quality.

Share this article
Twitter Facebook Pinterest