Apache2+perlのドキュメントルート設定

このQ&Aのポイント
  • Apache2+perlのドキュメントルート設定について
  • 既存のデータを動かすために、ubuntuにapache2とperlをインストールしましたが、cgiファイル等が動作しない
  • 設定ファイルであるapache2.confを編集して解決できる可能性がありますが、具体的な設定方法がわからない
回答を見る
  • ベストアンサー

Apache2+perlのドキュメントルート設定

既存のデータを動かすために、ubuntuに (1)apache2インストール (2)perlインストール しました。 既存のcgiファイル等を apache2のインストールで作成された  /var/www/html に入れても動かなかったため、設定ファイルである  apache2.conf の中を、 (1)+ExecCGIを追記(下記) <Directory /var/www/html> Options +ExecCGI </Directory> +ExecCGI (2)末尾に  AddHandler cgi-script .cgi .pl を追記しましたが、まったく動きません。 上記の設定はまちがってますでしょうか? ほかになにを設定すればいいでしょうか? 知人に聞いたところ、あとドキュメントルートの設定ができればいいと言われましたが、設定ファイルのどこをいじっていいかわかりません。 ドキュメントルートの設定方法がわかりません。 教えてください。

  • CGI
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
noname#259146
noname#259146
回答No.1

ドキュメントルートの設定は キーワード DocumentRoot ”/var/www/html” で行います。 /var/wwwにする場合は DocumentRoot ”/var/www” 質問外のアドバイス CGIはコマンドラインから正常に動作しますか? CGIファイルのパーミッションは正しいですか? HTTPのログは見ましたか?

関連するQ&A

  • apacheのCGI設定について教えてください。

    CGIの勉強のために、古いパソコンに fedora core 4 をインストールしてapache でローカルのテスト用サーバーにしようとしています。 /var/www/html に設置した簡単な perl CGI は動くのですが、同じものをユーザーのホームディレクトリに設置すると、internal server error になってしまいます。 ***** 以下 httpd.confの抜粋です。***** #UserDir disable UserDir public_html <Directory /home/*/public_html> AllowOverride All Options Includes ExecCGI FollowSymLinks SetHandler cgi-script </Directory> AddHandler cgi-script .cgi .pl ************************************** サーバーのエラーログを見ると Premature end of script headers: test.cgi となっています。htmlをprintしているだけのスクリプトで、/var/www/html では動くので、apache の設定の問題かと思っています。 ちょっとカテゴリーが違うかもしれませんが、よろしくお願いします。

    • ベストアンサー
    • Perl
  • apache2とPHP5について

    環境はDebian etchで、これにapache2とPHP5をインストールしてみました。libapache2-mod-php5とphp-pear php5-cgi php5 php5-gdなどをインストールして、さあ、PHPのCGIを動かそうというところでつまずきました。 ユーザディレクトリのモジュールを導入してUserdir.confでOptions ExecCGI(+なし)を指定してやりましたがこのCGIを起動しようとするとダウンロード画面になって、ダウンロードができませんと表示されます。ちなみにperlはちゃんと動きます。そして、ドキュメントルートである、/var/wwwのほうにもCGIを設置して起動してみましたが、同じ症状に見舞われます。 エラーログを見てみるとユーザディレクトリのほうに設置しているCGIはPermission deniedになっていました。権限はちゃんと設定してあるのにです。 /var/wwwのほうに設置したCGIはExecCGIが指定されていないと書いてありました。設置方法はよくわからないのですが。 このような場合、どうすれば解決できますでしょうか?

  • apache2.2の設定について

    あるディレクトリでsite_available中のファイルの設定が <Directory /var/hogehoge> Options ExecCGI -FollowSymLinks MultiViews AllowOverride All Order allow,deny Allow from all </Directory> となっているのですが、現在このhogehoge中のディレクトリでimageというディレクトリに置かれたgifファイル(すなわちvar/hogehoge/image/○○○.gif)をcgiとして認識されています。 これを回避するためにimage以下の場合はcgiではなくgifで認識させるようにしたいのですが、どうすればよいのでしょうか? apacheはdebian系のapache2.2系です。 宜しくお願い致します。

  • apacheでドキュメントルート変更

    httpd.confを編集して # DocumentRoot: The directory out of which you will serve your # documents. By default, all requests are taken from this directory, but # symbolic links and aliases may be used to point to other locations. # DocumentRoot "C:/www/jisaba" とドキュメントルートの変更を行ったのですが、 127.0.0.1とアドレス入力してもApacheのデフォルトのhtmlに飛んでしまうのです。 apacheをアンインストールして再インストールしてもapacheのhttpd.confの 設定は DocumentRoot "C:/www/jisaba" と以前の設定が残っています。 google検索などをしたのですが、 「OSを再インストールするのが一番早い」 みたいな事をかいてあります。 apacheってレジストリの変更までしてしまうのでしょうか? それとも、httpd.confの書き間違え? 原因がわかりません。前はディレクトリ変更は成功していたのですが…

  • fedora core3でCGIがソースコードで表示されてしまいます。

    document root("var/www/html")でCGIを使うために、httpd.confの設定で#Addhandler cgi-script →Addhandler cgi-script , と書き直し、<Directory"var/www/html">のoption項目にExecCGIと追加しました。 アクセスするときはlocalhost/***.cgiとしています。 cgi fileのperlのパスが#!/usr/bin/perlとなっているのでその場所にちゃんとperlがあるかも確認しました。 .cgiファイルはWindowsXPからASCIIで転送したものです。.httpd.confの設定以外はデフォルトの状態です。 何日間か試行錯誤したのですが、うまくいきません。どうかご助言お願いします。

  • FTPでapacheドキュメントルートへ転送できない?

    RHL7.0で、apacheをインストールしました。 そのドキュメントルート(デフォルトの/var/www/html配下)にwindowsPCからFTPであるユーザでログインし、アップロードを試みたのですが、できません。 下記の事もしてみました。 (1)apacheドキュメントルートのファイル所有者をあるグループに全て変更  chgrp -R グループ名 /var/www (2)ドキュメントルートのディレクトリ/var/wwwのパーミッション変更  chmod 2775 /var/www(これでwwwはdwxdwsr-xとなった) (3)ドキュメントルートへFTPログインでアップロードするユーザを、(1)のグループへ加える。 このユーザ名でFTPログインできますが、/var/www/html/index.htmlを変更しようとすると fxfer、アクセス件がありません、と出ます。 (2)の事は本に書いてあった事をそのまま実行したのですが、-Rオプションも付けるべきなのでしょうか? chmod 2775 /var/www/htmlとすべきなのでしょうか? 細かく考えすぎなのでしょうか? すみませんが宜しくお願いします。

  • Apacheのドキュメントルートについて

    これまでwindows版のApacheを使ってきて、htmlファイルを配置するのはhtdocsでした。 今回Linux上でApacheを使うことになったのですが、本を読んで見ると、/var/www/~がドキュメントルート となっています。 しかし、windows版と同じくhtdocsはあります。 Linuxの場合、htdocsなのか、/var/www/~のどちらにhtmlファイルやPHPファイルを配置したらいいですか?

  • apache1.3とperlでCGI

    超初心者です。 windows XPでapache1.3 と active perl 5.1.2をインストールして、 CGIを動作させたいと考えています。 http://localhostを入力してapacheの起動画面は表示されていること を確認しました。 その後httpdconfに下記を追加しました。 AddHandler cgi-script .cgi .pl AddType application/x-httpd-cgi .cgi AddType application/x-httpd-cgi .pl <Directory "C:/Program Files/Apache Group/Apache/cgi-bin"> AllowOverride None Options ExecCGI Order allow,deny Allow from all </Directory> C:\Program Files\Apache Group\Apache\cgi-binに既存で存在する printenv.plを実行しようとするとファイルのダウンロードの画面が出てきて 実行されません。printenv.plは下記のようにperl.exeへのパスだけ変更しました。 #! C:/Perl/bin/perl ## ## printenv -- demo CGI program which just prints its environment ## print "Content-type: text/plain\n\n"; foreach $var (sort(keys(%ENV))) { $val = $ENV{$var}; $val =~ s|\n|\\n|g; $val =~ s|"|\\"|g; print "${var}=\"${val}\"\n"; } どうすればCGIが実行できるようになるのでしょうか? ご教授ください。よろしくお願い致します。

    • ベストアンサー
    • CGI
  • Apacheのバーチャルホストの設定について

    Apacheでvirtualhostの設定をしているのですがうまくいきません。 ホスト:ドキュメントルート v1.hoge.com:/var/www/v1/ v2.hoge.com:/var/www/v2/ v3.hoge.com:/var/www/v3/ です。 設定は <VirtualHost *:80> Servername v1.hoge.com:80 DocumentRoot "/var/www/v1" <Directory "/var/www/v1/"> Options Includes FollowSymLinks ExecCGI </Directory> </VirtualHost> <VirtualHost *:80> Servername v2.hoge.com:80 DocumentRoot "/var/www/v2" <Directory "/var/www/v2/"> Options Includes ExecCGI </Directory> </VirtualHost> <VirtualHost *:80> Servername v3.hoge.com:80 DocumentRoot "/var/www/v3" <Directory "/var/www/v3/"> Options Includes FollowSymLinks </Directory> </VirtualHost> で、三つともv*の部分とOptionsがちがうだけになっています。 http://v1.hoge.com/では普通にアクセスできるのですが、http://v2.hoge.com/とhttp://v3.hoge.com/でアクセスしようとするとなぜか/var/www/v1/foo/index.cgiが表示されます。ただしURLは変わらすhttp://v2.hoge.comのままです。ただしhttp://v2.hoge.com/index.htmlと入力するときちんと表示されます。DirectoryIndexでindex.htmlを指定しても無駄でした。 /v1には/v1/index.htmlと/v1/foo/index.cgi、/v2には/v2/index.html、/v3には/v3/index.htmlだけが入っています。 /etc/hostsとか/etc/hosts.confとか/etc/nsswitch,confなども試しました。DNSは登録してからすでに一か月ほど経過していますのでとっくに浸透していると思いますが、v1を設定した時期とv2,v3を設定した時期は半年ぐらい空いてます。 同様の構成を別のサーバーでも試しましたが、症状は同じでした。まあ両方自分で同じように建てたので同じように間違っているだけかもしれませんが。。。 気持ち悪いのは次の四点です。 1.ドキュメントルートが別のホストになる 2.別のホストのドキュメントルートどころかその下にあるCGIが実行される 3.DirectoryIndexが効かない 4.アクセスがやけに遅い(v1とかは普通の速度) エラーログには何もなし、アクセスログにはhttp://v2.hoge.comにアクセスした記録しかないです。 httpd.confではNameVirtualHost *:80と記述し、DocumentRootはコメントアウトしています。 CentOS 6.5 Apache 2.2.15 です これくらいの情報で十分でしょうか?足りなければお叱りください。 よろしくお願いします。

  • ApacheでCGIが実行されない:FedoraCore4

    質問が立続きになってしまい申し訳ございません。 私はFedoraCore4を使い自宅サーバ開設に挑んでいます。 なかなか上手くいかずに苦戦中です。。。 さて問題の質問は「Apache2.0でCGIを使いたい」のですが上手くいきません。 このあたりについてご指導をお願いします。 ■現在までの設定■ ApacheがドキュメントルートでCGIを利用できるように設定。  > conf/httpd.conf  の、  > #Add Handler cgi-script.cgi  部分の、  > #  を取り除きました。また、  > <Directory "/var/www/html">  のOptionの部分に、  > ExecCGI  の文字を追加しました。 この上記設定において「Movable Type」を設置し 実際に動作確認が出来ました。 「Movable Type」  > /var/www/html  に、本体とLogを設置しています。 以上は質問とはまったく別件になってしまいましたが、 一般の配布されているCGIスクリプトを設置してみましたが まったく動作しません。 いちおう設置場所につきましては、  > /var/www/html と、  > /var/www/cgi-bin で試しました。実際には > /var/www/cgi-bin に設置するんですよね~?(不安 一般の配布CGIを設置実行するに当たり上記記載の"httpd.conf"の 設定以外にどこか設定する部分ってあるのでしょうか?? どうぞわかり易いご指導をお願いします。

専門家に質問してみよう