5

Drupal 7 でモジュールなしでシングル サインオンを設定するにはどうすればよいですか? Drupal 6 で実行していましたが、settings.php ファイルでいくつかの変更があり、これを理解するのに苦労しています。

 You can also use a reference to a schema/database as a prefix. This maybe
 * useful if your Drupal installation exists in a schema that is not the default
 * or you want to access several databases from the same code base at the same
 * time.
 * Example:
 * @code
 *   'prefix' => array(
 *     'default'   => 'main.',
 *     'users'     => 'shared.',
 *     'sessions'  => 'shared.',
 *     'role'      => 'shared.',
 *     'authmap'   => 'shared.',
 *   );
 * @endcode
 * NOTE: MySQL and SQLite's definition of a schema is a database.

これは、これを設定するために必要なコードですが、settings.php ファイルのどこに配置すればよいかわかりません。何か案は?

4

4 に答える 4

3

私のsetting.phpファイルは次のようになります:

$databases = array (
  'default' =>
  array (
    'default' =>
    array (
      'driver' => 'mysql',
      'database' => 'drupal7',
      'username' => 'toto',
      'password' => 'xxxxxxxxxxxxxxx',
      'host' => 'localhost',
      'port' => '',
      'prefix' => array(
          'default'   => '',
          'users'     => 'drupal7_common.',
          'sessions'  => 'drupal7_common.',
          'role'      => 'drupal7_common.',
          'authmap'   => 'drupal7_common.',
          'languages' => 'drupal7_common.',
          'locales_source'   => 'drupal7_common.',
          'locales_target'   => 'drupal7_common.',
        ),
    ),
  ),
);
于 2011-02-15T13:44:28.420 に答える
1

次の settings.php ファイル エントリを使用して、もう少し詳細を追加させてください。

$my_db_users = 'dbusers.shared_';

$databases['default']['default'] = array(
    'driver' => 'mysql',
    'database' => 'dbdefault',
    'username' => 'databaseuser',
    'password' => 'databasepassword',
    'host' => '127.0.0.1',
    'port' => 3066,
    'prefix' => array(
        'default'   => 'default_', 
        'users'     => $my_db_users,
        'sessions'  => $my_db_users,
        'role'      => $my_db_users,
        'authmap'   => $my_db_users, 
    ),
    'collation' => 'utf8_general_ci',
);

$my_db_users上記の例では、共有ユーザー データの場所のデータベースおよびテーブル プレフィックスと等しくなるように変数を設定しました。

次に、デフォルトのテーブルプレフィックス'default' => 'default_',を設定します。「特に指定がない限り、すべてのテーブルをdefaultdatabaseに保存し、それらのテーブルプレフィックスをdefault_にします。」また、「すべてのユーザー、セッション、ロール、およびユーザーとロールのマッピング (authmap)を、テーブル プレフィックス shared_ を付けてデータベースdbusersに保存する」とも言っています。

ちょっとしたひねり:

行を削除することを検討してください'authmap' => $my_db_users,。これを行うと、サイトの大規模なネットワーク全体で同じユーザーとグループを持つことができ、サイトごとに異なるアクセス許可をユーザーに許可することができます。あるサイトでは管理者であるかもしれませんが、別のサイトでは作成者になります。

于 2012-08-01T15:27:49.640 に答える
1

Drupal 7 のデータベース構成スタイルは次のようになります。

$databases['default']['default'] = array(
    'driver' => 'mysql',
    'database' => 'd7',
    'username' => 'drupaluser',
    'password' => '',
    'host' => '127.0.0.1',
    'port' => 33066,
    'prefix' => array(
      'node' => 'foo_',
    )
);

ドキュメントに基づく:

ローカルでテストしたところ、期待どおりに動作するようです。

于 2011-01-28T20:22:35.377 に答える