因為鸚鵡習慣使用 RPM 來管理 server 上的套件,所以都會盡可能將 source 打包成 rpm 檔案後在安裝,方便日後的版本管理或移除。所以這篇教學主要是打包成 rpm 檔案再進行安裝
環境:
- CentOS 7 (7.2.1511 x86_64)
- Apache 2.4.6
安裝所需套件:
- rpmbuild 及依賴的相關套件
- 編譯環境
- Apache 的開發環境
- 檔案下載工具
1 2 3 4 |
[user@host ~]$ yum install rpm-build [user@host ~]$ yum install make gcc [user@host ~]$ yum install httpd-devel [user@host ~]$ yum install wget |
所需檔案:
- mod_watch: 義守大學載點 或 FileWatcher
- RPM的 spec 檔案:httpd-mod_watch-rpmbuild.tar
檔案取自 GitHub,鸚鵡針對環境稍做修改,並加入一個 patch 檔案
開始進行操作:
1 2 3 4 5 6 |
[user@host ~]$ mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS} [user@host ~]$ wget -P ~/rpmbuild/SOURCES http://ftp.isu.edu.tw/pub/Linux/Gentoo/distfiles/mod_watch403.tgz [user@host ~]$ wget https://ezbox.idv.tw/files/2016/03/httpd-mod_watch-rpmbuild.tar.gz [user@host ~]$ tar zxvf httpd-mod_watch-rpmbuild.tar.gz -C ~/rpmbuild/SOURCES/ --strip-components 2 [user@host ~]$ rpmbuild -bb --clean rpmbuild/SOURCES/httpd-mod_watch.spec [user@host ~]$ ls ~/rpmbuild/RPMS/x86_64/ |
- 建立 rpmbuild 的工作目錄
- 下載 mod_watch: 這邊使用義守大學的載點,檔案遺失可以自行更換其他載點
- 下載 鸚鵡修改後 的 spec 檔案 及 所需的 patch 檔案
- 將 httpd-mod_watch-rpmbuild.tar.gz 解壓縮到 ~/rpmbuild/SOURCE/ 裡面
- 打包成 rpm檔案,需要 src.rpm 檔案的話請將參數 -bb 改成 -ba
- 完成後檔案會放在 home 目錄下的 rpmbuild/RPMS/x86_64/ 資料夾裡面
- 最後自行使用 rpm 指令安裝即可
安裝完成後,可以開啟 /etc/httpd/conf.d/99_mod_watch.conf 進行設定
因為鸚鵡安裝 mod_watch 主要是要搭配 cacti 使用
所以設定檔就只限制 server 本機瀏覽
1 2 3 4 5 6 7 8 9 |
LoadModule watch_module modules/mod_watch.so <IfModule mod_watch.c> <Location /watch-info> SetHandler watch-info order allow,deny allow from 127.0.0.1 </Location> </IfModule> |
另外,上面有提到鸚鵡有增加一個 patch
主要是不讓 mod_watch 的相關資訊出現在 Apache 輸出的 Server header 裡
若不想隱藏,可以在 rpmbuild 指令前自行註解 httpd-mod_watch.spec 檔案的第55行
49 50 51 52 53 54 55 56 57 |
%prep %setup -q -n mod_%{mod_name}-4.3 %patch0 -p1 %patch1 -p1 %patch2 -p1 %patch3 -p1 #%patch4 -p1 %build |
以上是鸚鵡的安裝方式
2018.03.27 更新
檔案 httpd-mod_watch-rpmbuild.tar.gz 增加一個 patch 檔案
修正 mod_watch_cacti.pl 請求時可能得到 HTTP 400 Bed Request 的問題