昨日、当サイトをCentOS 5からCentOS 7に移行しましたが、自作CGIがInternal Server Errorでエラーになってしまいました。
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator at admin@localhost to inform them of the time this error occurred, and the actions you performed just before this error.
More information about this error may be available in the server error log.
Perlで作成したCGIなのですがCentOS 5では動作していたので、何かモジュールが不足している?
詳細はエラーログを確認とあるので確認するとありました。
1 |
[Sun Jan 31 09:48:13.921115 2016] [cgi:error] [pid 21251] [client 192.168.1.1:49354] AH01215: Can't locate CGI.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /www/CGI/test.cgi line 2. |
PerlモジュールのCGI.pmが無くてエラーになっているようです。
確かに無いな。
1 |
[root@host01 ~]# find / -name CGI.pm |
yum searchで検索するとそれらしいモジュールがありました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
[root@host01 ~]# yum search cgi 読み込んだプラグイン:fastestmirror Loading mirror speeds from cached hostfile (snip) =============================== N/S matched: cgi =============================== fcgi.x86_64 : FastCGI development kit fcgi-devel.x86_64 : Development files for fcgi ghc-cgi.x86_64 : Haskell cgi library ghc-cgi-devel.x86_64 : Haskell cgi library development files lighttpd-fastcgi.x86_64 : FastCGI module and spawning helper for lighttpd and : PHP configuration mod_fcgid.x86_64 : FastCGI interface module for Apache 2 mod_speedycgi.x86_64 : SpeedyCGI module for the Apache HTTP Server munin-cgi.noarch : Network-wide graphing framework (cgi files for apache) nut-cgi.x86_64 : CGI utilities for the Network UPS Tools perl-CGI-Compile.noarch : Compile .cgi scripts to a code reference like : ModPerl::Registry perl-CGI-Emulate-PSGI.noarch : PSGI adapter for CGI applications perl-CGI-Session.noarch : Persistent session data in CGI applications perl-FCGI.x86_64 : FastCGI Perl bindings perl-FCGI-Client.noarch : Client library for the fastcgi protocol perl-FCGI-ProcManager.noarch : A FastCGI process manager perl-HTTP-Request-AsCGI.noarch : Setup a CGI environment from a HTTP::Request perl-HTTP-Request-AsCGI-tests.noarch : Test suite for package : perl-HTTP-Request-AsCGI perl-JSON-RPC-CGI.noarch : JSON-RPC server for CGI scripts php-adoy-fastcgi-client.noarch : Client for communication with a FastCGI : application spawn-fcgi.x86_64 : Simple program for spawning FastCGI processes viewvc-httpd-fcgi.noarch : ViewVC configuration for Apache/mod_fcgid apcupsd-cgi.x86_64 : Web interface for apcupsd cgit.x86_64 : A fast web interface for git man2html.x86_64 : Convert man pages to HTML - CGI scripts munin-nginx.noarch : Network-wide graphing framework (cgi files for nginx) perl-CGI.noarch : Handle Common Gateway Interface requests and responses perl-CGI-Application.noarch : Framework for building reusable web-applications perl-CGI-Deurl-XS.x86_64 : Fast decoder for URL parameter strings perl-CGI-FastTemplate.noarch : Perl extension for managing templates and : performing variable interpolation perl-CGI-FormBuilder.noarch : Easily generate and process stateful forms perl-CGI-SpeedyCGI.x86_64 : Speed up perl scripts by running them persistently perl-HTML-Template-Pro.x86_64 : Perl/XS module to use HTML Templates from CGI : scripts php-fpm.x86_64 : PHP FastCGI Process Manager php54-php-fpm.x86_64 : PHP FastCGI Process Manager php55-php-fpm.x86_64 : PHP FastCGI Process Manager php56-php-fpm.x86_64 : PHP FastCGI Process Manager php70-php-fpm.x86_64 : PHP FastCGI Process Manager python-qalsadi.noarch : Arabic Morpholocgical Analyzer qgis-server.x86_64 : FCGI-based OGC web map server Name and summary matches only, use "search all" for everything. |
perl-CGIでいいのかな。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
[root@host01 ~]# yum install perl-CGI 読み込んだプラグイン:fastestmirror (snip) 依存性の解決をしています --> トランザクションの確認を実行しています。 ---> パッケージ perl-CGI.noarch 0:3.63-4.el7 を インストール --> 依存性の処理をしています: perl(FCGI) >= 0.67 のパッケージ: perl-CGI-3.63-4.el7.noarch --> トランザクションの確認を実行しています。 ---> パッケージ perl-FCGI.x86_64 1:0.74-8.el7 を インストール --> 依存性解決を終了しました。 依存性を解決しました ================================================================================ Package アーキテクチャー バージョン リポジトリー 容量 ================================================================================ インストール中: perl-CGI noarch 3.63-4.el7 base 250 k 依存性関連でのインストールをします: perl-FCGI x86_64 1:0.74-8.el7 base 42 k トランザクションの要約 ================================================================================ インストール 1 パッケージ (+1 個の依存関係のパッケージ) 総ダウンロード容量: 292 k インストール容量: 783 k Is this ok [y/d/N]: y Downloading packages: (1/2): perl-CGI-3.63-4.el7.noarch.rpm | 250 kB 00:00 (2/2): perl-FCGI-0.74-8.el7.x86_64.rpm | 42 kB 00:00 -------------------------------------------------------------------------------- 合計 1.4 MB/s | 292 kB 00:00 Running transaction check Running transaction test Transaction test succeeded Running transaction インストール中 : 1:perl-FCGI-0.74-8.el7.x86_64 1/2 インストール中 : perl-CGI-3.63-4.el7.noarch 2/2 検証中 : perl-CGI-3.63-4.el7.noarch 1/2 検証中 : 1:perl-FCGI-0.74-8.el7.x86_64 2/2 インストール: perl-CGI.noarch 0:3.63-4.el7 依存性関連をインストールしました: perl-FCGI.x86_64 1:0.74-8.el7 完了しました! [root@host01 ~]# find / -name CGI.pm /usr/share/perl5/vendor_perl/CGI.pm |
再度自作CGIを実行すると無事に動いてくれました。
エラーメッセージはしっかり読まないとダメですね。