また、自作かよ。(CGI 編)-01

By | 2020年7月1日

とっくに、復旧できてたはずが、いまだに運用開始できてません。

CGI のソースが、そのままテキスト表示されてしまって

動作しないという謎に悩まされ続けていました。

ちゃんと、Perl ファイルとして認識するのに実行されないんです。

file コマンドで見てみると

# file /var/www/html/*****/cgi-bin/joyful.cgi
/var/www/html/*****/cgi-bin/joyful.cgi: Perl script text executable

となっているんですよねー。

もちろん、パーミッションの確認を始め、ありとあらゆることを

やってみましたが、ダメでした。

一時は、今さら CGI にこだわり続けるよりも、ネット上から

拾ってきた PHP 掲示板を使ってみましたが、一度投稿できた

だけで、あとは、まったく動作しません。

この際、PHP+MariaDB で、最強掲示板を作成だーっ!って

昔なら元気を出したんでしょうね。でも、CSS までも、

一から勉強しなきゃなんないなんて、オラ嫌です。

でも、ここ一週間ほど集中的に関係しそうなサイトを

山ほど検索して

httpd.conf を編集し、
<Directory “/var/www/html”>に
Options FollowSymLinks ExecCGI
を記述したり

AddHandler cgi-script .cgi .pl
を書き加えたりして

CGI ソースのダダ漏れはなくなりました。

でも、CGI を実行すると

Service Unavailable

The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.

となっちゃうんです。エラーログは、

[cgid:error] [pid 26600:tid 140238239368960] (13)Permission denied: [client 192.168.**.**:51929] AH01257: unable to connect to cgi daemon after multiple tries: /var/www/cgi-bin/test.cgi

↑↑↑んな感じ。いろいろ、ジタバタした中で、

/var/run/httpd/ の所有者を Apache のユーザーに変更したら

Internal Server Error

に変わりました。エラーログは

End of script output before headers: joyful.cgi

これって、解決に近づいたのか、遠ざかったのかわからない

状況でしたが、さらにジタバタいろいろやっていく中で

最新の CGI を試してみたら、すんなり動くではありませんか!

文字コードが UTF-8 だったからなのか、そのあたりの

ことはわかりませんが、とにかく、解決!と喜んだのでした。

しかし、使おうとする CGI が、Image::Magick モジュールを

必要とするものだったので、またまた、関係しそうなサイトを

山ほど検索して、苦労の末にインストールしました。

そこで、CGI を動かしてみると

Service Unavailable

The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.

フリダシに戻る。もう、イヤッと大泣きしました。

でも、今朝になって気を取り直して、5月31日に丸ごと

バックアップしておいた HDD に取り替えて、再挑戦することに

したのです。

このバックアップは、ほぼ、デフォルト設定のまま

インストールしたものだったので、/ディレクトリの容量が

少なく、/homeディレクトリが巨大な状態のシステム構成に

なってました。このページを参考に、まずは、/の拡張に

とりかかりました。

# df -h

ファイルシス    サイズ 使用 残り 使用% マウント位置
devtmpfs       7.7G   0 7.7G  0% /dev
tmpfs         7.7G   0 7.7G  0% /dev/shm
tmpfs         7.7G 8.9M 7.7G  1% /run
tmpfs         7.7G   0 7.7G  0% /sys/fs/cgroup
/dev/mapper/cl-root  50G  50G  24M 100% /
/dev/mapper/cl-home  1.8T  13G 1.8T  1% /home
/dev/sda2       976M 193M 717M  22% /boot
/dev/sda1       599M 6.8M 593M  2% /boot/efi
tmpfs         1.6G   0 1.6G  0% /run/user/0

↑↑↑ んな状態でした。まず、/dev/mapper/cl-home を

アンマウントして

# umount /dev/mapper/cl-home

論理ボリュームを削除します。

# lvremove /dev/cl/home
Do you really want to remove active logical volume cl/home? [y/n]: y
Logical volume “home” successfully removed

# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root cl -wi-ao- – – – 50.00g
swap cl -wi-ao- – – – <7.82g

続いて、OS起動時のマウント設定をします。

# vi /etc/fstab

#
# /etc/fstab
# Created by anaconda on Sat May 2 23:32:15 2020
#
# Accessible filesystems, by reference, are maintained under ‘/dev/disk/’.
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
#
# After editing this file, run ‘systemctl daemon-reload’ to update systemd
# units generated from this file.
#
/dev/mapper/cl-root / xfs defaults 0 0
UUID=0db86928-8408-45aa-89d7-10e4c2d7d9e1 /boot ext4 defaul
ts 1 2
UUID=46C5-C30B /boot/efi vfat umask=0077,shortname=win
nt 0 2
/dev/mapper/cl-home /home xfs defaults 0 0 ← この行を削除
/dev/mapper/cl-swap swap swap defaults 0 0

そして、論理ボリュームの容量を拡張します。

# lvextend -l +100%FREE /dev/mapper/cl-root

Size of logical volume cl/root changed from 50.00 GiB (12800 extents) to 1.81 TiB (474524 extents).
Logical volume cl/root successfully resized.

# lvs

LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root cl -wi-ao—- 1.81t
swap cl -wi-ao—- <7.82g

ファイルシステムの容量拡張

# xfs_growfs /

meta-data=/dev/mapper/cl-root  isize=512  agcount=4, agsize=3276800 blks
=            sectsz=4096 attr=2, projid32bit=1
=            crc=1    finobt=1, sparse=1, rmapbt=0
=            reflink=1
data   =            bsize=4096  blocks=13107200, imaxpct=25
=            sunit=0   swidth=0 blks
naming  =version 2       bsize=4096  ascii-ci=0, ftype=1
log   =internal log      bsize=4096  blocks=6400, version=2
=            sectsz=4096 sunit=1 blks, lazy-count=1
realtime =none          extsz=4096  blocks=0, rtextents=0
data blocks changed from 13107200 to 485912576

確認します。

# df -Th

ファイルシス    タイプ  サイズ 使用 残り 使用% マウント位置
devtmpfs      devtmpfs  7.7G   0 7.7G  0% /dev
tmpfs        tmpfs   7.7G   0 7.7G  0% /dev/shm
tmpfs        tmpfs   7.7G 8.9M 7.7G  1% /run
tmpfs        tmpfs   7.7G   0 7.7G  0% /sys/fs/cgroup
/dev/mapper/cl-root xfs    1.9T  63G 1.8T  4% /
/dev/sda2      ext4    976M 193M 717M  22% /boot
/dev/sda1      vfat    599M 6.8M 593M  2% /boot/efi
tmpfs        tmpfs   1.6G   0 1.6G  0% /run/user/0

以上で、リベンジのための準備は完了しました。

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語を使って書いてね。外国語わかんない。