![我可以在新安裝的 Linux 上複製 Apache 伺服器設定嗎?](https://rvso.com/image/31638/%E6%88%91%E5%8F%AF%E4%BB%A5%E5%9C%A8%E6%96%B0%E5%AE%89%E8%A3%9D%E7%9A%84%20Linux%20%E4%B8%8A%E8%A4%87%E8%A3%BD%20Apache%20%E4%BC%BA%E6%9C%8D%E5%99%A8%E8%A8%AD%E5%AE%9A%E5%97%8E%EF%BC%9F.png)
我的電腦上設定了一個 Apache 2 伺服器,用於本機測試。需要明確的是,不是網際網路上的託管網站。它僅用於本地調試和設計。
我之前使用的是 Ubuntu Linux,但現在我有一台使用 Linux Mint 的新電腦。我想做的是取得舊 Ubuntu 機器上的所有 Apache 網站和設置,並將它們複製到新的 Linux Mint 機器上。
我只知道如何手動執行此操作,一次一個站點,從頭開始。為目錄中的每個網站建立一個檔案sites-available
並使用 啟動它們a2ensite
。然後對任何設定檔進行編輯,例如在我的php.ini
文件中添加一些行以啟用 Xdebug,並希望我沒有錯過任何內容。
我確信我這樣做的效率很低,而且很容易出現人為錯誤。
難道不可能以某種方式複製我的 Ubuntu 機器上的整個 Apache 2 設定和站點,並將它們一次放到我的 Linux Mint 機器上嗎?或者至少,至少需要少於重新建立每個網站並從頭開始設定的步驟?
請注意,我更像是設計師而不是管理員,因此請假設我對 Linux 命令和伺服器設定的了解很少。
答案1
您的伺服器設置,就像任何系統範圍的程式設定一樣,可以在 下找到/etc
。確切的位置取決於分佈,但/etc/apache
或/etc/apache2
不錯的選擇。 Ubuntu 和 Mint 都使用/etc/apache2
.
如果您安裝了相同的外掛程式並且 Apache 的版本相差不太遠,則只需將整個/etc/apache2
目錄複製到新電腦即可。當然,您還需要複製文檔根目錄。
如果您正在執行某些 Web 應用程序,則您也需要遷移它們。這可能會或可能不會像複製某些文件那麼簡單,這在很大程度上取決於應用程式。特別是,如果涉及資料庫,則需要安裝相同的資料庫軟體(通常是 MySQL),在舊電腦上轉儲資料庫,然後在新電腦上恢復轉儲。
答案2
難道不可能以某種方式複製我的 Ubuntu 機器上的整個 Apache 2 設定和站點,並將它們一次放到我的 Linux Mint 機器上嗎?
假設它們不是截然不同的 Apache 版本,是的。發行版預先配置 apache 時有細微差別(例如,Web 根位置),但如果您複製配置並將所有內容放在同一個位置,則只需批量進行即可。與覆蓋配置一樣,不要以同樣的方式進行編輯。請注意,apache 的conf 檔案的位置被編譯到apache 二進位檔案中,並且可能會因發行版而異。然而,conf 檔案中的內容是可移植的,因此您應該能夠用自己的檔案取代這些檔案。除了conf檔案的位置之外,apache的行為是由conf檔案中的內容決定的,所以如果你確實取代了它/它們,那麼,例如,Web根目錄將由你的「新」設定決定。正如您所了解的,這裡的另一個細節是 中的內容/etc/hosts
。
Apache 有時會使用具有自己配置的半獨立部分(例如 php)。如果您知道自己正在使用類似的東西,則必須做一些功課才能了解詳細資訊。
這就引出了一個問題如何保持伺服器備份;如果你連貫地做到這一點,那麼這只是一個問題將備份部署到另一台機器上(即,好像它已經完全被破壞了)。我所說的「伺服器備份」並不是指整個檔案系統或 apache 二進位文件,它已經有效備份,因為它是一個發行版包。我的意思是 Web 根目錄中的所有內容(例如/var/www
)——伺服器使用的所有資料檔案、腳本等——以及配置,可能位於/etc
;中的某個位置。如前所述,這個位置是可變的,但會編譯到 apache 中,這意味著如果您想部署在不同的發行版上,您可能必須將 conf 檔案放在不同的位置。
如何確切地你這樣做取決於你的伺服器的性質。如果您正在服務的各種事物本身就是獨立的項目,那麼這些項目應該獨立備份;這應該包括一些關於如何部署它們以及它們需要什麼的文檔,如果合適的話可能還包括 apache 配置的片段。這意味著該專案可以輕鬆安裝到任何 apache 中。如果伺服器專用於一件事,您只需備份整個 Web 根目錄。在前一種情況(各種獨立項目)中,使用某種形式VCS很好(這些是學習使用的好東西;我個人的偏好是,git
但還有很多其他的),在後者(一個巨石網絡根)中類似rsync
- 但這些只是建議。關鍵在於你應該有一個你熟悉的工具來完成這樣的事情(選擇性地備份檔案系統中的目錄子樹)。小型安裝最簡單的方法可能就是tar
(或 zip)。
如果您使用 apache 的後端資料庫,您也希望以相同的方式備份資料和配置,但是如果資料庫由獨立備份的各種不同項目使用,則應該備份它們的資料和他們一起。
所以,如果你維護備份在這種情況下,「複製你的apache」所需要做的就是安裝apache,然後部署備份——你解壓縮、rsync、git 克隆等等,各個部分,將配置複製到正確的位置,然後就可以了。
然後您可能會遇到缺少軟體的問題——發行版可能以不同的方式捆綁 apache 模組,您需要 sql 等——但這非常簡單。