2011-12-01 48 views
0

我打算構建一個CMS系統。使用PHP在不同站點/主機之間複製圖像

CMS系統將設充分給予處: www.mycompany.com/customer

最終網站將位於: www.customer.com

我要弄清楚最好的方式來複制文件 從(如圖像):www.mycompany.com/customer/media 到:www.customer.com/media

注:的CMS和客戶的頁面將位於迪菲租主人。我想用PHP構建這個函數。

的幾點思考:

最佳的解決辦法是,如果這兩個目錄可以全自動克隆,不管如何將圖像上傳或更新。 Maby如果有辦法檢測到www.mycompany.com/customer/media的變化,那麼www.customer.com/media可能會被通知,併發送更新圖像的請求。

一個願望也將是圖像只能從www.mycompany.com/customer/media如果登錄訪問到CMS:S

任何提示嗎?

+0

客戶頁面無法通過FTP訪問CMS,但CMS可以通過FTP訪問客戶。 – Hakan

+0

有一個想法:所有媒體上傳到mycompany.com/customer/media然後,您可以引用外部所有媒體在customer.com,以便所有圖像將src =「http://www.mycompany.com/customer/media /image.png「' –

+0

然後客戶將不會擁有自己的文件域。速度表現可能會更好,但我不認爲客戶會喜歡它。艱難的我可以做相反的事情(也許不需要在CMS中有文件)。 :) – Hakan

回答

1

,則不應使用FTP(不安全的),或者PHP的複製,
嘗試rsync的,而不是: -

什麼是rsync的?
http://en.wikipedia.org/wiki/Rsync

rsync的是哪些文件和目錄進行同步從一個位置到另一個位置而在適當的時候使用增量編碼最小化數據傳輸類Unix和Windows系統的軟件應用程序和網絡協議。在大多數類似的程序/協議中找不到rsync的一個重要功能,即鏡像只在每個方向上進行一次傳輸。 rsync可以複製或顯示目錄內容並複製文件,可選擇使用壓縮和遞歸。

在另一個字,是專指用於鏡像或​​複製(是行業標準)

一般來說,

  1. 設置公共密鑰,使源服務器能夠ssh到目標服務器
  2. 設置在源服務器一個cronjob做rsync的

cronjob是做什麼的?
在簡單地說,它應該rsync的選擇的源目錄到目標服務器,
一個簡單的例子: -

* * * * * rsync -avz /home/www.mycompany.com/www $HOST:/home/www.customer.com/www 
        ^source server directory ^destination server, 
                and directory 

然而,Rsync是太硬的幾句話來形容,你可以去看看: - http://www.cyberciti.biz/tips/linux-use-rsync-transfer-mirror-files-directories.html(作爲啓動)

其他可能性是利用版本控制軟件,如: -

  1. 混帳
  2. SVN

或使用CDN上(如@Amir Raminfar已經提到),這本身就已經是文件分配一個完整的解決方案。

+0

rsync的+1!好極了!愛rsync - 優雅而快速! @hakan你真的應該注意這個答案。 :) –

+0

將看看這個!謝謝! – Hakan

+0

rsync/cronjob唯一的問題是它在間隔上運行。這意味着如果你上傳一張圖片,你等待,然後你看它是否工作。這可能很難調試。我建議你做一些能立即給你帶來好處的東西。您不希望CMS編輯器不能立即看到結果。 –

0

只是要來自mycompany.com一個ftp來電或SCP調用customer.com和上傳文件。

或者,你可以使用一個CDN這可能是有點太多的工作,但它會給你最佳的解決方案,並與強大的性能。您可以上傳到通用服務器,並從該網站獲取customer.com的圖片。這爲您提供了資產並行下載的好處。

最後,你可以在customer.com可以接受,無法上傳某種Web服務。

我不會做你的建議是通知系統,因爲它不會完全瞬間,它會導致一段時間實際看到的圖像之前。

0

您可以爲www.mycompany.com創建數據庫。但主機必須允許遠程訪問數據庫。 爲customer.com創建crontab,它將檢查遠程數據庫中的新記錄。該腳本可以允許註冊用戶。

您應該創建www.mycompany.com圖像文件夾htaccess的。允許自己和customer.com進行下載(如複製)圖像。

通過這種方式,所有註冊用戶都可以下載任何圖像。對你來說可能是錯的。

如果需要限制每個圖像接入,那麼你應該存儲圖像DB,併爲每個圖像,並要求加密URL。在這種情況下,您需要使用遠程數據庫或SOAP服務來獲取圖像。

相關問題