• 締切済み

apacheで自宅サーバー cgi設置ができません。

はじめまして。 よろしくおねがいします。超初心者です。インターネットで色んな サイトをみながら、苦労してサーバーを立ち上げました。 どう調べてもさっぱりわからないことがありまして........ どなたかご教授いただきたくメールさせていただきました。 よろしくお願いいたします。 【質問です】 XPにapacheをインストールして、サーバーを運営中です。 Tinyftpdもインストールして、ftpサーバーも運営中です。 自サイトにcgiファイルを置いてるのですが、全てのファイルの パーミッションが505になり所有者は、nooneになってしまいます。 ffftpで、パーミッションを変更してみたのですが、何度変更しても 505から変わりません。いったいどうすればいいのでしょうか? cgi-binフォルダを作って、httpd.confの設定も間違っていない みたいなのですが、 Forbidden You don't have permission to access..............on this server. となってしまいます。 パーミッションをapacheサーバーで設定できるようにするには、 どうすれば良いのでしょうか?

  • CGI
  • 回答数3
  • ありがとう数5

みんなの回答

  • hiro_coop
  • ベストアンサー率100% (1/1)
回答No.3

No.2 の方が答えているとおり、デフォルトでは cgi-bin/ の中身は CGI ファイルしか置けません。 Apache 公式のマニュアルもありますし、InternalServerError が出ているときはApache の エラーログに原因が書かれているのでそちらを読むか、わかりにくければ Google で検索すれば大体わかりますよ。 ちなみにエラーログはインストーラでWindowsにいれた場合、スタートメニュー -> すべてのプログラム -> Apache 2.XX -> Review Server Log Files -> Review Error Log とかで開けると思います。 http://cc.sakura.ad.jp/apache/beginner/httpd-conf.html たとえば httpd.conf の説明はこういう翻訳もありました。 ScriptAlias については公式(http://httpd.apache.org/docs-2.0/ja/mod/mod_alias.html#scriptalias) に、 > ScriptAlias ディレクティブは、対象ディレクトリに mod_cgi の cgi-script ハンドラで処理される CGI スクリプトがあることを示す以外は Alias ディレクティブと同じ振る舞いをします。 とあります。

参考URL:
http://httpd.apache.org/docs-2.0/ja/
  • Ethersky
  • ベストアンサー率71% (168/235)
回答No.2

> misconfiguration 設定ミスの可能性が高いですね。 「More information about this error may be available in the server error log」とでているようにエラーログを覗いてみるといいでしょう。 ちなみに、スクリプトエイリアス(ScriptAlias)でcgi-binの設定をしたとなると、標準ではCGIのファイルしか置けなくなります。 もっと正確に言うと、そのディレクトリに置いたものは全てCGIとしてサーバーは動かそうとします。 恐らく、cgi-binに置いたindex.htmlをCGIとして動かそうとして失敗しているのだと思います。 その場合の手っ取り早い解決策は、スクリプトエイリアスではなくただのエイリアス(Alias)で設定してしまうことです。 そしてOptionsにExecCGIを加えればCGIはCGIとして動くようになります。

018945353
質問者

お礼

すっごい参考になりました。cgi-binというフォルダを辞めて、cgiというフォルダに変更したらうまく動くようになりました。本当にありがとうございました。

  • Ethersky
  • ベストアンサー率71% (168/235)
回答No.1

Windowsにはパーミッションの概念がありません。 よって、Windowsを使った場合はパーミッションの設定は不要です。(というより存在しないので設定自体不可能です) 505と表示されているのが変更したつもりでも変わらないのはそのためです。 また、同じく所有者の概念もありません。(正確には、Administrator等でファイルのアクセス権などの設定が可能ですが、サーバーとして動かす場合は全て同一ユーザーの扱いになります。だからnoneとなっているのでしょう。(アップロードしたのが誰かなんてわからないので)) Forbiddenとなってしまうのはインデックスリストを表示しようとした時でしょか? もしそうであれば、httpd.confでcgi-binディレクトリでindex.htmやindex.html等がない場合にインデックスリストを表示するように、OptionsにIndexesを追加してください。

018945353
質問者

お礼

ありがとうございました。Windowsにパーミッションがいらないと、なんとなく分かっていたのですが、確信がもてなかったのですが、おかげで助かりました。ありがとうございました。

018945353
質問者

補足

Etherskyさんありがとうございます。 WINにはパーミッションがないと書かれたサイトを何件かみてたのですが、apacheの場合はあるのかなと思ってました。とっても勉強になりました。 ただ、やっぱり、おかしいみたいです。 http://○○○○.○○.jp/ はちゃんと表示され、 http://○○○○.○○.jp/test/index.html もちゃんと表示され、 http://○○○○.○○.jp/cgi-bin/index.html を呼び出すと、 The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator, ▲▲▲@▲▲▲.jp and inform them of the time the error occurred, and anything you might have done that may have caused the error. More information about this error may be available in the server error log. -------------------------------------------------------------------------------- Apache/2.0.52 (Win32) Server at ▲▲▲.jp Port 80 という感じでインターナルサーバーエラーになってしまいます。 特に何もしてないのですが、cgi-binというフォルダを作った場合、そのフォルダ内のファイルが全て見れなくなります。なぜなんでしょう?

関連するQ&A

  • Apache2.0とActivePerl5.8でCGIが動作しない

    ご教授願います。  掲題の通り、Win2000ProにApache2.0.48、ActibePerl5.8.1.807をインストールしローカル上にてApacheの動作確認は出来ました。  色々なサイトを調べ、現在のhttpd.confは下記のような設定となっています。 【httpd.confの主な変更点】  1:DocumentRootは別ドライブのフォルダ(C:ではない)に変更(httpd.confのファイル、229行目あたり)  2:同様に<Directory>も1と同じフォルダ(httpd.confのファイル、255行目あたり)  3:Options Indexes FollowSymLinks MultiViews ExecCGI Includesと変更(httpd.confのファイル、269行目あたり)  4:ActivePerlのインストール先は「C:/usr/local/」です。  5:test.cgiの格納場所は1で指定したフォルダと同じです。 【症状】  ブラウザのアドレスに「http://localhost」を入力するとApacheの動作確認画面が出ますが、「http://localhost/test.cgi」を入力すると『Forbidden You don't have permission to access/test.cgi on this server」と表示されます。 知識不足で申し訳ございませんが、よろしくお願いいたします。

  • LinuxのapacheでCGIが動かない

    RedHatLinux7でイントラネットでWebサーバーを構築しました(apache)で、CGIを動かしたいのですが、動きません。あるサイトで「httpd.conf の AddHandler cgi-script .cgiを生かせばいい」となっていたのでそうしましたが、まだ動きません。あと何を設定すれば良いのですか?(CGIのパーミッションはちゃんとしています。)httpd.confにCGIの記述が他にもありましたが意味がわからずそのままにしています。

  • redhat 7.0 でApacheでCGI

    今、ApacheでWEBサーバーつくったのはいいでんすが、なぜかどのCGIも動きません。Internal Server Eroor がでます。 おそらくhttpd.confの設定だろうと思うのですが、どうやってもうまくいきません。 ちなみにCGIの中身はちゃんとチェック済みです(フリーのCGIスクリプトを3っつくらいためしました)あと、パーミッション設定もチェック済みで、テキストをただ表示させるだけのCGIすら動きません。 よければどなたかhttpd.confの中身のせときます。 どなたかアドバイスと、くわしくhttpd.confの設定がのってるサイトを教えていただけないでしょうか? あと、できればWebminでの設定方法を知っている方おしえていただけないでしょうか? http://ks-pro.dns2go.com/httpd.conf.txt

  • 自宅サーバでCGIが動作しない

    自宅サーバでCGIを作り動かそうとしているのですが、 「webサイトによってこのページの表示を拒否されました」と出て、CGIが開きません。 いろいろ調べてみて、パーミッションの設定とかが1番それっぽい原因かなとは思ったのですが、 あれってFTPで変更するものですよね? アップロードする気がなくて、これからも自宅サーバで使用したい場合でも、 パーミッションの設定は必要なのでしょうか。その場合、どうやれば設定変更できるのでしょうか? あれってアップロードしたファイルを設定変更するものですよね・・・(私は普段FFFTPを使用しています) アップロードしてないファイルはどうすればいいのでしょうか・・・。 それともこれ以外に原因がありそうでしたらぜひ教えて頂きたいです>< よろしくお願いします!

    • ベストアンサー
    • CGI
  • Fedora7でCGIが動きません

    CGIとPHPを使おうと思い、 Apacheで設定したんですけど CGIとPHP両方共に403 Forbiddenと表示されて You don't have permission to access /test.php on this server. ---------------------------------------------------------------- Apache/2.2.8 (Fedora) Server at 192.168.11.240 Port 80 この様に表示されてしまいます。 エキサイトで翻訳してみると あなたはこのサーバにアクセス/test.phpに許可を持っていません。 って書いて有るようですが如何すればアクセスした人全てに 許可をする事が出来るんですか?Apacheのhttpd.confの何処を修正 すれば宜しいのでしょうか?CGIの方はchmod 755 フォルダ名.cgi って打ち込んでパーミッションを変更しましたが駄目でした。

  • 自宅サーバがうまくいかない

    困っています。解決方法を教えてください。 環境:windowsXPHomeSp2 CGIの勉強するために、自宅にサーバ機能を入れようと思いました。 それでApacheをインストールし、http://127.0.0.1/が見れることで確認し、 ActivePerlインストールし、プロンプトにて”perl -v”で確認しました。 そのあと、実際にcgiファイルを試しに見てみようと思い、単純なもの(”aaa”とだけ表示するもの)で実行したのですが ”403 Forbidden You don't have permission to access /a.cgi on this server.” と出ます。 それなので、htmlファイルで同じものを作ったのですが見れました。 それでpermissionについて調べてみたのですが、windowsだと特に設定しなくても見ることは出来るとあります。 これはActivePerlの設定が間違ったということでしょうか? それだとどのようにしたら見れるようになるのでしょう。 わかる方がおればお願いします。

    • 締切済み
    • CGI
  • apache でバイナリのCGIを動かすには

    apache でバイナリのCGIを動かすにはどうすればよいのでしょうか? (なお、プログラム自体に問題は決してありません。『HTTPD』を使うと問題なく動作します) OS:WIN98 C++バイナリのCGIを呼び出すと下記エラーとなります。 Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. Please .... the error. More ... log. - Apache/1.3.12 Server at http://127.0.0.2/ Port 80 最終アクセスログ 127.0.0.1 - - [12/Mar/2001:23:20:27 +0900] "GET /ab.cgi HTTP/1.1" 500 610 最終エラーログ [Mon Mar 12 23:20:25 2001] [error] [client 127.0.0.1] Premature end of script headers: e:/www.homepage/kokucho81/ab.cgi apache の httpd.conf と httpd.conf.default との比較 ** httpd.conf ServerName http://127.0.0.2/ ** httpd.conf.default #ServerName new.host.name ** httpd.conf DocumentRoot "E:/WWW.HOMEPAGE/KOKUCHO81" ** httpd.conf.default DocumentRoot "C:/Apache/htdocs" ** httpd.conf <Directory /> Options FollowSymLinks ExecCGI AllowOverride None ** httpd.conf.default <Directory /> Options FollowSymLinks AllowOverride None ** httpd.conf <Directory "E:/WWW.HOMEPAGE/KOKUCHO81"> ** httpd.conf.default <Directory "C:/Apache/htdocs"> ** httpd.conf Options Indexes FollowSymLinks ExecCGI ** httpd.conf.default Options Indexes FollowSymLinks MultiViews ** httpd.conf AddHandler cgi-script .cgi ** httpd.conf.default #AddHandler cgi-script .cgi そもそも、設定が足りてないんでしょうか? apacheを良く使う方、よろしくお願いします。m(_ _)m

  • Apacheでのcgi使用についてなんですが・・・

    windowsPCにApacheを組み込んでWWWサーバーとして使用していますが一つ問題が発生したのでどうかお力を分けてくださらないでしょうか? その問題というのは、Apacheで掲示板のcgiが使えないのです。httpd.confをcgiが使えるように書き換えましたし、別のAN HTTPDというサーバーソフトではちゃんと掲示板として機能します。cgi-binの中はcgiが使えるように設定したのですがやはりcgi-bin/bbs/bbs.cgiとするとCGIは動かなくなるのでしょうか?

  • OSXでcgi

    OSXでperlで作ったcgiを動かしたいと思い色々といじってるのですが全く動きません。 apacheのhttpd.confの設定で AccessFileName .htaccess AddHandler cgi-script .cgi AddHandler cgi-script .pl についてはコメントをはずして使えるようにして Perlのパスも#!/usr/bin/perlとしてsiteフォルダとcgiを置いてるディレクトリに.htaccessを下のように記述して作り AddType application/x-httpd-cgi .cgi AddType application/x-httpd-cgi .cgi/ パーミッション設定をちゃんとしてあげてるのですがブラウザからアクセスするとForBiddenとでてしっかりと設定してるはずのパーミッション設定が間違ってますと言われてしまいます。 OSXでcgiを動かすには他にももっと色々と設定しなければダメなんでしょうか?

    • ベストアンサー
    • Mac
  • Apacheの設定の問題でしょうか?

    Windows XPにApacheをインストールしてサーバーにしています。 ブラウザからcgiファイルを呼び出す以下のメッセージが表示されます。 Windowsサーバーはパーミッションの設定は必要ない思っているのですが、どなたか何が原因かお分かりでしょうか?ご教授願います。 (呼び出しURL) http://hostname/~******/cgi-bin/******.cgi Forbidden You don't have permission to access /~*******/cgi-bin/*****.cgi on this server. -------------------------------------------------------------------------------- Apache/1.3.24 Server at localhost Port 80

    • 締切済み
    • CGI