Shell_exec on Ubuntu 16 and nginx

February 14, 2018 1.3k views
Nginx Linux Commands Ubuntu 16.04

Hi there.

I am running Ubuntu 16.04 with nginx and php7-fpm.

I am try to run a shell_exec command from a PHP file. However, the command just isn't executing. No errors are being written to the nginx error log, quite simply, just nothing happens.

I assume that I need to enable shell_exec somewhere but I am not sure where.

If someone could point me in the right direction, I'd really appreciate it.

Thanks so much,

5 Answers

Add 2>&1 to the command and var_dump the output.

Sorry @Woet I don't quite understand...

The line of code in question is as follows:

shell_exec('php mailTemplates/execMailBM.php ' . escapeshellarg(serialize($mailParams)) . ' > /dev/null 2>/dev/null &');


@Woet I don't actually know what that is doing to be honest, it's a line of code I am reusing. What should I modify that to? Thank you.

Hi @Woet I've just tried an absolute path to the file, the command is below:

shell_exec('php /var/www/x/mailTemplates/execMailBM.php ' . escapeshellarg(serialize($mailParams)) . ' > /dev/null 2>/dev/null &');

It didn't make a difference, same result.

  • Did you try an absolute path to PHP? Does it work when you execute it manually?

Hi @Woet PHP has been setup to run globally, I can execute it from the command line without issue, so I don't believe it's the PHP path.

Can you help me modify that line of code to write to a external error log perhaps? Thank you!

Have another answer? Share your knowledge.