久しぶりのLinux構築。
最近は、新人にやらせる事が多くて、こちらに回ってこなかったけど、今回は来たぁぁぁぁ。
OS
OSは、RedHat Enterprise Linux 8.2。
どうやら仮想環境でディスクイメージがあるらしく、さくっと用意された。
OSのインストール出来なかったが、まぁ、仕方ないか。
ただ、構成が最小限?らしく、apacheが入ってなかったので、メディアをマウントして、リポジトリ登録して、dnfコマンドでapacheを入れておく。
残りは、OSメディアに入ってないので、個別にインストールする。
Oracle19c
rpmが用意されていた。rpmになったんだなぁ。
Preinstallのrpmが無かったので、追加で置いてもらった。
Preinstallを入れると、事前作業全部やってくれるみたい。
Oracleは事前作業がクソ面倒だったので、これいいっ。
本体もrpmでさくっと入れる。
めっちゃ楽になった。
DB作成用のファイルがあるので、コピーして、CDB名とPDB名を変更して、実行。
15分で完成。
楽っ。
もうすぐコンテナ対応が必須になるそうなので、現行サーバでは採用していないコンテナを採用しておいた。
というか、DB作成用ファイルがそのようになってたので、めんどくさくてそのまま使ったからだけどw
コンテナに対応したからかORACLE_SIDが機能しない。
どういう事?
どうもsqlplusで接続時は必至になったっぽい?
って所で、一回ブラウザ落ちた。文章全部消えたぁぁっぁぁぁっぁぁ。
気を取り直して、書き直し。
tomcat9
tar.gzのファイルが置いてあったが、現行サーバを調べるとrpmで入れてるっぽいので、rpmを置いてもらう。
さくっとインストール。
しかし、tomcatは設定がめんどくせぇ。全部xmlとかクソすぎ。
現行サーバ見つつ、適当に設定していく。
mod_jk
tomcatとapacheを繋ぐヤツ。
コンパイルしようとしたら、configureでCコンパイラねぇぞ、って怒られる。
そこまで最小構成かよと思いつつ、dnfコマンドで開発ツールグループをインストール。
make、make installで終わり。
設定ファイルは、現行サーバをぱくり。
webアプリ
現行サーバに入れてあるwebアプリ関連を全部持って来て入れる。
ファイルのオーナー・グループが数字(ユーザID)になっている箇所があったので、適宜、追加しておく。
最後にwarファイルを設置して完了。
問題発生
では、ブラウザでアクセス~、ってエラーかよ。
そういやログ全然見てないな、とログ確認してると、tomcatでjarが無いと怒られた。
はい?現行サーバのjar全部入れたよ。
と思ったら、tomcatのlibディレクトリの場所が変わってる。
新しいtomcatに合わせた方がいいんだろうけど、依頼人の要望により、旧tomcatに合わせてlibディレクトリ変更。
さぁ、どうだっ。
あれ、エラーだ。
ん?jarの全部ではなく一部でエラーだ。
ファイルが存在しないだと?
よくよく見るとjarファイルのオーナーが違う。んで、権限が無くて読み込めなかったらしい。
おいおぃ、現行サーバから持ってきたので、現行サーバからの問題じゃねぇの?と思いつつ、どうでもいいので報告しないw
jarファイルのオーナー変更したら、jarのエラーは無くなった。
しかし、未だに謎の警告がでる。
これは、どうやらtomcatが新しくなって、仕様が変わったらしい。
warファイルのcontext.xmlを修正すれば解消するが、warファイルの修正は影響が大きいので、無視する事にした。
警告だし、動作には問題ないだろ。
まだ駄目だ。
あちこちログ見てると、8009がと言われてる?
設定したじゃん、とtomcatの設定ファイルを確認。
書いてあるぞ、何いってんだ?
でも、netstatで見ると確かに8009は開いてない。
はぁ?
ここでめっちゃ時間食ったが、設定ファイルに書いてあった内容は、コメント化されてたww
もともとtomcatの設定ファイルって、コメントが多すぎてどこが有効なのか、見分けるのが手間だった。
がっくりしながら、コメント外したら、ブラウザでアクセス出来た。
さらに問題発生
webアプリのトップ画面はログイン画面。
さっそくログイン!
システムエラー。
うぇ。
今度は何だ。
各種デーモンのログでは問題ないな。
あぁwebアプリのログか。
と思ったら、webアプリのログディレクトリがないっ。
現行サーバからごっそり持ってくる。ディレクトリ構成が複雑で作るの面倒だし。
ログイン試行して、ログ確認すると、DBに繋がってないっぽい。
はぇ?DB動いてるぞ。
試しにtomcatユーザにスイッチして、sqlplusで、、、繋がらない。
そういや、DBの確認は、全部oracleユーザでやってたな。
oracleユーザで繋がるのに、別ユーザで繋がらないって何よ。
原因は、tnsnames.oraがoracleグループにしか許可されてなかった。
まぢかよ。
接続したければoracleグループに入れろって事か?
現行サーバでは、そのような設定になってなかったので、tnsnames.oraを他人でも読み込めるようにした。
まだ駄目だった。
どうやら、Oracleがコンテナ構成の場合、SIDアクセスするWebアプリ使う時は、listener.oraに設定を追加しないとダメらしい。
追加してlistenerをreloadしたら、繋がった。
確認
ブラウザでアクセスして、ログインしたら、メニュー表示された~。
ようやく動いた。
総評
なんというか、久しぶりのサーバ構築で、もろもろ手間取った。
Oracleのコンテナが意味分からんし。
ORACLE_SID使えないとか何なの。
あと、tomcatの設定ファイルのコメント地獄。
1個は新しい技術で、1個は見落としか。
見落としは、だっせぇな。
まぁ、久しぶりに楽しめたからいいかっ。