web-dev-qa-db-ja.com

ユーザー作成の自動化

学生向けのサイトがあり、Ubuntu14.04で実行されています。学生が自分のサイトに登録すると、ユーザー情報がMySQLDBに保存されます。

私のサイトに登録するときに、UbuntuインストールのWebサイトを学生に提供したいと思います。これを自動化したいと思います。私の質問は-MySQLDBから直接データを使用して、Ubuntuでサブドメイン(username.mydoamin.com)を提供することはできますか、それともPHPからUbuntuでシェルコマンドを実行して、現在手動​​で行っていることを自動化できますか?

2

pHPからUbuntuでシェルコマンドを実行し、現在手動​​で行っていることを自動化できますか?

Shell_exec() 関数または_` `_(バッククォート)演算子を使用して、PHP内からシェルコマンドを実行できます。PHP <5.4.0を実行している場合は、最初に必ず セーフモード を無効にしてください。そうすると、PHPスクリプトで、次のいずれかの構文を使用できます。

  • $return = Shell_exec('<Shell_command>');
  • _$return = `<Shell_command>`;_

単一のコマンドから戻り値を取得する場合を除いて、要求していることを実行する最も簡単な方法は、シェルで手動で実行しているすべてのものを、呼び出されるスタンドアロンのbash(またはその他の)スクリプトに凝縮することです。これらの方法のいずれかを使用して1回。たとえば、bashスクリプトの構文は次のようになります。

  • $return = Shell_exec('bash script.sh');
  • _$return = `bash script.sh`;_

スクリプトにパラメーターを渡すには(例:_$username_変数の値):

  • $return = Shell_exec("bash script.sh '$username'");
  • _$return = `bash script.sh '$username'`;_

bashスクリプト内で渡されたパラメーターを取得するには(たとえば、上記の方法で渡された_$username_変数の値):

_#!/bin/bash

# ...
username=$1
# ...
_

または、必要に応じて_$1_を参照するだけです。例:

_#!/bin/bash

# ...
echo "$1"
# ...
_
1
kos

私自身の質問のフォローアップとして、私は自分の経験について詳しく説明します。シェルの実行をPHPから機能させましたが、ソリューションに大きなセキュリティ上の問題がありました。それは私の手からの大きな間違いであり、最初はこれを見ていませんでした。

セキュリティリスクを排除するために、アクティブ化されたユーザーをユーザーテーブルで検索するbashスクリプトを作成しました。ユーザーがアクティブで、Linuxユーザーではない場合、ユーザーはLinuxで作成され、データベースユーザーが作成され、サブドメインが作成され、sshがユーザーに対してロックされます。 60分ごとに実行されるcronジョブを設定し、ユーザーが作成されると、登録情報が記載された電子メールがユーザーに送信されます。

これにより、多くのセキュリティリスクが排除されます(すべてではありません)。

ビャルケ

0