-1

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を介してスケジュールされたタスクであることを追加しようとしましたが、ログに同じエラーが表示されます。

助けてください!

4

1 に答える 1

4

まったく問題が見えません。コードは正しく動作しています。

変数$_GET['key']は CLI で設定されず、常に「xxx」と同じではないため、コードは文字列を出力して停止します。

ファイルとフォルダーのアクセス許可が正しく設定されていれば、if 句を削除すると、コードが残りの処理を実行します。

于 2012-11-28T09:31:47.213 に答える