Proxmoxでサーバ構築

イメージ
これまでテスト用にi5第8世代の廃棄PCを使用してきた。 とはいえ今の所何も問題は起きていないが、入れ替えも視野に入れ予備サーバを用意することに。 - メモリ:16GB - SSD:500GB - DDNS+Let's Encrypt - Ubuntu24.04 この環境なので、すぐに構築し直すことは可能だが、とりあえずこのまま置いておいて別のサーバを立てることにする。 最初はRaspberryPiで構築しようと思ったけれど、本体電源+外付けHDD電源+ディスプレイ電源と考えると、邪魔なので廃案。 そこで廃棄しようと思っていた「Lavie NS300/N」が手元にあったので、これを利用することに。 一応バッテリーは正常に動作するので、UPS代わりにそのまま。 - Core™ i3-8145U(やや非力) - メモリ:8GB(少ないが…) - HDD:1TB なので、これまで使用しているものより、若干スペックダウン。 ただ用途は、非常勤で教えに行っている専門学校生用の練習マシンとする予定なので、まぁ問題なさそう。 Proxmox導入 直接、Linuxを導入してもよいのだけれど、今回は Proxmox を導入し、その上でUbuntu Serverを動作させる計画。 USBにProxmoxのイメージを焼いて、インストールすれば問題なく完了。 ただ、現在のバージョンはdebian - trixieがベースになっているので、若干参考になるサイトが少なめ。とはいえ旧版のは参考になるので調べつつ… HDDなだけあって、最初の起動は少し遅いものの、立ち上がってしまえば問題ない。 さぁ、VMにするかCTにするか…。 GUI使うのであれば、VMかなぁ。サーバだしCTでいいかぁ。 という程度の選定で、CT(コンテナ)で進めることに。 - メモリ:4GB - CPU:2 - HDD:20GB(root disk) - HDD:400GB(home用) - Ubuntu24.04 という構成で進めることにした。 テンプレートを用意して、初期設定を行い起動。 まぁすんなりと入った。 液晶を閉じたら、Suspendになってしまったので、若干設定変更。 $ sudo nano /etc/systemd/logind.conf HandleLidSwitch=ignore $ sudo sy...

PostgreSQLでEUC_JPのテーブル

今さらEUC_JPって感じだけど

すでにサーバ環境がUTF-8をデフォルトとするようになって、随分経っているので必要となるケースは少ないんだけど、今回はハマりました。

通常であれば、UTF-8でDBを構築していけば、特に問題もなく引っかかるようなところは何もないのだけれど…。
サーバの移行のため、仕方なくEUC_JPを使うことに。

旧データベースは、プログラムもEUC_JPで構築されている。
プログラムの書き換えは動作検証に時間がかかるので、そのまま動かしたい。

まぁPostgreSQLは文字コードを選べるので、問題ないだろうと…。

サーバにPostgreSQLをインストール

これは問題なく、いつも通りapt-getで入れてオシマイ。
何も引っかかるところはありません。

ついでに、phppgadminも入れておく。
これで作業が簡単になる。

旧サーバにも入っているので、確認がしやすいですな。
若干、バージョンが異なっているので、その点だけ要注意と。

さてphppgadminを使ってDBをEUC_JPで作ろうとしたら、上手くいかない。
createdb: database creation failed: ERROR:  encoding EUC_JP does not match locale en_US.UTF-8
見慣れぬエラーですね…。しかもDBは作成してくれない。

何か操作を間違えたのかと、見直すが、特に手順に問題はない。
「ERROR:  encoding EUC_JP does not match locale en_US.UTF-8」でググってみると 、最初に答えが見つかった。

名称未設定:Ubuntu12.04LTSのPostgreSQLでEUC_JPのデータベースを作る」とまんま同じ内容だった。

これによると、
createdb -T template0 -E EUC_JP --locale=C dbname
と、localをCで作りなさいということらしい。

試しに、コンソールから試してみると、確かに文句も言われず作成してくれる。

phppgadminでもできるはず 

この方法は、postgresユーザで作業するコンソール上のコマンドなので、phppgadmin上で異なるユーザで作成したい。

試してみるが、どこに設定すべきか分かりにくい。

何度か試してみると、図のようにすれば思うように作成できることがわかった。

Template→template0を選択(UTF-8の時はtemplate1)
エンコード→もちろんEUC_JP
CollectionとCharacterType→Cで設定

これでOKだった。

ここまでくれば、あとはdumpデータを突っ込んでやればOK。

と思ったら、「サーバが指定されていません」って…。見たことのあるメッセージや!
半年以上経つと、すっかり忘れて同じミスをしでかす。

だからこうやってブログにまとめておく必要があるんだなぁwww

ちゅうことで、php.iniを書き換えて解決とな。


コメント

このブログの人気の投稿

Ubuntu24.04 でGUIが死んだ

VirtualBoxが異常

MEGAにも弱点があった?