PHP exec()运行奇怪

时间:2013-06-14 02:44:54

标签: php apache unix shell-exec

我正在尝试在PHP中执行/path/to/script.pl;除其他外,脚本在完成执行后发送电子邮件。当我尝试

exec( "/path/to/script.pl" );

什么都没发生。其他一些相关数据点:

print exec( "whoami" );
/path/to/script.pl
sudo -u apache /path/to/script.pl

第一个用PHP运行,打印apache;第二个,在shell中运行,按预期运行(发送电子邮件);第三个,在shell中运行,也按预期运行(发送电子邮件)。

从这一点来看,似乎exec对某些命令工作正常,并且该脚本有效,适用于httpd用户(apache)。脚本本身不执行文件I / O,但它确实访问MySQL数据库并使用Net::SMTP::TLS以及LWP::Simple。什么可能出错的想法?​​

1 个答案:

答案 0 :(得分:0)

从评论中感谢Walter告诉我实际检查错误日志。

脚本是可执行的(chmod 755),但层次结构中的目录是rwxr-x---;将此目录更新为rwxr-xr-x修复了问题。 exec() d脚本路径上的每个目录必须由httpd读取。

问题解决了。