2011-06-01 14 views
0

Drupalサイト全体を含む単一のタールボールを提供するよう同僚に依頼しました。これらのサイトは、データベース接続以外の設定なしでサーバーにドロップできます。Drupalマルチサイトからシングルサイトへのライブ

私の知る限りこれは不可能です。

問題をさらに複雑にするため、サイトは現在複数サイトのインストールとして開発されており、同僚は単一サイトのインストールとして提供する必要があります。これは私が何度もやった変換ですが、Drupalのマルチサイトでは機能するためには適切なドメインが必要であるため、常にターゲット環境でプロセスを完了しています。最初にその環境で実際にテストすることなく、サイトが新しい場所で動作することを確認する方法はありません。この要求を満たすことはできません。

何か不足していますか?これは実際に実現可能ですか?

答えて

1

これはなぜできないのですか。

settings.phpファイルとそれらがインポートするDBのコピーを含める限り、インストールのドロップに関しては、Webサーバーが正しく設定されている限り必要です(pretty URLなど)を含む。確かに、これを行うときに考慮すべきいくつかの点は確かですが、DB接続パスがlocalhost(またはそれを持っている)に対して行われていることを確認する必要があります。また、tarballを併用すると、それ以外の場合は、Drupalのインストールを移動することはそれほど難しくありません。

「ドロップインする」方法に応じて、インストールを自動化して検証するための小さなスクリプトを書くことができます。スクリプトでDBのコピーをインポートし、宛先ホスト上のファイルのアクセス権と所有者をやり直してから、apacheをreloadしてください。

マルチサイトからシングルサイトに関する限り、私は変換をサンドボックスで行い、/ etc/hostsに必要なドメインを設定します(図のhere)。これにより、インストール先のドメインが十分にシミュレートされ、インストールが正常に行われてから送信されるようになります。

希望に役立ちます。

+0

私は急いで、いくつかの情報を省略したと思います。 URLが変更されています。このサイトは開発サーバー上に構築されていたので、ドメインはたとえばfoo.development.comでした。宛先はクライアントのドメインexample.comです。 DrupalはディレクトリパスをDBに書き込みます。だから、無数の場所でfoo.development.comにあるファイルを探しています。宛先にも単一サイトのインストールが必要なため、パスは「デフォルト」です。 通常、私はDB内のパスを更新するだけですべてが動作します。しかし、これを行う方法はありませんし、サイトをタールボールする前にすべてが機能していることを確認してください。 – kevinliuzzo

+0

ドメイン名を/ etc/hostsに置く方法はここでも使えますが、接続しているクライアントマシンからdrupalを実行しているどのdevサーバにも両方を追加するだけです。 クライアントとサーバーに関する限り、これは新しいドメインの場所であり、必要なすべてのテストを行うことができます。 – addisonj

関連する問題