我在一盞燈(debian,apache,php,mysql)服務器上運行Drupal Multisite環境。Drupal:在項目結束後切換站點域的最佳做法
我的新項目當前的工作流程是:
- 激活對我公司網站的子域(假設該項目將是foo.com,我激活foo.example.com)
- 的Becose Plesk中(這是一個有點不友好的Drupal)我的步驟是:
- 創建的Plesk新的子域名,PHP在FastCGI的模式
- 運行創建數據庫
- 刪除的httpdocs文件夾中,r ecreate,並做出站點文件夾
- 做一個simbolic鏈接到每一個文件到文件夾
/var/www/vhosts/drupal
(Drupal的代碼庫)的網站和tmp目錄,的robots.txt的excapt和.htacces文件(即通常每個域定製) - 文件夾
foo.example.com
內sites
,符號鏈接請對/var/www/vhosts/drupal/sites/all
文件夾,然後再從sites/foo.com
的符號鏈接/var/www/vhosts/drupal/sites/foo.example.com
(爲了使drush 看到所有域的一些多點的任務,比如crontab中)
- 安裝,在子域中配置drupal,這樣做完成項目
此時需要的萬物,我需要從子域切換項目最終域,foo.com,將駐留啊,我太服務器。我想要最終的項目是一個'乾淨的'(clean在多站點環境中的含義)。我不喜歡很多其他類似的域名黑客攻擊,比如域名重定向。
其實我做的那些步驟:
- 創建域(通過Plesk)和數據庫;
- 複製子域名的httpdocs到全域的httpdocs(
cp -a /var/www/vhosts/example.com/subdomains/foo/httpdocs /var/www/vhosts/foo.com/httpdocs
) - 更改所有者和httpdocs資料組到域的所有者和組
- 登錄比賽拖入Drupal的,改變網站的信息和文件系統路徑。
這讓我做我想做的事,但我有一些節點的html內容的麻煩;特別是那些包含鏈接,圖像和文件的(即使IMCE被配置爲使用相對路徑),將指向/sites/foo.example.com/files/[...]
而不是/sites/foo.com/files/[...]
..這也發生在cck文件字段中。
正如我所說的,我需要一個乾淨的解決方案,我知道我可以做從/sites/foo.example.com
符號鏈接/sites/foo.com
但我真的不喜歡這種方式。
到目前爲止,我tryed搜索/替換所有occourrence到數據庫的SQL轉儲:
sed 's/foo.example.com/foo.com/g' dump.sql > foo.com.sql
但這似乎剎車出頭;我在boostrap文件中遇到很多錯誤(在緩存unserialize步驟中,即使我在數據庫導出/導入之前和之後清除了所有緩存),看起來像utf-8編碼會被破壞。
我知道最好的交易將是在本地服務器上設置開發區域,但我需要我的客戶從外部訪問它..並且我們的adsl情況(靜態IP等)有點有線。
有什麼想法?
PS:對不起,我的英語不好,如果我的問題是不明確的足夠多的讓我知道,我會提供更多的細節)
關於使用編輯器打開sql轉儲:我的轉儲可能約爲〜20Mb,對我來說使用編輯器很困難,因爲它可能很輕巧。 – Strae 2010-11-22 22:24:20