私はAegirを使用しており、サイトの仮想ホストにデータを注入したいと考えています。そして、私は this post のおかげでそれをなんとかしました。
私の問題は、サイトのデータベースの構成を このAegir関数のリスト からロードするためのAegir関数が見つからないことです。
サイトのデータを返す関数またはメソッドを見つける必要があります。
私はProvision_Config('mysite.com')
を試しましたが、template argument missing error
。
データを取得するために使用する必要がある関数を誰かが知っていますか?私は通常drush sql-connect
はsshにありますが、phpスクリプト内にあるため、これがクリーンな方法であるかどうかはわかりません。
目標はDrupalマルチサイト/マルチフォルダで動作するようにすることです(私は その投稿とパッチを認識しています ですが、私の解決策は私にとってはうまくいくようです)パッチを当てる必要はありません):
<VirtualHost *:80>
DocumentRoot /var/aegir/platforms/myplatform
ServerName mysite1.com
SetEnv db_type mysql
SetEnv db_name mydbname_1
SetEnv db_user mydbname_1
SetEnv db_passwd *********
SetEnv db_Host localhost
SetEnv db_port 9854
# Credentials from other Aegir's site
# located in a subfolder /blog.
<Location /blog>
SetEnv db_type mysql
SetEnv db_name mydbname_2
SetEnv db_user mydbname_2
SetEnv db_passwd *********
SetEnv db_Host localhost
SetEnv db_port 1258
</Location>
</VirtualHost>
サブディレクトリへのサイトのインストールは、そのようなハッキングなしでAegir 2+でサポートされています。 admin/hosting/featuresの「experimental」グループの下にある「サイトサブディレクトリ」機能を有効にするだけです。
とはいえ、質問に答えるために、DB資格情報はdrush_get_context( 'site')を介して利用できます。
私は通常、sshでdrush sql-connectを使用しますが、phpスクリプト内にあるため、これがクリーンな方法であるかどうかはわかりません。
私が正しく理解している場合は、PHP Aegirによって管理されているサイトのデータベースに接続する必要のあるカスタムスクリプトDrupalスクリプトを記述していますか?
はいの場合、以下を使用できます。
$ drush php-script your-script.php
このブートストラップはDrupal(およびデータベースに接続)し、コマンドラインで$ php your-script.php
を実行したかのようにスクリプトを呼び出します。