为什么在使用 exec 命令时(写入日志文件时)权限被拒绝?

Pon*_*ing 1 php exec permission-denied logfile

在我的本地机器上,我使用了 exec 命令,如下所示:

 if($serverHost == "api.frapi") 
 {
     $phpBianryPath='/Applications/MAMP/bin/php/php5.4.10/bin/php';
 }
 else
 {
     $phpBianryPath='/usr/bin/php';
 }

 $logDir= dirname(__FILE__). '/BackgroundTask';                
 exec("$phpBianryPath $logDir/notificationCall.php $token >> $logDir/log_file.log 2>&1 &");
Run Code Online (Sandbox Code Playgroud)

它在我的本地机器上运行完美。但是当我将它上传到生产服务器然后尝试使用它时,它会出现如下错误:

sh: /var/www/html/example/src/frapi/custom/Action/BackgroundTask/log_file.log:
Permission denied
Run Code Online (Sandbox Code Playgroud)

请指导我。我不明白为什么它在生产中不起作用?

Vla*_*șan 5

您没有执行该文件的必要权限。如果您运行该脚本的服务器具有 linux,请使用 chmod 命令更改文件权限。

chmod 0764 /var/www/html/example/src/frapi/custom/Action/BackgroundTask/log_file.log
Run Code Online (Sandbox Code Playgroud)

4 = 读取;

2 = 写;

1 = 执行;

读+写+执行 = 4+2+1 = 7;

764 表示所有者的 rwx,组的 rx,其他的 r。

更多文档请参考:https : //help.ubuntu.com/community/FilePermissions