-1

私と私の頭の悪いアイデアをもう一度... 私はメールサーバーのインストールスクリプトを作成しています。shell_exec コマンドと proc_open コマンドで php を使用して sudo や apt-get などのシェル コマンドを実行する方法は知っていますが、ユーザー入力を求めるインストールを行う方法はわかりません。私の例はmysqlサーバーのインストール呼び出しの一部であり、コマンドラインからインストールすると、mysqlの管理ユーザーのパスワードを設定するように求められます。スクリプトにフォームでユーザーからその情報を取得させ、データを他のページに渡すことができますが、それをシェルに渡すにはどうすればよいですか?

私が知っていること:

$mySql_password = $_POST['mysql_password'];
$output = shell_exec("apt-get -y install <package-id>");

あるいは:

$mySql_password = $_POST['mysql_password'];
$output = shell_exec("apt-get --force-yes install <package-id>");

変数として設定した後、パスワードを渡すにはどうすればよいですか? このスクリプトはサーバーのデスクトップ (デスクトップがある場合) または Web ブラウザー経由で実行され、スクリプトは最後に自己破壊モードを持ち、インストール スクリプトを消去して誰かがそれを忘れています。ssl は、インストール前のチェックリストとしても推奨されます。

4

1 に答える 1

0

少し見回した後(グーグル「無人MySQLインストール」またはこれらの行の中の何か)、あなたを助けるべき何かはですDEBIAN_FRONTEND=noninteractive

これを試してパスワードなしでインストールし、後で設定してください:

<?php

shell_exec('echo '.$rootPassword.' | DEBIAN_FRONTEND=noninteractive sudo -S aptitude install -q -y mysql;
mysql -uroot -e "UPDATE mysql.user SET password=PASSWORD("'.$mysqlPassword.'") WHERE user='root'; FLUSH PRIVILEGES;');

?>

または、debconf-set-selectionsデフォルトのパスワードを設定して、mysqlが直接インストールされるようにする必要があります。

于 2012-11-14T06:37:31.297 に答える