2021/07/21(水) [n年前の日記]
#1 [debian][linux][prog] 自宅サーバ内の一部のCGIが動かなくなった
自宅サーバがハードウェア的に壊れて、代替機に変えたことで、OSも変わり、Apache2 のバージョンも上がり、Perlのバージョンも上がったわけだけど。そのせいで自宅サーバ内のCGIの一部が動かなくなっているようで、妹から「CGIが動いてない」と報告が…。
念のために、今現在の自宅サーバの環境をメモ。
調べてみたところ、動かない原因は、大抵2つが絡んでる模様。
念のために、今現在の自宅サーバの環境をメモ。
- OS : Debian Linux 10 buster 32bit版。
- Apache2 : 2.4.38-3+deb10u5
- Perl : 5.28.1
調べてみたところ、動かない原因は、大抵2つが絡んでる模様。
◎ jcode.plが古過ぎる。 :
まず、あちこちのCGIで使っている jcode.pl が古過ぎてエラーを出す。
昨今の Perl は defined() を使わないような記述を要求されるけど、jcode.pl は昔の Perl で動くように書かれているから defined() も使っていて…。
これは、以下のように修正しないといけない。
ググった感じだとPerl界隈では、
「jcode.pl なんて使ってんじゃねえ。古過ぎる」
「Jcode.pmも既に古い。それも使うな」
「今時の Perl は標準で Encode.pm が入ってるんだからソレを使うように書き直せ」
という風潮になってるようで。
ただ、WebからCGIスクリプトをDLして設置して動かしてるだけの人に、ソースを丸々書き直せと要求するのも…。いやまあ、今時、サーバにCGIを設置する人なんて開発者の類しか居ないだろうからアレではあるのだけど。CGIどころかhtmlを書いてアップロードする機会すらほぼ皆無だろうから、そりゃまあ「CGIを使いたい? するとお前はそういうスキルを持った人種だな。ソースを書き直せ」とか言い出すわな…。
さておき。せめて最新の jcode.pl を設置してみようと思っても、入手場所がよく分からず…。
ftp://ftp.iij.ad.jp/pub/IIJ/dist/utashiro/perl/ というURLを見かけたけど、今時のブラウザは ftp:// を開けないじゃんよ…。
_jcode.pl - Wikipedia
昨今の Perl は defined() を使わないような記述を要求されるけど、jcode.pl は昔の Perl で動くように書かれているから defined() も使っていて…。
... &init_z2h_euc unless defined %z2h_euc; ... &init_z2h_sjis unless defined %z2h_sjis; ...
これは、以下のように修正しないといけない。
... &init_z2h_euc unless %z2h_euc; ... &init_z2h_sjis unless %z2h_sjis; ...
ググった感じだとPerl界隈では、
「jcode.pl なんて使ってんじゃねえ。古過ぎる」
「Jcode.pmも既に古い。それも使うな」
「今時の Perl は標準で Encode.pm が入ってるんだからソレを使うように書き直せ」
という風潮になってるようで。
ただ、WebからCGIスクリプトをDLして設置して動かしてるだけの人に、ソースを丸々書き直せと要求するのも…。いやまあ、今時、サーバにCGIを設置する人なんて開発者の類しか居ないだろうからアレではあるのだけど。CGIどころかhtmlを書いてアップロードする機会すらほぼ皆無だろうから、そりゃまあ「CGIを使いたい? するとお前はそういうスキルを持った人種だな。ソースを書き直せ」とか言い出すわな…。
さておき。せめて最新の jcode.pl を設置してみようと思っても、入手場所がよく分からず…。
ftp://ftp.iij.ad.jp/pub/IIJ/dist/utashiro/perl/ というURLを見かけたけど、今時のブラウザは ftp:// を開けないじゃんよ…。
_jcode.pl - Wikipedia
◎ require が動かない。 :
昔の Perl は、require "hoge.pl" と書けば、同じ階層に存在する hoge.pl を読み込んでくれたけど、今時の Perl は同階層を検索してくれない状態になっていて。場当たり的な解決策として、require "./hoge.pl" と書けば、一応読み込んでくれるけど…。
◎ 余談。シバン行が合ってない。 :
動かなかったCGIの最新版をDLして動作確認しようとしたらそれでも動いてくれなくて結構悩んでしまったのだけど。1行目のシバン行が合ってなかっただけだった。あるあるだ…。当時は当たり前だったアレコレを、もうすっかり忘れてる…。トホホ。
_シバン (Unix) - Wikipedia
「#!/usr/local/bin/perl」と書けば動く環境と、「#!/usr/bin/perl」と書けば動く環境があって、配布されてるCGIは前者だったけど、ウチの自宅サーバは後者だった…。
よく分かんない時は「#!/usr/bin/env perl」と書いとけば、ひとまず最低限動いたはず…。ただ、コレも、悪習だの何だの言われてた記憶があるけど…。動かないよりはマシじゃんよ、と言いたい気持ちも…。
_#!/usr/bin/env - どさにっき
_卜部昌平のあまりreblogしないtumblr - #!/usr/bin/env ...
_シバン (Unix) - Wikipedia
「#!/usr/local/bin/perl」と書けば動く環境と、「#!/usr/bin/perl」と書けば動く環境があって、配布されてるCGIは前者だったけど、ウチの自宅サーバは後者だった…。
よく分かんない時は「#!/usr/bin/env perl」と書いとけば、ひとまず最低限動いたはず…。ただ、コレも、悪習だの何だの言われてた記憶があるけど…。動かないよりはマシじゃんよ、と言いたい気持ちも…。
_#!/usr/bin/env - どさにっき
_卜部昌平のあまりreblogしないtumblr - #!/usr/bin/env ...
[ ツッコむ ]
#2 [linux] KNOPPIX 9.1 DVDをUSBメモリにインストールした
先日まで KNOPPIX 8.6.1 DVD を使って作業をしていたけれど、KNOPPIX 9.1 DVD が公開されていると知ったので、手持ちのUSBメモリにインストールしてみた。メンテナンス作業やファイルの救出作業をする際に、USBメモリからブートさせて作業したい。
◎ USBメモリにインストール。 :
USBメモリの容量は8GB。DVD版を入れるので、4.7GBより容量が大きくないといけない…と思う。たぶん。作業は Windows10 x64 21H1上で行った。
使用したソフトは以下。
USBメモリは、SD Card Formatter 5.0.1 を使って、事前に初期化しておいた。
_KNOPPIX - Live Linux Filesystem On CD
KNOPPIX_V9.1DVD-2021-01-25-EN.iso をDL。
Windows10 x64 21H1 + VMware Player上で、KNOPPIX_V9.1DVD-2021-01-25-EN.iso を使って起動する仮想PCを新規作成。かつ、仮想PCを起動。
KNOPPIXの起動時に以下を打ち込んで、日本語表示/日本語キーボード/3D描画無効化/日本時間で起動させる。
VMware Player 側からUSBメモリを扱えるようにする。VMware Player のウインドウの右上の、リムーバブルメディアっぽいアイコンを右クリックして「接続」。これで、USBメモリがホストOS(Windows10)から切断されて、ゲストOS(KNOPPIX)に接続される。
KNOPPIXデスクトップ画面の、左下のスタートボタン → Knoppix → Install KNOPPIX to flash disk、を選択。ウイザード形式でUSBメモリにインストールするための指定をする。
書き込み先のメディアの容量をよく見て、USBメモリ以外に書き込んでしまわないように気を付ける。
書き込みが終わったら、USBメモリからブートさせる際の起動オプションを、あらかじめUSBメモリ内で指定しておく。
USBメモリ内の \boot\syslinux\ 以下、3ファイルを修正。
おおよそ、以下のような変更を行う。
これで、起動時にオプションを打ち込まなくても、日本語表示/日本語キーボード/3D表示機能無効化/日本時間でOSが立ち上がるように設定できる。
以下、参考ページ。
_Linux活用レシピ KNOPPIXの活用 最新版 KNOPPIX9.1 の日本語化
_KNOPPIX 9.1 DVD/CD 出てました - palm84.com
_KNOPPIX 9.1 CDで日本語版 Remaster USBメモリ作成 - palm84.com
使用したソフトは以下。
- SD Card Formatter 5.0.1。USBメモリの初期化に使用。
- VMware Workstation 16 Player 16.1.0 build-17198959。KNOPPIX 9.1 DVD を起動してUSBメモリにインストールするために使う。
USBメモリは、SD Card Formatter 5.0.1 を使って、事前に初期化しておいた。
_KNOPPIX - Live Linux Filesystem On CD
KNOPPIX_V9.1DVD-2021-01-25-EN.iso をDL。
Windows10 x64 21H1 + VMware Player上で、KNOPPIX_V9.1DVD-2021-01-25-EN.iso を使って起動する仮想PCを新規作成。かつ、仮想PCを起動。
KNOPPIXの起動時に以下を打ち込んで、日本語表示/日本語キーボード/3D描画無効化/日本時間で起動させる。
knoppix64 lang=ja xkeyboard=jp no3d tz=Asia/Tokyo
VMware Player 側からUSBメモリを扱えるようにする。VMware Player のウインドウの右上の、リムーバブルメディアっぽいアイコンを右クリックして「接続」。これで、USBメモリがホストOS(Windows10)から切断されて、ゲストOS(KNOPPIX)に接続される。
KNOPPIXデスクトップ画面の、左下のスタートボタン → Knoppix → Install KNOPPIX to flash disk、を選択。ウイザード形式でUSBメモリにインストールするための指定をする。
書き込み先のメディアの容量をよく見て、USBメモリ以外に書き込んでしまわないように気を付ける。
書き込みが終わったら、USBメモリからブートさせる際の起動オプションを、あらかじめUSBメモリ内で指定しておく。
USBメモリ内の \boot\syslinux\ 以下、3ファイルを修正。
syslinux.cfg syslnx32.cfg syslnx64.cfg
おおよそ、以下のような変更を行う。
DEFAULT auto APPEND lang=en apm=power-off initrd=minirt.gz nomce hpsa.hpsa_allow_any=1 loglevel=1 ↓ DEFAULT auto APPEND lang=ja xkeyboard=jp no3d tz=Asia/Tokyo apm=power-off initrd=minirt.gz nomce hpsa.hpsa_allow_any=1 loglevel=1エディタの置換機能で、「lang=en」を「lang=ja xkeyboard=jp no3d tz=Asia/Tokyo」に全置換。
これで、起動時にオプションを打ち込まなくても、日本語表示/日本語キーボード/3D表示機能無効化/日本時間でOSが立ち上がるように設定できる。
以下、参考ページ。
_Linux活用レシピ KNOPPIXの活用 最新版 KNOPPIX9.1 の日本語化
_KNOPPIX 9.1 DVD/CD 出てました - palm84.com
_KNOPPIX 9.1 CDで日本語版 Remaster USBメモリ作成 - palm84.com
◎ KNOPPIXにsshでアクセス。 :
Windows機からKNOPPIX側にsshでアクセスしたい。
KNOPPIXのスタートボタン → Knoppix → Start SSH Server で、sshサーバを起動できる。初回起動時はパスワードを尋ねてくるので入力。Enterを押すと端末が閉じる。この状態で、既にsshサーバがバックグラウンドで動作している。
Windows機から、PuTTY等を使って ssh でログイン。ユーザ名は knoppix。パスワードは先ほど入力したパスワード。
KNOPPIX側のIPアドレスが分からないと ssh でアクセスできないかもしれない。ip a もしくは ip address でIPアドレスが確認できる。
KNOPPIXのスタートボタン → Knoppix → Start SSH Server で、sshサーバを起動できる。初回起動時はパスワードを尋ねてくるので入力。Enterを押すと端末が閉じる。この状態で、既にsshサーバがバックグラウンドで動作している。
Windows機から、PuTTY等を使って ssh でログイン。ユーザ名は knoppix。パスワードは先ほど入力したパスワード。
KNOPPIX側のIPアドレスが分からないと ssh でアクセスできないかもしれない。ip a もしくは ip address でIPアドレスが確認できる。
◎ KNOPPIXでsambaを起動。 :
KNOPPIXには、本来、sambaを起動するランチャー?があるけれど。8.6 や 9.1 はそのランチャーが正常に動作しないらしい。端末を開いて、手動で設定ファイル (etc/samba/smb.conf) を編集して、手動で nmbd と smbd を起動しないといかんらしい…。
_KNOPPIX 9.1 CDで日本語版 Remaster USBメモリ作成 - palm84.com
_KNOPPIX 9.1 DVD/CD 出てました - palm84.com
まず、ランチャーを起動して、設定ファイルを作成。スタートボタン → Knoppix → Samba Server。config を選択してOK。パスワードを入力。
終わったら、start と config の選択ウインドウが再度開くので、キャンセルして終了。
設定ファイルを編集。
# secutity = user の行の「#」を削除して有効化。
自分の環境の場合、以下も書き換えた。
sambaを利用するユーザを追加。
nmbd と smbd を起動。
Windows機から、KNOPPIX側のIPアドレス、もしくはホスト名に、ping を打ってみる。ping が無反応なら、LAN内で KNOPPIX側にアクセスできる回線状況にはなってない。
エクスプローラ等でアクセスしてみる。Win+Rキーを押して、以下を打ってみても良い。
開く際、ユーザ名(knoppix) とパスワードを尋ねてくるので入力。
_KNOPPIX 9.1 CDで日本語版 Remaster USBメモリ作成 - palm84.com
_KNOPPIX 9.1 DVD/CD 出てました - palm84.com
まず、ランチャーを起動して、設定ファイルを作成。スタートボタン → Knoppix → Samba Server。config を選択してOK。パスワードを入力。
終わったら、start と config の選択ウインドウが再度開くので、キャンセルして終了。
設定ファイルを編集。
sudo vi /etc/samba/smb.conf
# secutity = user の行の「#」を削除して有効化。
自分の環境の場合、以下も書き換えた。
#workgroup = WORKGROUP workgroup = HOGEGROUP netbios name = MICROKNOPPIX
sambaを利用するユーザを追加。
sudo smbpasswd -a knoppixパスワードも入力。
nmbd と smbd を起動。
sudo /etc/init.d/nmbd restart sudo /etc/init.d/smbd restart
Windows機から、KNOPPIX側のIPアドレス、もしくはホスト名に、ping を打ってみる。ping が無反応なら、LAN内で KNOPPIX側にアクセスできる回線状況にはなってない。
ping 192.168.x.x ping microknoppix
エクスプローラ等でアクセスしてみる。Win+Rキーを押して、以下を打ってみても良い。
\\192.168.x.x \\microknoppix
開く際、ユーザ名(knoppix) とパスワードを尋ねてくるので入力。
[ ツッコむ ]
#3 [anime] 「リズと青い鳥」を視聴
BS12で放送されてたので視聴。京都アニメーションが制作したアニメ映画。TVアニメ「響け! ユーフォニアム」の続編と言うか外伝と言うかスピンオフと言うかそんなポジションの作品だけど、眺めた感じではTVアニメ版を見ていない人でも全然理解できる映画になっていた印象。
感想としては…。スゴイ。何がどうスゴイのか、ちょっと自分如きでは言語化できない…。もしかして、映画をたくさん見ている人なら、「ああ、ハイハイ。あのジャンルね。ありがちありがち」と言い出すのかもしれないけれど、自分はほとんど映画を見てない人間なので、なんだか軽くカルチャーショックを受けてしまった。このアニメは…これは一体何なのだろう…。
まあ、とにかくスゴイ。さすが山田尚子監督作品…。さすが京都アニメーション…。これは一見の価値アリと思えるアニメだったなと…。いやはや、スゴイ。素晴らしい。
なんか自分、 _「ガルパンはいいぞ」 状態になってるな…。
感想としては…。スゴイ。何がどうスゴイのか、ちょっと自分如きでは言語化できない…。もしかして、映画をたくさん見ている人なら、「ああ、ハイハイ。あのジャンルね。ありがちありがち」と言い出すのかもしれないけれど、自分はほとんど映画を見てない人間なので、なんだか軽くカルチャーショックを受けてしまった。このアニメは…これは一体何なのだろう…。
まあ、とにかくスゴイ。さすが山田尚子監督作品…。さすが京都アニメーション…。これは一見の価値アリと思えるアニメだったなと…。いやはや、スゴイ。素晴らしい。
なんか自分、 _「ガルパンはいいぞ」 状態になってるな…。
[ ツッコむ ]
以上、1 日分です。