您不能执行此脚本

时间:2012-11-28 09:11:24

标签: php ubuntu command-line-interface crontab

我需要帮助通过CLI执行php脚本。不确定这是Linux还是PHP问题。

当我在Ubuntu中执行/ usr / bin / php /var/www/backup.php时,我得到:

  

您不得执行此脚本

backup.php中的代码是:

<?php

// Set default paths
define ("DOCUMENT_ROOT","/var/www");
define ("DATABASE_PATH","/var/lib/mysql/livedb");
define ("BACKUP_PATH","/var/sitebackups");

$filename_suffix = "_" . date("Ymd_his") .".tar.gz";

if ($_GET['key']!="xxx") {
        die ("You are not permitted to execute this script");
}

//change working directory to backup directory
if (!chdir(BACKUP_PATH)) {
        die ("Failed to change to working directory.");
}

// Tar the web files
$cmd = "tar -cvzf " . BACKUP_PATH. "/webfiles" . $filename_suffix . " " .DOCUMENT_ROOT ;
echo $cmd . "<br/>";
//echo shell_exec($cmd);

// Create link to web files backup

// Tar the mysql DB
$cmd = "tar -cvzf " . BACKUP_PATH. "/dbfiles" . $filename_suffix . " " .DATABASE_PATH ;
echo $cmd . "<br/>";
//echo shell_exec($cmd);

// Move to backup folder

// Create link to DB backups

// Email backup confirmation

?>

我甚至试图通过crontab添加这是一个计划任务,我仍然在日志中得到同样的错误。

请帮忙!

1 个答案:

答案 0 :(得分:4)

我根本看不出任何问题。代码工作正常。

变量$_GET['key']未在CLI中设置,并且始终与'xxx'不同,因此代码会通过打印出您的字符串来停止。

删除if子句,如果文件和文件夹的权限设置正确,代码将完成剩下的工作。