さんざん検索をかけて色々試したのですが、どうしても解決できず
どなたかご存知のかた、教えてください。よろしくお願い致します。
つい昨日までちゃんと動いていたCGIが突然
「jcode.plがありません」
と訴えてきました。
4月にサーバーを乗換え丸2ヶ月、問題なく動いていたのに
突然です。何がなんだか分かりません。
もちろん、このCGIに関わるファイルは一切いじっておりません。
自分なりに検討した結果
引っかかっているのは以下のコード
# 漢字コード変換ライブラリを読み込む
if (-f "jcode.pl") {
require "jcode.pl";
} else {
&errexit("jcode.plがありません。\n");
}
-略-
&jcode'convert(*tmp, $kcode_cgi);
このふたつです。jcode.plを読み込めない為にもれなく後出の呪文が効かないんだろうなという事は推測しているのですが。
このためフルパスでも試しましたが変化なし。
この読み込みをしなければ、CGIは取りあえず表示します。
なので、日本語変換プログラム以外は正常に動作しているようです。
どなたか同じような経験の有る方いらっしゃいませんか?
アドバイスよろしくお願い致します。
No.1
- 回答日時:
そのコードだと、CGIファイルと同じディレクトリに jcode.pl が必要ですね。
あるか無いか、確認してください。> このCGIに関わるファイルは一切いじっておりません。
この CGIの引越し(別のディレクトリへの移動)もしてないんですね? jcode.pl の名前を変えたりもしてないんですね? 大文字・小文字の変更や全角文字の使用も大抵アウトですよ。
疑う様で申し訳ありませんが、「一切いじっておりません」は結構いろんな意味にとれるもので。
サーバー管理者のドジで必要なファイルが消される事も皆無ではありませんが、その前にまずご自身の作業にミスが無いかを確認しましょうね。
お返事有難うございます。
jcode.pl は同階層に設置しています。確認しました、
一切いじってない=ファイルも開いてない。フォルダ移動もしていない。
CGIディレクトリ存在を忘れつつあったくらい何もしてませんでした。
最後にいじったのはサーバー管理者さんでサーバーを変えたとき(3月末)にperlの実行ファイルの場所を書き換えただけです。
そして、ちゃんと動いてました。
>この CGIの引越し(別のディレクトリへの移動)もしてないんですね?
はい。以前サーバにあったままごそっと移動して来て、昨日まで普通に稼働してました。スペルも大文字小文字も全角半角も余計なスペースが入ってないかも確認しました。
フルパスもサーバー管理者に教えてもらったものをコピペしたり、指で一文字ずつおいながら打ち込んだりしたのですが、いっこうに。。。
もういちど、サーバー管理者にフルパスの確認をお願いしている所です。
もう、思いつく所がありません。。。
No.2ベストアンサー
- 回答日時:
&errexit("jcode.plがありません。
\n"); を以下の様に変更して実行すると、同じディレクトリ下のファイルの一覧が表示されるはずです。 jcode.pl はありますか? CGIファイル自身はありますか?&errexit("jcode.plがありません。\n\n" . join('', map("$_\n", glob("*"))));
この回答への補足
自分なりに色々やってみた所、管理者から教えてもらったフルパスがそもそも違っていた事が分かりました。
これ、テストサーバの時のじゃないかな?と感じた部分があって、それを直したらあっさり動きました。
テストサーバをそのままミラーサーバに使用していたようなのですが、それが不調で止めたのが原因ではと推測しています。
サーバ管理者からは相変わらずレスポンスが有りませんが、ちゃんと動くようになりました。
教えていただいたコマンドがきっかけで気がつきました。
有難うございました。
ありがとうございます!!
やってみたところなぜか2つ上の階層の内容が表示されました。
本来は
/cgi-bin/search_a/
に
wwwsrch.log、wwwsrch.cgi、jcode.pl
が格納されています。
cgi-binの中にsearch_aとsearch_bのディレクトリを用意したかったのでcgi-bin直下でないのが良くないのでしょうか?
これをもとに
if (-f "search_a/jcode.pl") {
require "search_a/jcode.pl";
if (-f "cgi-bin/search_a/jcode.pl") {
require "cgi-bin/search_a/jcode.pl";
を試しましたがダメでした。もう少しあれこれやってみます。
No.3
- 回答日時:
"jcode.pl"の記述を"./jcode.pl"としてもだめですか?
できればこういうライブラリは専用のディレクトリ一箇所に集めてパス指定で組み込んだ方が良いと思います。
仮想サーバの場合フルパスがわかりにくいので管理者が教えてくれないなら環境変数を解析取得して組み込んじゃいましょう。
この回答への補足
管理者から教えられていたフルパスが、間違っている事が判明しました。
ミラーサーバが不調(それも問題ですが)で使用停止したためそれの影響も有るのかな?とサーバ側の方は素人同然なのであまり良く分かりませんでしたが私が「これでは?と」思ったものを記述したらすんなり動きました。
こういう事って良く有るのでしょうか。
ともあれ、動きました。
有難うございました。
お返事有難うございます。
はい。相対パスでもフルパスでも試しました。
ご指摘の通りCGIファイルと log ファイル jcode.plは同じディレクトリに入れてあります。
>管理者が教えてくれないなら環境変数を解析取得して組み込んじゃいましょう。
管理者に遠慮してそれは躊躇していましたが、トライしてみます。
有難うございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI (フリーの)ツリー掲示版CGI、昔は多用させてもらいましたが・・今セキュリティ上どうでしょう? 2 2023/06/25 07:18
- CGI CGIが読み書きするデータファイルのパーミッションはさくらのインターネットでは何にするべき? 1 2023/05/02 16:44
- Visual Basic(VBA) 【VBA】写真の縦横比を変えずに貼り付ける 5 2023/06/13 11:42
- その他(IT・Webサービス) 知り合いがバンドをしており、CDを作成したものをもらいました。 そのジャケットの表紙にQRコードがあ 5 2022/10/04 22:08
- LINE LINEアプリ内のQRコードリーダーがカメラのピントが合わず読み込めません。 2 2022/08/26 15:39
- 戸籍・住民票・身分証明書 苗字の読みを変えること 私は、吃音症がありどうしても自分の名前が言えません。 健康診断、病院の予約、 4 2023/08/15 17:01
- Visual Basic(VBA) VBAでの共有パスにつきまして 1 2023/03/04 17:24
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- Excel(エクセル) エクセルでSUMIFS関数で条件範囲の部分が#valueになる。 4 2023/04/28 12:42
- C言語・C++・C# 略語の読み方について 2 2023/05/25 12:35
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで集計したい。
-
めちゃきれい
-
(フリーの)ツリー掲示版CGI、...
-
apacheでPerl CGIが作動せず、5...
-
CGI.pmはもう古い!?
-
POSTメソッドの最大容量について
-
3DCG
-
ホームページにメールフォーム...
-
cgiからsendmailを送信で文字化け
-
フォームを再送信しますか?
-
/bin/awk '{print $5}'ってどう...
-
入力フォーム(電話番号)
-
誕生日占いをプログラムで作成...
-
number 改行が追加できない
-
生成AI画像について
-
cgi アクセス制限 エラー
-
CGIの記述について教えてくださ...
-
CGIの設置が分かりません・・・
-
ホームページにCGIを設置したの...
-
ホームページにCGIを設置したの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CGI実行環境下の.jsや.cssが動...
-
.htaccessを2つ以上設置した場合
-
FFFTPでアップロードできない?
-
WIn32API ディレクトリ内ファイ...
-
CGIが読み書きするデータファイ...
-
レンタルサーバーlolipop cgiの...
-
CGIでjcode.plを読み込めなくな...
-
インクルードファイルのエラー
-
500 Internal Server Err で困...
-
CGIのフォームをアップロードす...
-
CGI掲示板のバーミッションにつ...
-
CSVファイルのパーミッションは?
-
JavaScriptdeファ...
-
画像投稿掲示板の画像保存用デ...
-
iniファイルを呼ぶバッチファイ...
-
イントラネットのwebページのア...
-
シェルにてファイルの自動削除...
-
cgi-binのディレクトリの作成方法
-
mimeの取得方法
-
なぜフォルダ名がcgi-binなの?
おすすめ情報