Sealyu

          --- 博客已遷移至: http://www.sealyu.com/blog

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            618 隨筆 :: 87 文章 :: 225 評論 :: 0 Trackbacks

          一些相關資源:

          Drupal 實在是一個很強大的網絡操作系統,它內建的多站點安裝機制非常強大,但也比較復雜,下面我來總結一下本站(robinlord.org)的多站點安裝方案。

          很多朋友購買的虛擬主機對數據庫或者空間或者可以綁定的域名或者能夠設置的子域名限制非常厲害,但是使用 drupal 這一切將不再是問題。Drupal 可以使用一個數據庫來安裝多個站點,這個只要在安裝過程中設定數據表前綴即可。

          我來分析下本站(robinlord.org)的結構。本站目前共使用同一套 Drupal 代碼搭建了三個獨立的站點:blogs.robinlord.org、drupal.robinlord.org、 drupal.robinlord.org/hanhua。是的,沒錯,最后那個是獨立的站點,不是一個路徑,這個是利用 drupal 的子目錄來做獨立站點的,本文的關鍵也就在這一切的實現。

          本站是采用泛域名解析+.htacess的方案來實現的。

          首先需要了解什么是泛域名解析,然后把所有的 *.roginlord.org 解析到站點的 web 根目錄(public_html),接著在根目錄下建立 drupal 目錄做為 drupal 的代碼目錄,接著在根目錄下的 .htacess 添加 urlrewrite 規則,把對 drupal.robinlord.org 和 blogs.robinlord.org 的請求全部定向到 drupal 目錄,其它的二級域名目錄這樣做。至于 drupal.robinlord.org/hanhua ,則是建立一個名為 hanhua 軟鏈接到 drupal 目錄(Linux 主機,windows 主機再行研究)。比如 /public_html/hanhua 就是到 /public_html/drupal 的軟鏈接,同時在給 drupal.robinlord.org 做url重寫時避開對 hanhua 的重寫,就實現了。

          下面是站點的目錄結構:

          public_html/ --|
          |-- drupal/ #[目錄]這個是 drupal 的程序目錄
          |--hanhua/ #[目錄]這個是到 drupal 的軟鏈接
          |--.htacess #[文件]這里配置目錄的 URL 重寫規則

          下面是根目錄下 .htacess 的內容:

          <IfModule mod_rewrite.c>
          RewriteEngine on
          #重寫二級域名的路徑
          RewriteCond %{HTTP_HOST} ^blogs".robinlord".org$
          RewriteRule ^(.*)$ drupal/$1 [L]
          RewriteCond %{HTTP_HOST} ^drupal".robinlord".org$
          #對于子目錄獨立站點的配置
          RewriteCond %{REQUEST_URI} !^hanhua
          RewriteRule ^(.*)$ drupal/$1 [L]
          </IfModule>

          這樣就實現了多個站點的訪問,下面是多站點的安裝及公用用戶數據的設置。

          首先,在安裝之前手動建立好各個站點的配置文件,遵循多站點目錄的命名規則。本站則建立了如下幾個目錄:

              sites/--|
          |-- blogs.robinlord.org
          |-- drupal.robinlord.org
          |-- drupal.robinlord.org.hanhua

          在每個目錄手動建立相應的 settings.php ,下面是 blogs.robinlord.org 的 settings.php 配置文件中需要手動設定的地方,其他配置在安裝過程中會自動設置。

          $db_url = 'mysql://username:password@localhost/databasename';
          $db_prefix = array(
          'default' => 'blogs_',
          'users' => 'shared_',
          'access' => 'shared_',
          'authmap' => 'shared_',
          'sessions' => 'shared_',
          'profile_fields' => 'shared_',
          'profile_values' => 'shared_',
          'languages' => 'shared_',
          'locales_source' => 'shared_',
          'locales_target' => 'shared_',
          );
          $base_url = 'http://blogs.robinlord.org';
          $cookie_domain = 'robinlord.org';

          $db_url 是數據庫配置。

          $db_prefix 設定表前綴,default 設定站點默認的表前綴,其他的則是數據表的名稱及其對應的前綴設定,一般都設為 'shared_'。

          $base_url 設定站點根域名,這個必須根據具體情況設置,負責站點路徑可能會出錯。

          $cookie_domain 這個就是多站點公用登陸的關鍵,設置為站點的根域,即可實現在多站點登陸一次即可。當然還需要公用 user 和 session 相關的表,這個前面已經配置好了。

          設定好配置文件后,就可以開始安裝進程。因為已經設定了數據庫配置,所以安裝程序會直接跳過這些設置的頁面而直接開始安裝。

          posted on 2010-12-04 19:47 seal 閱讀(388) 評論(0)  編輯  收藏 所屬分類: PHP
          主站蜘蛛池模板: 辽阳市| 临汾市| 德钦县| 辉县市| 宜良县| 扶余县| 宁安市| 县级市| 夏邑县| 仁怀市| 五大连池市| 依兰县| 雷州市| 东乌珠穆沁旗| 开远市| 曲靖市| 奉新县| 比如县| 广东省| 新郑市| 交口县| 平顺县| 金坛市| 叶城县| 龙游县| 永定县| 高碑店市| 寿阳县| 鸡东县| 壶关县| 云林县| 获嘉县| 武义县| 沂水县| 香河县| 贵溪市| 宜昌市| 汉寿县| 万荣县| 汝州市| 东兰县|