2023年12月8日 星期五

apache 2.4.52 to 2.4.57 another method

 


RHEL8本來只有支援apache 2.4.37,本來透過codeit.repo升到2.4.52,最近要升到2.4.57

(2.4.58要使用openssl 3.0以後的版本,是超大工程,因此就升到2.4.57)


以下講一下流程。

這一次自己編RPM檔來升版,本來以為會跟上次一次順利完成,但其實問題也不少,因此記錄一下。

cd /root/rpmbuild/SOURCES

rpmbuild -tb httpd-2.4.57.tar.bz2

記得先把相關設定檔備份好 (理論上yum會幫你備,但我的case他沒有備對,可能是我做過太多升版降版的測試的關係)

dnf localinstall httpd-2.4.57-1.x86_64.rpm httpd-manual-2.4.57-1.x86_64.rpm httpd-tools-2.4.57-1.x86_64.rpm mod_ssl-2.4.57-1.x86_64.rpm 

其它同時編譯出來的RPM檔就看你的需求。

倒回設定檔 (/etc/httpd/conf/httpd.conf)及其它的設定檔。這邊有一個問題。

我原先的2.4.52在讀取modules 是這樣讀的

Include conf.modules.d/*.conf

但升版後這個conf.moduels.d的目錄不見了。

所以我改回自己讀。

例如:

LoadModule mpm_prefork_module /usr/lib64/httpd/modules/mod_mpm_prefork.so

這邊預設是讀mod_mpm_event.so,會有MPM的錯誤訊息,所以我改讀mpm_prefork

我這邊用絕對目錄。如果要用相對目錄的話,

要調整以下的參數:

ServerRoot "/etc/httpd"


復原後發現PHP不能跑(因為httpd相依的php rpm被移掉了),回頭下載php-7.2.24-1.el8.x86_64.rpm

rpm2cpio php-7.2.24-1.el8.x86_64.rpm | cpio -idmv

取出libphp7.so搬到/usr/lib64/httpd/modules/


SSL的部份也一樣在升版時mod_ssl被刪除了,下載mod_ssl-2.4.58-1.el8.x86_64.rpm,取出mod_ssl.so

wget https://pkgs.dyn.su/el8/modular/x86_64/httpd/mod_ssl-2.4.58-1.el8.x86_64.rpm

rpm2cpio mod_ssl-2.4.58-1.el8.x86_64.rpm | cpio -idmv

放到/usr/lib64/httpd/modules/

再修改httpd.conf

LoadModule ssl_module /usr/lib64/httpd/modules/mod_ssl.so


這樣就差不多了。有開放使用者個人網頁的話,記得修改httpd.conf,新增:

LoadModule dir_module /usr/lib64/httpd/modules/mod_dir.so

LoadModule userdir_module /usr/lib64/httpd/modules/mod_userdir.so


有要跑cgi-bin的perl的話,記得修改httpd.conf,新增:

LoadModule cgid_module /usr/lib64/httpd/modules/mod_cgid.so


另外我的webgit也壞了,後來修改/etc/httpd/conf.d/gitweb.conf才跑出來。

有加#號的是原先的設定。

猜想是因為mod_fcgid.x86_64 : FastCGI interface module for Apache 2 這個模組也被刪掉的原因


Alias /git /var/www/git


<Directory /var/www/git>

  #Options +ExecCGI

  #AddHandler cgi-script .cgi

  #DirectoryIndex gitweb.cgi

  Options +ExecCGI +FollowSymLinks +SymLinksIfOwnerMatch

  AllowOverride All

  order allow,deny

  Allow from all

  AddHandler cgi-script cgi

  DirectoryIndex gitweb.cgi

</Directory>


另外在升版apache時,其實php-pear也被移掉了,但我好像只有之前測試multithread時有用到,因此就不裝回了。需要時再說吧。


本來由於設定檔沒有備到,打算降回2.4.52,但只能降到2.4.37(AppStream),而且設定檔也不會回來了。只好硬著頭往上升,

還好順利完成了。

後來才發現可以透過codeit升到apache 2.4.57,但同樣要解決php等幾個軟體的相容性問題。

但也記錄一下,可以看到有2.4.57及2.4.58的版本供選擇。

dnf module enable httpd:codeit

dnf module list httpd:codeit

dnf module info httpd:codeit

接著再用dnf或yum來處理。看的出來CodeIT確實有提供apache 2.4.57了

# yum --enablerepo=CodeIT info httpd

Updating Subscription Management repositories.

Unable to read consumer identity

Last metadata expiration check: 3:39:17 ago on Sun 10 Dec 2023 11:54:01 AM CST.

Installed Packages

Name         : httpd

Version      : 2.4.57

Release      : 1

Architecture : x86_64

Size         : 4.6 M

Source       : httpd-2.4.57-1.src.rpm

Repository   : @System

From repo    : @commandline

Summary      : Apache HTTP Server

URL          : http://httpd.apache.org/

License      : Apache License, Version 2.0

Description  : Apache is a powerful, full-featured, efficient, and freely-available

             : Web server. Apache is also the most popular Web server on the

             : Internet.




2023年8月14日 星期一

build apache http server 2.4.x rpm package on centos 7

目前系統上跑的是httpd-2.4.52,但在codeit上並沒有提供httpd-2.4.57讓我升版。

之前依習慣就自己下載tarball來編譯安裝,但這一次在做OpenSSH升版時想到可以用rpmbuild做rpm檔來裝。所以就想在httpd上也如法泡製。

1、下載檔案至rpmbuild的SOURCE目錄,我的目錄本來就有..可能之前就有玩過了..

為了保險,還是先做目錄:(先yum install rpm-build 然後還是要自己建目錄)

mkdir -p /root/rpmbuild/SOURCES

cd /root/rpmbuild/SOURCES

接著把檔案下載回來:

wget https://dlcdn.apache.org/httpd/httpd-2.4.57.tar.bz2

2、把apr及apr-util的rpm裝起來

3、把該裝的東西補一補:
yum install autoconf libuuid-devel lua-devel libxml2-devel wget rpm-build autoconf zlib-devel libselinux-devel libuuid-devel pcre-devel openldap-devel lua-devel libxml2-devel  openssl-devel apr-devel postgresql-devel mysql-devel sqlite-devel  unixODBC-devel nss-devel expat-devel mailcap libtool gcc-toolset-11-gcc
4、來做RPM檔,如果過程中有錯誤訊息,應該就是有東西沒有裝到。
像我在nm卡了一下,才發現是gcc-toolset-11-gcc沒有裝。
rpmbuild -tb httpd-2.4.57.tar.bz2
5、把rpm檔裝起來:
cd /root/rpmbuild/RPMS/x86_64
dnf localinstall httpd-2.4.57-1.x86_64.rpm httpd-devel-2.4.57-1.x86_64.rpm httpd-manual-2.4.57-1.x86_64.rpm
這樣就好了。

其實他也是用tarball幫你編譯安裝,但好處是你不用再考慮路徑的問題。
例如我在用tarball安裝時,bin檔如果沒有指定目錄,會裝在/usr/local/bin,但用rpm安裝,就會在/usr/bin 這樣日後要移除或升版的話,在管理時會輕鬆很多。






OpenSSH更新心得 (after upgrade couldn't auto login server without password)

 OpenSSH有資安問題,建議更新。


好,我更新。

更新之後,發現本來可以auto login的設備都不通了。

簡單,public key更新就好。

更新後也不行。

看了一下debug訊息,不接受RSA?合理,改用ed25519。

欸,還是不行。

試了一個小時,好吧,我先換回舊版......

剛看了說明,似乎用RSA key 長度 2048 以上可以,但...我累了。改天吧 XD

 
補充一下:在client看到的錯誤訊息是這個:no mutual signature algorithm

有趣的是,在server用/usr/sbin/sshd -d -p 2222 再從client測試竟然看不到明顯的錯誤訊息。

最後還是還是解決了,其實在client這樣下就可以了:

ssh -o 'PubkeyAcceptedKeyTypes +ssh-rsa' myself@example.server.com

不過奇怪的是,在serer的sshd_config加PubkeyAcceptedKeyTypes +ssh-rsa 竟然沒有效...

原來是要在~/.ssh/config (只改該使用者) 或是在 /etc/ssh/ssh_config (改整台機器) 加上此設定才有效。

補充一下,用rpmbuild安裝輕鬆很多。
可以直接參考下文:
https://blog.csdn.net/m0_37682535/article/details/119254661

2023年7月19日 星期三

2018 - 日本東北賞雪行 - 最上川游船&銀山溫泉

這次的旅行都很美好,所以我實在講不出哪一天的景色最好。 

 總之,今天的行程也是超棒的。 一早先我們先搭火車,從山形站搭到新庄站(我們當然是搭新幹線),再轉一般火車到古口站。 


 



這個時候還是跟媽媽牽手的小寶弟,每次看他們母子牽手走路就覺得很幸福
 
上車前來張大合照 

整段路程大概1.5小時。 搭火車到古口站之後,再走一小段路就到坐船的地方 (票記得要上網先預定船票) 
 
 

要上船前偷拍一張,這邊就可以看出山色的蒼茫了

 
 

景色真的很美,跟立石寺相比也不遑多讓


船上倒是滿溫暖的,船夫唱著歌,可惜我聽不懂

船一路坐到草薙港,接著坐接駁車到高屋站,再坐火車回到新庄站,再搭新幹線回到山形站(我們是再坐到大石田站,準備坐公司去銀山溫泉。接駁車一小時一班,記得算好時間,如果沒有搭到車的話又要等一小時以上。

補一下最上川的照片:




<<











接著我們要從大石田站坐公車往銀山溫泉,這邊讓人記憶深刻的是,除了車要等很久之外。
人也要站很久(車程大概40分鐘以上)。還好我家公子年少,大家都讓位給他(感謝善良的日本人及台灣人)。


其實我覺得晚上打燈的銀山溫泉比較美,但限於預算,我們只好隨意拍了些照片就離開。
但讓人印象深刻的是,這裡的公共廁所滿髒的。


回程有點擔誤時間(一樣是站50分鐘回大石田站)。所以我們隨意在大石田站車吃點東西。沒有想到ラーメン長作出人意外的好吃。

吃飽後我們從大石田站坐新幹線在宇都宮下車,再轉JR日光線到日光市。準備一整日的日光之旅。










2023年7月17日 星期一

Fortigate HA 快速升版的心得

借一張圖片來說故事。 我們的FW要升版(有做HA),但要升七次 (照FG原廠的upgrade path就是這麼回事)。 先上傳firmware,然後他會自動去升standby,然後自動把standby重開機接著重開機後的standy就會變成新的active,然後他會去升現在的standby(本來的active). 升完後再切換回來 (active及standyb交換),變成升版前的配合。 升版過程中,大概掉五個封包(以Windows的ping法)。

不過這樣有點久(兩台都升一次大概20分鐘),七次就要140分鐘,而且有時候會很慢,所以抓25分鐘比較保險。 所以七次就是3個小時 (順利的話)。

有點久,所以我試了一個方法。就是先把HA斷開(其它的線都要拔掉),專心把它升到你要的版本,這樣大概80分鐘。接著把它的ha priority調高。讓它去搶active。 接著再上傳firmware,這樣就換成standby重開機(本來的active)。重開後,它會再把現在的active重開一次 這樣就完成了。大概花120分鐘吧。

最好的方法當然是有一台備品讓你先升完再改線。但在沒有多的機器的狀況下,這個選項就消失了。

2023年7月15日 星期六

2018 - 日本東北賞雪行 - 藏王樹冰與山寺(立石寺) (山形->藏王纜車山麓站->藏王樹冰->JR山寺站->山寺)

 一早吃完東橫INN的免費早餐,從東橫INN 山形站西口出發。步行約10至15分鐘,到山形站前買公車票,往藏王纜車山麓站,路程約1小時。





我們買的是公車纜車的一日券,2018年買的時候是4100日元。




一路上都是~雪~一片一片一片。


不久後,就到了藏王纜車山麓站,大家烤烤火(有一個很大的煤油暖爐,大家圍著它取暖)。
喝點熱飲,接著步行至藏王溫泉纜車站,準備坐纜車看藏王樹冰。



藏王溫泉街,不過室外很冷,大家都趕快往前走。


路上走走拍拍,小男孩都很愛交通工具





走大概15至20分鐘之後,就到了纜車站,拿出在公車站買的一日券,換成纜車票。準備坐纜車。

賞雪賞楓。




幫還很可愛的小寶弟拍個照。

然後排隊上纜車,是小型的纜車。



可惜今天風雪大,沒有辦法看的很清楚。但是意思到了。纜車有兩段,中間需要換車。

在第一個纜車站(換車點),有很可愛的小雪人。




到了山頂,跟姊姊出去走走,結果雪太厚,姊姊摔倒。還拉著我一起倒,還好我夠胖(?),沒有被拉倒。還把她拉起來。


吹完雪,進咖啡廳喝一下熱飲。公子大人當然只能喝熱可可,熱咖啡是我的。

在這邊吃個午餐,再原路回到山形站(央車站),準備搭JR去山寺站。

山寺站其實很美的,不曉得當時我怎麼會把他拍成這樣...



正常是這樣才對。


大家拍個照就出發囉!



從山寺站走到立石寺(山寺),大概5~10分鐘,我們決定慢慢走過去。不過到了立石寺之後,老媽看到要爬上去就決定自己走回車站休息。於是我們四個人就自己上山。


小男生就是喜歡交通工具

忘了拍入場券有點可惜。
我媽是看到這種路就放棄了...還好我們有堅持爬上去。

不得不說,立石寺是我去日本最美好的回憶之一,景色實在太美了。







到山頂的景色是無敵的。我家兒子大呼小叫說自己爬不下去了,但他最後還是爬上了觀景台。我們真的要給這個當時只有6歲的小男孩一個respcect。

最後我們就走回山寺站,老媽投了杯熱飲逕自享受著。大家一起坐火車回山形站。為了獎勵大家的辛苦,今天在車站吃金華豬排.結束這精采的一天。





































2023年7月14日 星期五

2018 - 日本東北賞雪行 - 啟航 (高雄->東京->山形)

 這一次要帶老媽去賞雪,坐的是香草航空:



我滿喜歡香草的,可惜後來就跟樂桃合併了。

去程機票的價格是:17,390 TWD (五個人,其中兩個人買了25kg的行李),在2023年的現在回頭去看,真的是便宜的出奇。

1/26就是從高雄出發,這一次我身體已經好的差不多了,就沒有比較特別的事情需要記錄。


那就放些照片好了。每次去日本,都會覺得孩子長大了一些。


感覺日本都在下雪啊....




慢了一步。車開走了,孩子倒是很開心。(其實要坐的是NEX,不是這一台啦)

NEX車頭超帥,可惜沒有拍到。


找一張NEX成田特快的照片來記錄,兒子小時候超喜歡這台小火車。


到了東京,先坐車到東京車站轉車。這一次是老婆規劃的,所以我沒有記得那麼清楚。應該是用JR東日本鐵路周遊券,從機場坐到東京站,再從東京站轉新幹線到山形站。當時JR東日本鐵路周遊券是可以不必連續使用的。真好。

傳說中,看到新幹線的孩子都會幸福。但是我們要坐的並不是這一台... XD。
因為要去山形縣,所以坐的型號是E3,它是供新幹線直行特急(迷你新幹線)使用的。

到了福島車站,東北新幹線與秋田新幹線分離是重頭戲。
可惜沒有拍到好照片...(因為我們人在車上啊啊啊啊啊)




但是這種迷你新幹線,真的超慢的。最高時速只有100多公里,再加上大雪,所以我們本來表定到山形是應該是晚上九點,結果十點才到。


山形站到了,有樂高做的新幹線。



然後我們找飯店時又繞了一圈 XD (我果然路痴),所以又多花了十幾分鐘才到飯店,還好我最愛的家人都沒有怪我。而且飯店旁的餐廳還開著(感動),山形的物價真的不高。是個親民的好地方。

這一次住東橫INN 山形站西口,兩天晚餐都是吃這一家どんQ製麺,價廉味美。

除了雪,還是雪,姊姊很高興就是了 XD