CGIのページが表示されなくなりました(Internal Server Error)

■ 原因

HUC13のシステム更新に伴い,2020年8月31日以降はサーバのOSが更新されています。
セキュリティ上の理由により,PerlやPHPのバージョンに一部変更があります。この影響により,CGIプログラム等でエラーとなる場合があります。

HUC13におけるPerl/PHPのバージョン(2020/9/1時点)

  • PHP   :7.2.24
  • Perl    :5.6.23

■ 解決方法

  • CGIプログラム(Perl, PHP)の内容を再度ご確認ください
  • Perlについては,5.6のバージョンからセキュリティ上の理由で,@INC変数にカレントディレクトリが含まれない仕様になっています。これにより,これまで暗黙的にカレントディレクトリのファイル名で読み込んでいた箇所に対して明示的にパスを指定する必要があります。
  • 以下のように,「XXXX.cgi」や「XXXX.pl」でファイル名のみ指定している箇所に,「./」を追記することで動作が確認されたケースもあります。
    • require "lib.pl"; → require "./lib.pl"; 
    • $::ini_file = 'pyukiwiki.ini.cgi' if ($::ini_file eq ''); → $::ini_file = './pyukiwiki.ini.cgi' if ($::ini_file eq '');
  • また,以下のライブラリ等は,修正を行うことで動作が確認されています
    • 日本語ライブラリ(jcode.pl)※ 「defined」を削除する
       &init_z2h_euc unless defined %z2h_euc; → &init_z2h_euc unless %z2h_euc;
       &init_z2h_sjis unless defined %z2h_sjis;  →   &init_z2h_sjis unless %z2h_sjis;

解決できない場合は,以下の情報を メディアセンター問い合わせフォーム よりお知らせください。

  • 表示されないホームページのURL(例: https://home.hiroshima-u.ac.jp/imc/ )
  • 表示されないホームページの画面キャプチャ
  • いつから表示されないか。最終アクセスを確認した時期
  • データベースサービスの利用の有無
  • CGIプログラムの有無。有の場合は,CGIの内容