exec function is not working in PHP

php exec not working
php exec not working from browser
php exec not working ubuntu
php shell_exec not working
running shell command in php with real time output
exec not working in php 7
php execute shell script with parameters
php exec timeout

in php exec function is not working to run a shell command.

if I run in terminal

   $ avconv -i in.mp4 -f mp3 -ab 192000 -vn rip.mp3 

the command is working fine, the command is for converting a video to mp3. But when I try to execute through PHP it just doesn't work.

   exec("avconv -i in.mp4 -f mp3 -ab 192000 -vn rip.mp3");

or if I try exec("whoami"); is giving me the correct output.

Most likely you need to give the command the full path to your files, because the current dir in PHP is not the same as in your shell.

exec("avconv -i /path/to/in.mp4 -f mp3 -ab 192000 -vn /path/to/rip.mp3");

Maybe even the full path to aconv to be safe:

exec("/bin/avconv -i /path/to/in.mp4 -f mp3 -ab 192000 -vn /path/to/rip.mp3");

Check what is the correct path for aconv with which aconv.

To check for any error, add a second parameter to the exec command and print it:

exec('...', $result);
var_dump($result);

PHP Exec Not running, but command works ok!, If you do not want the function to append elements, call unset() on the array before passing If a program is started with this function, in order for it to continue running in the On Windows exec() will first start cmd.exe to launch the command. If you do not want the function to append elements, call unset() on the array before passing it to exec(). return_var If the return_var argument is present along with the output argument, then the return status of the executed command will be written to this variable.

okay, it was a file permission issue. www-data had not the permission to write the file, after changing the permission it's working now.

exec - Manual, The exec function is used to evaluate a command at the system level ie. terminal. What you're doing makes no sense in that regards. You need� beside the permission to php, permission to the file you want to run with exec and directories along its path is necessary. In addition, you need to check your program runs with the internet user, by using runas command. if exec does not work for yuo, you may also try using popen/pclose

Exec not working - PHP, This is not really DigitalOcean specific, you probably have the shell_exec , exec and etc. functions disabled in your php.ini file. What you could� The problem is usually that when you exec code from within php it is run as the webservers user www-data in alot of linux distros. Normaly this user does not have an enviroment set up, and because of that no PATH. By using full paths in your files you can usually overcome this.

why is php exec not working on digitalocean, Sometimes the exec() function is not working after turning on the PHP-FPM and in php configuration file we could not find any disable functions. Sometimes the exec() function is not working after turning on the PHP-FPM and in php configuration file we could not find any disable functions. If we turned off the PHP-FPM the exec function is working again. If you are facing such issues, please follow the below steps.

How to Enable exec() in PHP-FPM?, If the command fails return NULL and the values are not reliable for error Note: This function is disabled when PHP is running in safe mode. With PHP on Windows, if you get the 'Warning: shell_exec() [function.shell-exec]: Unable to execute' error, then you need to check the permissions on file 'C:\WINDOWS\system32\cmd.exe'. You need read/execute permission on this file.

PHP, That's it, now use exec() or shell_exec in the following manner inside your here is the same problem as yours https://stackoverflow.com/a/22953339/1862107 be executed via the exec family of functions. ; http://php.net/safe-mode-exec-dir� The shell_exec () function is an inbuilt function in PHP which is used to execute the commands via shell and return the complete output as a string. The shell_exec is an alias for the backtick operator, for those used to *nix. If the command fails return NULL and the values are not reliable for error checking.

Comments
  • try to use passthru() instead of exec(), if not working, check if the current user (php) has rights to execute avconv and has write rights in folder ...
  • exec may be disabled in your php.ini configuration, are you able to check this? if your on shared hosting it could very well be disabled for security reasons
  • oh forgot to mention the file is in the same directory , and I run it terminal by changing the directory
  • avconv is in /usr/bin/avconv , I tried something like this exec("/usr/bin/avconv -i in.mp4 -f mp3 -ab 192000 -vn rip.mp3"); or if I run exec("whoami"); also working fine
  • @monir009, what are the results when you run this? exec('...', $result); var_dump($result);