0

関数を使用してコマンドを実行するphpスクリプトを使用して、データベースをバックアップしsystem()ます。残念ながら、私の共有ホスティングはそれを無効にしています。実行すると、次の警告が表示されました。

警告: system() はセキュリティ上の理由から、/path-to-my-file の 162 行目で無効になっています

これが私のコードです:

$filename = 'backup/mybackupfile.sql';
$command = "mysqldump -u myuser -pmypass mydatabase > ". $filename ."";
system($command);

ローカル コンピューターでは正常に動作していますxamppが、共有ホスティングでは問題が発生します。

したがって、をmysqldump使用する代わりにコマンドを実行する別の方法が必要system()です。私はcronなどの使用を避けようとしてSELECT * OUTFILEいます。

4

1 に答える 1

1

mysqldumpハクラ夫人がすでに言ったように、ホストがシステム コマンドの実行を無効にしている場合は、まったく実行できません。

システム コマンドを有効にするか、PHP スクリプトを使用してダンプを実行するよう依頼する必要があります。ただし、周りの PHP ダンプ スクリプトには十分注意してください。私の経験では、多くのスクリプトが壊れた、または不完全なダンプを作成することがわかっています。

いくつかのグーグルは、このような小さなツールを明らかにします。ただし、前述のように、注意して、正確性を確認するためにいくつかのテストを行ってください。

私が知っている、ジョブを適切に実行している最高の PHP ベースのエクスポート ツールは、PhpMyAdminのエクスポート ツールです。多分それは助けることができます。理論的には、そのエクスポート ライブラリを分離することもできるはずですが、私の知る限り、他のスクリプトで使用するための簡単な方法で公開することはできません。

于 2012-08-10T14:49:05.633 に答える