先說一下小弟管理Linux主機的方式
在安裝應用程式後
會將修改過與預設值不同的檔案
移至一個獨立目錄以便集中管理
再在原檔案所在位置做一個軟連結指到實際的檔案
這樣只需要備份這個獨立目錄即可
在重灌的時候也較能快速找到與預設值不一樣的地方進行修改。
現在發生一件奇怪有趣的事:
apache 伺服器 ssl.conf 檔的設定值需要修改
循往例把修改過的 ssl.conf 移至專區集中
再在原目錄位置做軟連結,一切準備就緒
重啟 apache 時,竟無法啟動!
把修改過的 ssl.conf 移回原位置,才能順利啟動
一樣是 apache 的 httpd.conf 則沒有這麼奇怪的限制
修改好檔案內容,設定軟連結,就可以正常使用了。
經過幾次的測試發現一個有趣的現象:
不能搬動 ssl.conf,但可以搬這檔案的上層目錄
把整個目錄、或是更上層的目錄搬走,再設軟連結,可以正常啟動 apache
唯獨不能直接搬動 ssl.conf 這個檔案?
請問各位大大先進們
是否知道這是什麼原因造成的?
有什麼方式可以解開這個魔咒嗎?
小弟的主要環境與檔案結構如下:
作業系統:RedHat 7.4
網站伺服器:Apache/2.4.6
採用 RHEL 標準的 rpm 安裝
原始目錄與檔案結構如下
/etc
|
├─httpd
| ├─conf
| | ├─httpd.conf
| | └─magic
| |
| ├─conf.d
| | ├─autoindex.conf
| | ├─ssl.conf # 經測試,目錄下只有這個檔案不能搬家用軟連結,Why?
| | ├─welcome.conf
Linux上HTTP Daemon簡稱httpd
是一款運行於網頁伺服器後台,等待傳入伺服器請求的軟體。
HTTP守護程序能自動回應伺服器請求,並使用HTTP協議傳送超文本及多媒體內容。
在不同版本的Linux作業系統會把各個設置項分在了不同的配置文件中。
在Redhat上
/etc/httpd/conf/httpd.conf
預設站台根目錄就在此檔中定義
關鍵字DocumentRoot "/var/www/html"
若有更改可以測試config配置有沒有異常
下這個指令會輸出有沒有哪行錯誤
apachectl configtest
在Ubuntu上
/etc/apache2/apache2.conf
預設站台根目錄 關鍵字DocumentRoot
如果在此檔找不到DocumentRoot關鍵字
那就會是在/etc/apache2/sites-available/000-default.conf (假設你沒有用虛擬主機多台情況下預設配置檔案)
Apache在啟動時會自動讀取這個文件的配置信息,而其他的一些配置文件,如httpd.conf等,則是通過Include指令包含進來。在apache2.conf中可以找到這些Include段落。
# Include module configuration:
IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf
# Include list of ports to listen on
Include ports.conf
# Include generic snippets of statements
IncludeOptional conf-enabled/*.conf
# Include the virtual host configurations:
IncludeOptional sites-enabled/*.conf
Linux Ubuntu Apache上的管理配置筆記
https://coolmandiary.blogspot.com/2023/06/linux-ubuntu-apache.html
Apache管理常規操作整理2
https://coolmandiary.blogspot.com/2023/06/apache2.html