久しぶりの備忘録です。
事象
nssをyum updateしたら、phpで作成したAPIが動かなくなった。
で、apacheのエラーログに
/usr/sbin/httpd: symbol lookup error: /usr/lib64/libnsssysinit.so: undefined symbol: PR_GetEnvSecure
というメッセージがどばーっと出力されていた。
十中八九nssのアップデートのせい。
原因
nss をアップデートした後に、webサーバアプリケーション(今回の場合はApache)の再起動をしていなかったからでした。
ライブラリがnssアップデートによって新しくなったにも関わらず、httpdが古いライブラリをつかんだままになっていたからだと思います。
ざこいミスをしてしまった・・・
解決方法
apacheの再起動をして解消。
service httpd stop
service httpd start
ちなみに、restartだとだめだという記事を見つけたため、stop & startで実施しました。
なぜrestartだとだめなのかは理解していない・・・。
後で読み込んでみます・・・。
nssってなんぞや?
Network Security Services (NSS) は、SSL をサポートするオープンソース暗号化ライブラリのセットです。cURL などの複数の Linux ツールは NSS を使用して、信頼される SSL 通信を確認します。
https://access.redhat.com/documentation/ja-JP/Red_Hat_Enterprise_Virtualization/3.2/html/Developer_Guide/Network_Security_Services_NSS_Database.html
暗号化通信のためのライブラリみたいなもののようです。
いろいろなソフトウェアがこのライブラリを使って通信しているようなので、nssアップデート後はサーバの再起動をしたほうがいいかもですね。
コメント