Linux
將 CMS 文件整合到一處
我們有一個系統,我們在其中一台伺服器上使用定制的 CMS。此 CMS 由 30-40 個客戶使用。每個客戶端 CMS 的大部分文件都是相同的(除了幾個文件夾),因為每次我們添加新功能/更新檔/錯誤修復時,我們都會將其推廣到所有客戶端。我們希望將這些文件整合到一個地方,以便我們可以更輕鬆地從 SVN 部署我們的更改。
對於每個使用者帳戶,我們都有這樣的結構:
/home/user/public_html/css/ /images/ /admin/ index.php etc ....
在此範例中,css 和 images 文件夾對於每個客戶端站點都是唯一的,但所有其他文件對所有人都是通用的。不確定我們是否應該研究符號連結/NFS/其他東西??
短期解決方案:
移動
/admin/ index.php etc...
到,說,
/opt/cms
為文件創建指向新位置的符號連結。IE:
$ ln -s /home/user/admin /opt/cms/admin $ ln -s /home/user/index.php /opt/cms/index.php
為所有文件和所有使用者編寫一個腳本來執行上述操作應該是微不足道的(有經驗)。如果沒有,請發布一個單獨的問題。
然後在大家連結的/opt/cms目錄下使用SVN。
長期解決方案:
完全消除使用者目錄。將應用程序移動到一個網站位置(/opt/cms 或 /var/www/cms 等…)。使用某種 URL 重寫來
example.com/~user/images/*
指向example/user/images/*
並為每個使用者創建一個/opt/cms/user/images
目錄。此解決方案意味著使用者不知道任何更改。從長遠來看,重新編寫 CMS 以在幕後儲存差異,或者創建新結構並為使用者提供新 URL。