Perl関連

【まとめ】cgiを動作させる時「Internal Server Error」にならないために

  1. cgiファイルのパーミッションは755にする(サーバによるが)。
  2. cgiのパスを正確に記述する。(/usr/local/bin/perl、/usr/bin/perl など)
  3. httpd.confファイルにて、「SuexecUserGroup」を設定している場合は、プログラムファイルの「所有者」と「グループ」がその設定どおりになっているか。
  4. homeフォルダにウェブサイトを設置している場合は、suexecのdocroot(AP_DOC_ROOT)が「/home」になっているか。
    変更方法:バーチャルホストでCGIを使う | Vagon
  5. cgi-binフォルダにプログラムファイルを入れている場合は「cgi-bin」フォルダのパーミッションを「755」にする。

専用サーバでウェブサイトを構築してつまった個所はこんなところでしょうか。

Error 500 「Internal Server Error」について

cgiにアクセスしたときなどに、表示されることがあるこのError500「Internal Server Error」

いまさら、私のブログで書く必要もないほど、解決方法はネットのいたるサイトで紹介されていますが、本日かなりつまったのでメモ。

  • perlでパスは間違ってない。
  • パーミッションは755にしている(705や700、701、777も試した)。
  • プログラムミスが起こりえないほどの単純なプログラムにアクセス(別のサーバでは正常に動作している)。

にもかかわらず、Error500が出たまま。

かなり悩みましたが、解決してみれば単純明快。

httpd.confをのぞいてみたら「SuexecUserGroup」でユーザとグループが縛られてました。

それ以外のユーザでアップロードしたcgiは当然実行されないってことで。

su権限で各ファイルとフォルダのユーザとグループを変更することも考えましたが、そうすると上書きアップロードができなくなってしまうので(グループとか調整すればいいんだけど)、FTP使ってcgi-binフォルダにアクセスするのは自分だけだし、「SuexecUserGroup」の方を自分のユーザとグループに修正し、アパッチを再起動しました。

windowsでppmを使用する際の注意事項

かなりはまったのでメモ。

windowsにて

  • xampp
  • Active Perl
  • DBD::mysql
  • ImageMagick

をインストールしようとしたんですが、Active Perl のインストールまではうまくいったけど、そのあとのDBD::mysqlとImageMagickのインストールがどうしてもうまくいかない。

DBD::mysqlについてはこちらのサイト

WinXPローカルでXAMPPを使ってMovable Typeを動かす―2010年3月版 その2  

を参考にさせてもらったんですが、そもそもppmが立ち上がらない。

そしてImage Magickについても

今日のMovable Type 4:ImageMagickをXAMPP for Windowsに簡単に組込む方法: 世界中の1%の人々へ

のサイトを参考にさせてもらったんですが、インストール中エラーが出てしまう。

で、ググってみたらどうやら、windowsにログインしているユーザ名に日本語が含まれているとだめらしい・・・

ppmをタイプするとエラーになる - Perl - 教えて!goo

早速、アルファベットのみのユーザを作成し、ログインしなおし、ppmを実行したところ正常にインストールされました!

やっぱり日本語を含んだログインユーザを作るもんじゃないですね・・・

なお、Image Magickについては、バージョンの相性などもあるので、公式にほしいバージョンがない場合は、以下のミラーサイトからダウンロードしてみてください。

http://mhonarc.veidrodis.com/image_magick/binaries/

Copyright(c) 2010 - 2019 ダリの雑記