カレッヂ |
質問者 r_miyata
投稿日 7/29(火) 00:39:39
個人的にperlで掲示板を作成してみていますが、 行き詰まってしまいました。 掲示板の機能として、イメージファイルのアップロードを 行わせるcgiを作成し、実行しました。 アップロード自体はcgi-bin以下に用意したディレクトリに正常に実行されます。 しかし、そのファイルをブラウザの画面に表示させようとした場合、 HTMLのIMGタグ内のurlで http://....../cgi-bin/bbs/images/xxx.jpg と絶対パスでローカルサーバ内のファイルの指定はされているのですが、 表示が行われず、ログを見ると以下のようなエラーが発生していました。 c:/program files/apache group/apache/cgi-bin/bbs/images/image.gif is not executable; ensure interpreted scripts have "#!" first line couldn't spawn child process: c:/program files/apache group/apache/cgi-bin/bbs/images/image.gif どうやらイメージファイルがperlのソースとして解釈され、 実行しようとしてエラーが出てしまっているようなのです。 このような場合は、どのようにすれば正しく表示できるのでしょうか。 どなたかご理解のある方、ご教授いただけませんでしょうか? よろしくお願いします。
プロバイダ参照: |
回答者 やまだ
[削除]
投稿日 7/29(火) 02:42:55
ScriptAliasだと実行ファイルとして解析してしまうことで、起こる初歩のミズかなと。 そこをAliasとして、OptionsにExecCGIを追加してみるとよいでしょう。 |
質問者 r_miyata
[削除]
投稿日 7/29(火) 21:44:20
>ScriptAliasだと実行ファイルとして解析してしまうことで、起こる初歩のミズかなと。 >そこをAliasとして、OptionsにExecCGIを追加してみるとよいでしょう。 やまだ様 私のローカルサーバ(Apache)の設定ファイル httpd.confファイルの ScriptAlias内の設定は以下のようになっていますが、 これではダメだということでしょうか? # # ScriptAlias: This controls which directories contain server scripts. # ScriptAliases are essentially the same as Aliases, except that # documents in the realname directory are treated as applications and # run by the server when requested rather than as documents sent to the client. # The same rules about trailing "/" apply to ScriptAlias directives as to # Alias. # ScriptAlias /cgi-bin/ "C:/Program Files/Apache Group/Apache/cgi-bin/" # # "C:/Program Files/Apache Group/Apache/cgi-bin" should be changed to whatever your ScriptAliased # CGI directory exists, if you have that configured. # <Directory "C:/Program Files/Apache Group/Apache/cgi-bin"> AllowOverride None Options ExecCGI AddHandler cgi-script .cgi .pl Order allow,deny Allow from all </Directory> ご助言頂いたのですが、私はまだこのあたりの設定を いまいち理解できていないと感じます…。すみません。 |
回答者 やまだ
[削除]
投稿日 7/29(火) 23:22:04
http://www.apache.jp/docs/howto/cgi.htmlか附属のマニュアルをよく読みましょう。 |
質問者 r_miyata
[削除]
投稿日 7/30(水) 00:26:13
やまだ様 画像の表示が実行できました!! ご教授いただいた内容とApacheのドキュメントとで、 や〜っと意味が理解できました。 ありがとうございました。 |
このページは終了したので返信(回答)は書きこめません
Web裏技 |