2010-11-22 9 views
0

ランプ(debian、apache、php、mysql)サーバーでDrupal Multisite環境を実行しています。Drupal:プロジェクト終了後にサイトドメインを切り替えるベストプラクティス

新しいプロジェクトのための私の現在のワークフローは次のとおりです。

  1. はBecoseの
  2. (のプロジェクトはfoo.comなりましょう、私はfoo.example.comをアクティブに)私の会社のサイト上でサブドメインを有効にしますPleskの(つまり、非友好的なビットDrupalのです)私のステップは以下のとおりです。
    1. は、データベースをhttpdocs
    2. 削除フォルダ、Rを作成
    3. のFastCGIモードでPHPが動作して、Pleskの中で新しいサブドメインを作成します。
    4. (通常はドメインごとにカスタマイズされること) /var/www/vhosts/drupalフォルダ(Drupalのコードベース)サイトとTMPフォルダのexcapt、robots.txtのにすべてのファイルへのsimbolicのリンクを作成し、ファイルを.htaccesそれをecreateとサイトが
    5. をフォルダ作ります
  3. を(drush はcrontabのように、いくつかのマルチサイトタスクにすべてのドメインを見るようにするために)/var/www/vhosts/drupal/sites/foo.example.comに当時sites/foo.comからシンボリックリンクを/var/www/vhosts/drupal/sites/allフォルダにフォルダfoo.example.comsites内部に、シンボリックリンクを作成し、インストールし、サブドメインにdrupalを設定して、プロジェクトを完了するために必要なすべて

この時点で、私はサブドメインから最終ドメインfoo.comにプロジェクトを切り替える必要があります。これは私のサーバーにも存在します。

私はドメインリダイレクトのような他のハックのようなものはありません。私は最終的なプロジェクトを「クリーン」にしたいと思います(についてははマルチサイト環境で意味します)。

実際に私は、これらのステップを実行します。

  1. (Pleskの経由)ドメインおよびデータベースの作成を。
  2. コピーdrupalの、変更webiste情報、およびファイルシステムのパスに、ドメインの所有者とグループ
  3. ログインを一致させるをhttpdocsの完全なドメインをhttpdocsにサブドメインをhttpdocs(cp -a /var/www/vhosts/example.com/subdomains/foo/httpdocs /var/www/vhosts/foo.com/httpdocs
  4. 所有者とグループを変更。

これは私が欲しいことをさせてくれるが、ノードのHTMLコンテンツに問題がある。 (IMCEが相対パスを使用するように設定されていても)/sites/foo.com/files/[...]ではなく/sites/foo.example.com/files/[...]を指します。これはcckファイルフィールドでも起こります。

私が言ったように、私はクリーンソリューションを必要とする、私は/sites/foo.example.comから/sites/foo.comへのシンボリックリンクを作ることができます知っているが、私は本当にこの方法のようにいけません。

はこれまでのところ、私は/検索データベースSQLダンプにすべてのoccourrenceを置き換えるためにしようと試み:

sed 's/foo.example.com/foo.com/g' dump.sql > foo.com.sql 

しかし、このブレーキ代に思えます。私はDBエクスポート/インポートの前後にすべてのキャッシュをクリアしたとしても、キャッシュのunserializeステップでboostrapファイルに多くのエラーが発生し、いくつかのutf-8エンコーディングが壊れているように見えます。

私は、ローカルサーバー上で開発領域を設定するのが最も良いことを知っていますが、私の顧客は外部からアクセスする必要があります。私たちのadsl状況(静的IPなど)は少し有線です。

PS:私の悪い英語のため申し訳ありませんが、私の質問はenought私が知っていると私はより多くの詳細を提供します明確でない場合)

答えて

0

あなたの手順は、私が何をすべきか、基本的ですが、私はのPleskを使用したり致しておりませんマルチサイトインストール。私はVPSインスタンスに新しい仮想ホストを作成し、cp-docrootを作成し、新しいデータベースDSNを再設定します。

SQLの問題に関しては、通常、SQLダンプをUTF-8クリーンエディタで編集して、その問題を回避します。 Windowsでは、私はメモ帳++を使用します。

その後、データベースを復元し、すべてのキャッシュを消去し、設定を編集してcronを実行します。私はまた、通常、検索インデックスを再構築します。

このシーケンスは通常動作します。

ブートストラップの問題は、おそらく変数テーブルと関係があります。文字列(または文字列を含む)をシリアル化すると、その長さも格納されます。検索と置換を行い、次にMySQL Query Browserを開き、ドメイン名で変数テーブルの行を検索し、長さを手動で修正します。もう1つのオプションは、どのオプションが保存されているかを判断し、設定を再作成することです。

+0

SQLダンプをエディタで開くと、私のダンプは〜20Mb程度になります。エディタを使用すると、軽量化が難しくなります。 – Strae

+0

FWIW、NP ++は大きなSQLダンプを処理します。私は最近20Mbのファイルを編集しました。私ははるかに大きなファイルを扱っていると確信しています。構文強調表示を無効にすると便利です。 – mpdonadio

+0

また、SQLを使用してデータベース内のデータを更新することもできます。 PLESKを使用しているので、私はPhpMyAdminにすべてのテーブルを一度に検索するツールがあると仮定します。 – Ted

関連する問題