CentOS5 + Perl環境のシステムを更新
作業事例の紹介です。
CentOS5上で動作していた社内システム(他社様で開発したもの)の更新作業を行いました。
かなり以前(2009年頃?)に構築された社内システムが構築当初からのCentOS5サーバー上で動作していたのですが、CentOS5もだいぶ前にEOL(End of Life)になっており、今後の機能開発やメンテナンスのためにもOS類を新しいものに更新したいということでお問い合わせをいただきました。
いつもはPHPのシステムを扱うことが多いのですが、今回はめずらしくPerlを使ったシステムでした。
作業内容
- CentOS5が動作するサーバーから新しいサーバー(Rocky Linux10)への移行
- PerlやPostgreSQL等のミドルウェア類も新しいものに更新
- 社内システムもこれらの更新に合わせて修正対応
- 新環境でのテスト作業
- テスト作業で見つかった潜在不良のレポート(簡単に直せるものは修正)
対象システム
- 社内システム(スケジュール管理、見積り管理等々)
- Perl/PostgreSQLにて構築されたもの
- 画面数(テンプレート数)は400程度
作業期間
2025年11月~2026年3月
作業における所感
普段ご依頼いただくサーバーの移行作業や更新作業では、PHPで構築されたシステムが対象になることが多いです。PHP自体は開発が活発で毎年新しいバージョンが出てきますが、毎回、互換性のない変更がそれなりに含まれるので、例えばPHP5からPHP8へ切り替える場合などはそれなりに修正箇所が多くなります。
一方、Perlは枯れておりバージョンアップは定期的に行われているものの、互換性のない変更はほとんどありません。 さすがにCentOS5のデフォルトであるPerl v5.8.8からですと、利用しているパッケージ類を含めるとそれなりの修正は必要でしたが、それでもPHPで構築されたシステムの時ほど大規模な改修は発生しませんでした。元々開発された時期がかなり古いため、utf8フラグを意識していなかったりしたので、エラーの修正と既存動作の維持を両立する方針で、このあたりの調整を行いました。
Perlモジュールも新しくする必要があったため、互換性がどれだけ維持されているか若干不安もありましたが、外部依存しているのも最低限のモジュールだけだったので助かりました。
あとはPostgreSQLを9から17に更新したことにより発生したエラーはテストで洗い出しつつ、無事に新環境に対応させることができました。
また、長く使われているシステムですとほとんど使われなくなった機能もあり、中には動作しなくなっていた部位もありましたので、それらの潜在不良はリストアップしてレポートしました。
PHPで構築された古いシステムを更新する際、フレームワークなどが使われているとそれらのバージョンアップも行わなければならず、結構大変になることが多いんですよね。 今回のシステムはフレームワーク/ライブラリのような外部パッケージはあまり使わず、素朴な作りになっていたのが功を奏したように感じます。 見積り時に想定した修正内容から大きく外れることなく、移行作業を完了させることができました。
投稿日:2026/03/12 11:44