No.3153, No.3152, No.3151, No.3150, No.3149, No.3148, No.3147[7件]

▼改行コードかな……?
なんとなく改行コードが問題の可能性もあるかな……という気もしてきました。
サーバのファイルマネージャが、どんな改行コードを出力しているのかが分かりませんので。
🍘対処方法1:
サーバのファイルマネージャの編集機能に、改行コードを指定して保存する機能はありますでしょうか? あれば LF だけにして保存した上で再度アクセスを試して頂きたいのですが。
🍘対処方法2:
もし、そのような機能がない場合は、
一度、ローカルで tegalog.cgi を編集して、改行コードが LF だけになるようにして上書き保存した上で、FTPのバイナリモードでアップロードしてみて頂けますでしょうか。
お使いのPCは、Windowsでしょうか?
タイムリーなことに、昨夜、WitchServerのサポートさんがその具体的な操作手順を案内して下さっていますので参考になさって下さい。
※文字コードを UTF-8 にしているとき、BOM(Byte Order Mark)が先頭に付与されるとたぶんマズいので、UTF-8で保存する際には、「UTF-8(BOMなし)」とか「UTF-8N」のような選択肢を選択して保存する必要がある点にもご注意下さい。
🍘対処方法3:
tegalog.cgi の1行目を #! /usr/bin/perl -- にしてみて下さい。「perl」の後に半角空白を開けてから半角ハイフン記号を2つ並べます。
それでもダメな場合は、
tegalog.cgi の1行目を #!!/usr/bin/perlml にしてみて下さい。mixhostで「lscgid: execve():〜〜〜: No such file or directory」というエラーが報告される場合の対処法としてググったら出てきましたので。^^;
▼.htaccessはどうかな
500エラーが出るときの、ブラウザのアドレス欄には、tegalog.cgi というファイル名が見えていますか?
もしかして、 500.shtml というファイル名が見えていないでしょうか。(お書き下さったエラーは、「500.shtml がない」というエラーですので……。)
もし、500エラーが出るときに「元々のURL」ではなく「エラー画面専用のURL」に移動してしまっている場合は、.htaccessの書き方に問題があります。
エラーページに恒久的に転送するよう記述してしまうと、ブラウザが「500エラーページへの転送」をキャッシュしてしまうので、CGIの動作に問題がなくなった以後でも最初から問答無用で500エラーページに転送されてしまいます。
🍘対処方法:
今まで tegalog.cgi にアクセスしたことのないブラウザを使ってアクセスして見て下さい。
もしくは、ブラウザのキャッシュを全削除してからアクセスしてみて下さい。
▼ただの転記ミスだとは思うのですが
tegalog.cgi の1行目を編集なさったということで 「 #! /usr/local/bin/per 」とお書き頂いていますが、これは「 #! /usr/local/bin/perl 」の転記ミスでしょうかね?
もし転記ミスではなくて本当に「 per 」と書いているなら、「 perl 」にして下さい。
(ただ、mixhost側が指定しているPerlパスは /usr/bin/perl のようです。)
▼他のCGIは動作していますか?
てがろぐ以外に何かCGIはお使いでしょうか。それらは動作していますか?
てがろぐ以外にCGIがない場合は、以下の3行を test.cgi 等のファイル名で保存してUPして、パーミッションを 700 または 705 または 755 にして、ブラウザでアクセスしてみて下さい。
#! /usr/bin/perl
print "Content-type: text/html \n\n";
print "Hello World!";
これで、ブラウザに「Hello Wold!」と表示されるかどうかを確かめてみて下さい。
これでも500エラーが出る場合、改行コードが LF だけになっているかどうかを確かめてみて下さい。
それでも500エラーになる場合は、もっと何か根本的なところに問題がある気がします。
2年以上前(土 15:34:06) 回答/返信

💬エラーについて
2022-10-22 14:23:45.069958 [INFO] [1124432] [T0] [XX.XX.XX.XX:56175-H3:831CCCC2FEC19823XXXXXXXXXXXXXXXXX-0#APVH_hogehoge.pagepage.mixh.jp:443] File not found [/home/ユーザーID/public_html/hogehoge.net/500.shtml]
Cパネルのエラーログから、このようなログが取得できました。(一部ボカしております)
💬「CGIモジュール」か「Time::Localモジュール」について
ご、ごめんなさい、検索してみたのですが、特にそういった特別なことはサーバー内操作も含め、一切しておりません。
FTPからぴょーーーっと、ドラッグ・アンド・ドロップでアップロードし、
そのあとは、パーミッションをFTPソフトで行い、
サーバーのファイルマネージャー上からUTF-8で編集できるエディターにてcgiを直接操作しております。
●変更箇所や、行ったこと
セットアップ説明にそった設置
↓
500 Internal Server Error
教えていただいた、tegalog.cgiの89行目付近を変更
↓
同じく、500エラーを発生させていました。
●500エラーを回避
■変更箇所
tegalog.cgi 1行目
#! /usr/bin/env perl
↓
#! /usr/local/bin/per
↓
lscgid: execve():/home/ユーザーID/public_html/hogehoge.net/tegalogのディレクトリ/tegalog.cgi: No such file or directory
という画面が表示されております。
重ね重ね、お手数おかけいたします。よろしくお願いします。 2年以上前(土 14:38:02)

tegalog.cgiの89行目付近に、以下のような行があります。
#use lib '.'; # サーバにインストールされていないモジュールを自力で置いた場合は~(略)
この行の先頭にある「 # 」記号を消して、以下のようにして上書き保存して下さい。
use lib '.';
この状態で tegalog.cgi をアップロードすると、解決すると思います。(解決できなかった場合は、サーバのエラーログをもし閲覧可能なら、どんなエラーが出ているのかを教えて頂けるとありがたいです。)
参考までに教えて頂けるとありがたいのですが、「CGIモジュール」か「Time::Localモジュール」のファイルを、てがろぐ設置ディレクトリに自力で置かれたりしましたでしょうか?(上記の89行目は、本来は「サーバにインストールされていないモジュールを自力で置いた場合に、それを読み込ませるための対処方法」として用意しているものなのですが。) 自力でそのようなことをしていないにも関わらず、この89行目のような修正が必要になるケースがあるのだろうか……? とちょっと疑問に思ったもので。
2年以上前(金 19:31:41) 回答/返信

詳しくありがとうございます!以下、回答になります。
💬てがろぐ新品一式をセットアップしてみて頂けますでしょうか?
▶3.8.0の最小版をセットアップしてみました。後述する、今までいじっていた部分と、元のデータのままアップロードしてみましたが、動かずでした。
試しにtegalog.cgiの1行目を以下のようにしてみたところ
#! /usr/local/bin/perl
管理画面(?mode=admin)含め、tegalog.cgiにアクセスすると、
lscgid: execve():/home/ユーザーID/public_html/tgtest/tegalog.cgi: No such file or directory
といった文章が表示されました。
ここから表示された文章を元に調べてみたものの、調べ方が悪く、
自分の力では解決に至りませんでしたm(__)m
💬てがろぐをバージョンアップしたわけでもなく、何もファイル構成を変更しない状態で突然 500 エラーになったのですか?
▶つい昨日のお昼までは普通に使わせていただいておりましたので、
原因があるとすれば、レンタルサーバー内の移行以外考えられません。
💬直接管理画面にアクセスしても、同様に 500 エラーになりますか?
▶はい。なります。
💬どこのサーバをお使いでしょうか?
▶mixihostになります。
💬tegalog.cgi の1行目など、CGIソースを書き換えている箇所がありますか?
▶Version 3.8.0現77行目
my $howtogetpath = 2;
↓
my $howtogetpath = 0;
にして動かしていました。
mixihostの担当者様からのご回答が来まして、
自分なりにアレやコレやと調べてみたものの、ちんぷんかんぷんでした…。
共有の許可を頂きましたので全文掲載させていただきます。
───────────────────────
XXXX 様
平素は当サービスをご利用いただき誠にありがとうございます。
mixhost カスタマーサポートでございます。
お問い合わせのPerlプログラムが動作しない件につきましてお調べ致しました。
本現象はサーバーにインストールされているPerlのバージョンの違いによる事が、
原因である事がわかりました。
マイグレーション前のjp22サーバーでは、「Perl v5.16.3」がインストールされており、
マイグレーション後のty10003サーバーでは「Perl v5.26.3」がインストールされております。
5.26.0以降では@INCの仕様変更があり、セキュリティ上の理由からカレントディレクトリが
デフォルトでは含まれなくなりました。
このため、大変お手数おかけいたしますが、@INCにカレントディレクトリを追加するコードを
追加するか、明示的にロードするファイルを指定するように変更して頂けますでしょうか。
外部サイトとなりますが下記ご参考になるかもしれませんので、
記載させていただきたいと存じます。
参考にされ設定等を行われた場合でも、弊社での動作保証及び
サポートはございませんのでご了承くださいませ。
【"Shade検索"Wiki [Perl5.26]】
https://shade-search.com/sts/term/term.php?noform=yrry...
【「Perl 5.26」リリース、「@INC」の仕様が変更される | OSDN Magazine】
https://mag.osdn.jp/17/06/02/161500
ご不明な点などございましたら、お気軽にお問い合わせください。
今後ともmixhostをよろしくお願いいたします。
───────────────────────畳む
長文になってしまい、大変恐縮ではございますが何卒よろしくお願いします。
てがろぐは、物を作っていて忘れてしまうことのメモや、作業の進捗を張ったりするのに重宝しておりまして…。
投稿できなくて、とても寂しいです。
お手数おかけいたします。 2年以上前(金 18:22:44)

それで動かない場合は、以下の質問にもご回答頂けると助かります。
- てがろぐをバージョンアップしたわけでもなく、何もファイル構成を変更しない状態で突然 500 エラーになったのですか?
- 直接管理画面にアクセスしても、同様に 500 エラーになりますか?(URLの末尾に ?mode=admin を加えると管理画面になります。)
- どこのサーバをお使いでしょうか?
- tegalog.cgi の1行目など、CGIソースを書き換えている箇所がありますか?

使っているサーバーがPerlのバージョンが5.26.3にアップデートされた影響で500エラーが出てしまいました。
調べ方が悪く、自力で調べてもよくわからず;お力添えをお願いしたいです🙏 2年以上前(金 14:19:34)