我正在尝试在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
。什么可能出错的想法?
答案 0 :(得分:0)
从评论中感谢Walter告诉我实际检查错误日志。
脚本是可执行的(chmod 755
),但层次结构中的目录是rwxr-x---
;将此目录更新为rwxr-xr-x
修复了问题。 exec()
d脚本路径上的每个目录必须由httpd
读取。
问题解决了。