我需要帮助通过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添加这是一个计划任务,我仍然在日志中得到同样的错误。
请帮忙!
答案 0 :(得分:4)
我根本看不出任何问题。代码工作正常。
变量$_GET['key']
未在CLI中设置,并且始终与'xxx'不同,因此代码会通过打印出您的字符串来停止。
删除if子句,如果文件和文件夹的权限设置正确,代码将完成剩下的工作。