web-dev-qa-db-ja.com

PHP関数からAegirのサイト認証情報を読み込みます

私はAegirを使用しており、サイトの仮想ホストにデータを注入したいと考えています。そして、私は this post のおかげでそれをなんとかしました。

私の問題は、サイトのデータベースの構成を このAegir関数のリスト からロードするためのAegir関数が見つからないことです。

サイトのデータを返す関数またはメソッドを見つける必要があります。

  • db_name
  • db_user
  • db_passwd

私は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>
3
ErikaW

サブディレクトリへのサイトのインストールは、そのようなハッキングなしでAegir 2+でサポートされています。 admin/hosting/featuresの「experimental」グループの下にある「サイトサブディレクトリ」機能を有効にするだけです。

とはいえ、質問に答えるために、DB資格情報はdrush_get_context( 'site')を介して利用できます。

14
ergonlogic

私は通常、sshでdrush sql-connectを使用しますが、phpスクリプト内にあるため、これがクリーンな方法であるかどうかはわかりません。

私が正しく理解している場合は、PHP Aegirによって管理されているサイトのデータベースに接続する必要のあるカスタムスクリプトDrupalスクリプトを記述していますか?

はいの場合、以下を使用できます。

$ drush php-script your-script.php

このブートストラップはDrupal(およびデータベースに接続)し、コマンドラインで$ php your-script.phpを実行したかのようにスクリプトを呼び出します。

1
bgm