Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 不允许您执行此脚本_Php_Ubuntu_Command Line Interface_Crontab - Fatal编程技术网

Php 不允许您执行此脚本

Php 不允许您执行此脚本,php,ubuntu,command-line-interface,crontab,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_PA

我需要通过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添加这是一个计划任务,但我仍然在日志中得到相同的错误


请帮忙

我看不出有什么问题。代码工作正常

变量
$\u GET['key']
未在CLI中设置,并且始终与“xxx”不同,因此代码会通过打印字符串来停止


如果对文件和文件夹的权限设置正确,删除if子句,代码将完成其余的操作。

您没有对CLI脚本使用$\u GET-此脚本显然是为了通过web服务器运行而编写的。但是只要拿支票就行哇,我觉得很愚蠢。。。错误在我的代码中,我看到的是$\u GET而不是$argv。我希望我认识的人都不会找到这篇文章:(不太可能需要任何这样的安全性,只要文件在web根目录之外,就可以从命令行或作为cronjob调用它