• 締切済み
  • すぐに回答を!

Mac OS X 10.5 LeopardのApache2でCGIを動かせない

MacPro Mac OS X 10.5にてローカルでCGIの動作確認をしようと試み、Apache2を起動し、http://localhost/~ユーザー名/xxx.cgiで確認しようとしたところ、Internal Service Errorが発生します。定石通り以下を設定したのですが、改善しません。どなたか同じ症状の方で解決された方、もしくは解決法をご存じの方、お知恵を拝借させてください。 Leopardは10.4以前と違い、CGIを動かすのに、httpd.confの設定ではなく、etc/apache2下のユーザー名.confを直すということだったので、以下のようにユーザー名.confを設定しました。改行コードはLFです。 //---------------- <Directory "/Users/ユーザー名/Sites/"> AddHandler cgi-script .cgi AddHandler cgi-script .pl AddType text/html .shtml AddHandler server-parsed .shtml Options Indexes MultiViews ExecCGI Includes AllowOverride None Order allow,deny Allow from all </Directory> ターミナルでapachectl configtestを行い、Syntax OKと出た後、apachectl restartを実行し、apache2を再起動させ、 perlコマンドのパスがターミナルのwhich perlで/usr/bin/perlだったので、!# /usr/bin/perlを指定したcgiファイルをつくり、ユーザーのホームディレクトリ下のサイト下に置き、パーミッションを755に設定。これでブラウザで確認すると、internal server errorが出ます。もちろんlocalhostやlocalhost/~ユーザー名はブラウザ上で表示されます。Error_logを確認しても、Premature end of script headersと出るだけです。 お心当たりのございます方、どうかご教授ください。

共感・応援の気持ちを伝えよう!

  • 回答数4
  • 閲覧数111
  • ありがとう数4

みんなの回答

  • 回答No.4

apache2/logs/error.log に何かヒントとなるようなものがありませんか?

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ご回答ありがとうございます。  Premature end of script headers と出るだけで、一向に解決できず終いです…。

関連するQ&A

  • 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
  • Apache2.2でPerlを呼び出すSSIを使ったHTMLをloca

    Apache2.2でPerlを呼び出すSSIを使ったHTMLをlocalhostで動かそうとしています。 AddHandler cgi-script .cgi .plに変更。 exec cmdをHTMLファイルに埋め込みました。 <!--#exec cmd="/PROGRA~1/APACHE~1/Apache2.2/cgi-bin/counter.pl counter"--> インターネットのApacheでSSIを使う方法を読み,httpd.confの中に Options FollowSymLinks Multiviews の後にIncludesをつけ   AddType text/html .shtml と   AddHandler server-parsed .shtml を加えました。しかし、localhostで実行するとHTMLのSSIの部分だけ表示されません。 (アクセスカウンターのカウンターだけ表示されません)。エラーログには ”指定されたファイルが見つかりません。 : don't know how to spawn cmd child process: C:/Program Files/Apache Software Foundation/Apache2.2/htdocs/counter.shtml” と記録されていました。 どうしたらよいのでしょうか。 どなたか解決できるかた、回答よろしくおねがいします。

    • 締切済み
    • CGI
  • Vine Linux 2.15 ではApache2を動かせないのでしょうか。

    古い ノートパソコン(PentiumMMX 233Mhz メモリ64MB)にVine Linux 2.15 をインストールして学習しています。 ---------------------------------------- Vineに付属していたApache1.1は、削除方法が今ひとつ良く分からないのでそのままとし、Apache2(httpd-2.0.53.tar.gz)を解凍しインストールして共存させました。 # /usr/local/apache2/bin/apachectl  start   とすると、 (98)アドレスは既に使用中です:・・・・と出るので、Apache1.1の /etc/httpd/conf/httpd.confファイル中のポート番号を80番から8888番 に変更してrebootしました。そして、Apache2.0を起動してlocalhostにアクセスしましたが、「サーバが見付かりません」とのメッセージが出ます。 # /usr/local/apache2/bin/apachectl  stop   としてみると、 httpd (pid 1029?) not running となり、Apache2が動いていない様子です。 ----------------------------------------- # vi /usr/local/apache2/conf/httpd.conf で開いてみると、Listen80 になっています。しかし、 # netstat -ln | grep 80   とすると、 tcp 0 .00.0.0.0:5680 0.0.0.0:* LISTEN となっており、Port80は見当たりません。 # ps aux | grep http   とすると、FedoraCoreの解説本には、 [・・・・・・/usr/local/apache2/bin/httpd -k start] になると書いてありますが、 root 689 0.0 2.0 3712 1296 ? S 14:33 0 /usr/sbin/http となっています。 ------------------------------------ どこが不具合でApache2が動かないのでしょうか。どのように修正すれば良いでしょうか。 Apache2を起動できないのは、そもそも、パソコンの能力が不足しているからでしょうか? Vine Linux 2.15ではApache2を使えないのでしょうか? 何かお気づきの点があれば教えて頂ければ有難いです。よろしくお願いします。

  • 回答No.3

> 改行コードはLFです。 改行コードはCRのままでないといけないのではありませんか。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

CRにしても駄目なようです。ちなみに文字コードもASCIIもUNICODEもためしましたが駄目でした…

  • 回答No.2

> perlコマンドのパスがターミナルのwhich perlで/usr/bin/perlだったので、!# /usr/bin/perlを指定した  !# /usr/bin/perl はこの質問投稿での typo ですか。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

回答ありがとうございます。質問欄でのtypoです。失礼しました。実際は#!と書いてあります。

  • 回答No.1
  • taloo
  • ベストアンサー率44% (1016/2281)

> internal server error > Premature end of script headers CGIの処理は動いているようですが、perlスクリプトはコンパイルエラー無く動く物ですか? たとえばContent-typeヘッダを出力していないなどの不具合はありませんか? >% perl -c スクリプトファイル名 としたり、 use CGI::Carp qw/fatalsToBrowser/; を使うことで、どんなエラーが出ているか、確認することが出来ます。 (Content-Typeヘッダが出力されていないだけの場合は、エラーメッセージが表示されません)

共感・感謝の気持ちを伝えよう!

質問者からのお礼

回答ありがとうございます! cgiテストファイルの内容は、お決まりの #! /usr/bin/perl print "Content-type: text/html\n\n"; print "Hello Perl!"; です。ヘッダも出力しました。perl -cで確認してもsyntax OK!と出ます。 use CGI::Carp qw/fatalsToBrowser/;を、cgiファイルの#! /usr/bin/perlの次の行に書いて出力してみたところ、残念ながらまたもinternal server errorが発生し、エラーが確認できません。

関連するQ&A

  • apache2+mod_ssl-apache2+OpenSSL

    apache2+mod_ssl-apache2+OpenSSLで、 /etc/apache2/conf/httpd.confに <IfModule mod_ssl.c> /ect/apache2/conf.d/ssl.conf </IfModule> を追記、 /ect/apache2/conf.d/ssl.confは <VirtualHost 192.168.1.21:443>などを環境に合った設定にしました。 そしてapache2を再起動したのですが、以下のようになりました。 [root@localhost root]# /etc/init.d/apache2 restart httpdを停止中: [失敗] httpdを起動中: [Wed Sep 07 20:39:37 2005] [warn] module ssl_module is already loaded, skipping [Wed Sep 07 20:39:37 2005] [error] (EAI 2)Name or service not known: Failed to resolve server name for 192.168.1.21 (check DNS) -- or specify an explicit ServerName [Wed Sep 07 20:39:37 2005] [warn] VirtualHost 192.168.1.21:443 overlaps with VirtualHost 192.168.1.21:443, the first has precedence, perhaps you need a NameVirtualHost directive [Wed Sep 07 20:39:37 2005] [error] (EAI 2)Name or service not known: Failed to resolve server name for 192.168.1.21 (check DNS) -- or specify an explicit ServerName (98)Address already in use: make_sock: could not bind to address 0.0.0.0:443 no listening sockets available, shutting downUnable to open logs [失敗] /ect/apache2/conf.d/ssl.confを0バイトにすると、apache2は起動できました。 どの設定が悪いか分かる方いらっしゃいませんか?

  • apache2でユーザーディレクトリが

    apache2でユーザーディレクトリを使いたいんですが ただのapacheではデフォルトでユーザーディレクトリがつかえるんですが 403でパーミッションを直して使えて apache2でいろいろ apache2.confなどにuserdir.cなどのモジュールを読み込ませたり sites-avalias/defaultに /home/*/public_htmlなど試してみたいんですが ダメみたいです ちょっと省略していますが ちなみにバージョンはApache/2.2.3です エラーは http://xxxxx/~ユーザー名 にアクセスすると 403ではなく404エラー フォルダが無いということは sites-avalias/defaultかapache2.confの設定がおかしいんでしょうか? ちゃんと /home/xxxx/public_htmlも作ってありますし パーミッションもあっています しかし <Directory /home/xxx/public_html>などの設定をしたいんですが sites-avalis/defaultに書くのか それともapache2.confに書くのかまぎらわしくて defaultのほうには<Directory /var/www>など書いてあって apache2.confにはmoduleなどいろいろ書いてあります apache2がhttpd.confではなくてまぎらわしくてよくわかりません それとバージョンなど古かったりなど違ったりして できないみたいです Apache/2.2.3でユーザーディレクトリを使っているかた 詳しく教えて下さいお願いします

  • CGIを開けない。。。

    apacheとphpを設定して動作確認したあとに、cgiも操作したいので、Active Perlというものをインストールしてみました。 phpは、http://localhost/で「C:/Program Files/Apache Software Foundation/Apache2.2/htdocs」のフォルダーを参照できるのですが、cgiを開くときには、どこのフォルダーに格納し、URLをどうすれば宜しいのでしょうか?(因みにcgi-binとhtdocsに格納し、http://localhost/***.cgiで試したのですが駄目でした。) Active Perlインストール後に変更した場所 ScriptAlias /cgi-bin/ "C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin/" <Directory "C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin"> AddHandler cgi-script .cgi .pl なお、perlの設定には、こちらhttp://www.jisaba.net/xp/actpeal/04.htmのサイトを参考にしました。 環境はWindowsVistaです。 どなたか宜しくお願い致します。

    • ベストアンサー
    • Perl
  • Apache2 のエラーについて

    Apache2 を、/usr/local/apache2/bin/apachectl start あるいは、/usr/local/apache2/bin/apachectl restart で、スタートさせようとすると、以下のエラーになります。 また、/usr/local/apache2/bin/apachectl stop を2回実行しても、 no pid file?といったコメントで、ブラウザからサイトへアクセスできません。 いったい、どうすればいいのでしょうか? /usr/local/apache2/bin/apachectl restart httpd not running, trying to start (48)Address already in use: could not bind to address 0.0.0.0:80 no listening sockets available, shutting down Unable to open logs

  • apache2を再インストール時に

    apache2で*.conf関係を編集していたのですが、VIコマンドを誤って、内容を全部削除してしまいました。 そのため、apache2をアンインストールしたところ、関連付けされてそうなディレクトリ(/etc/apache2など。これがそもそものトラブルかと)が残っていたので削除してしまいました。 その後、apache2を再びインストールしなおしたのですが、/etc/apache2以下の*.conf群がすべて復元されていませんでした。 復元方法もしくは、それぞれのファイル(初期状態)の入手先などを教えていただけないでしょうか?

  • Apache2 failed

    これ、どうすれば直るでしょうか? どうか、ご回答願います。 # systemctl restart apache2 Job for apache2.service failed because the control process exited with error code. See "systemctl status apache2.service" and "journalctl -xe" for details. root@GN164:/var# systemctl restart apache2 Job for apache2.service failed because the control process exited with error code. See "systemctl status apache2.service" and "journalctl -xe" for details. root@GN164:/var# systemctl status apache2.service ● apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor prese> Active: failed (Result: exit-code) since Tue 2020-08-25 08:05:56 JST; 2min> Docs: https://httpd.apache.org/docs/2.4/ Process: 6775 ExecStart=/usr/sbin/apachectl start (code=exited, status=1/FA> 8月 25 08:05:56 GN164 systemd[1]: Starting The Apache HTTP Server... 8月 25 08:05:56 GN164 apachectl[6783]: AH00526: Syntax error on line 13 of /et> 8月 25 08:05:56 GN164 apachectl[6783]: <VirtualHost> cannot occur within <Virt> 8月 25 08:05:56 GN164 apachectl[6775]: Action 'start' failed. 8月 25 08:05:56 GN164 apachectl[6775]: The Apache error log may have more info> 8月 25 08:05:56 GN164 systemd[1]: apache2.service: Control process exited, cod> 8月 25 08:05:56 GN164 systemd[1]: apache2.service: Failed with result 'exit-co> 8月 25 08:05:56 GN164 systemd[1]: Failed to start The Apache HTTP Server. [1]+ 停止 systemctl status apache2.service root@GN164:/var# journalctl -xe 8月 25 08:05:56 GN164 apachectl[6775]: The Apache error log may have more info> 8月 25 08:05:56 GN164 systemd[1]: apache2.service: Control process exited, cod> -- Subject: Unit process exited -- Defined-By: systemd -- Support: http://www.ubuntu.com/support -- -- An ExecStart= process belonging to unit apache2.service has exited. -- -- The process' exit code is 'exited' and its exit status is 1. 8月 25 08:05:56 GN164 systemd[1]: apache2.service: Failed with result 'exit-co> -- Subject: Unit failed -- Defined-By: systemd -- Support: http://www.ubuntu.com/support -- -- The unit apache2.service has entered the 'failed' state with result 'exit-co> 8月 25 08:05:56 GN164 systemd[1]: Failed to start The Apache HTTP Server. -- Subject: A start job for unit apache2.service has failed -- Defined-By: systemd -- Support: http://www.ubuntu.com/support -- -- A start job for unit apache2.service has finished with a failure. -- -- The job identifier is 2046 and the job result is failed. lines 1313-1335/1335 (END)

  • 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でPerlを呼び出すSSIを使ったHTMLをloca

    Apache2.2でPerlを呼び出すSSIを使ったHTMLをlocalhostで動かそうとしています。 exec cmdをHTMLファイルに埋め込みました。インターネットのApacheでSSIを使う方法を読み,httpd.confの中に Options FollowSymLinks Multiviews の後にIncludesをつけ 念のため Options Indexes FollowSymlinks の後にもMultiviews Includes をつけ   AddType text/html .shtml と AddHandler server-parsed .shtml を加えました。しかし、localhostで実行するとHTMLのSSIの部分だけ表示されません。 (アクセスカウンターのカウンターだけ表示されません)。どうしたらよいのでしょうか。 どなたか解決できるかた、回答よろしくお願いします。

  • CGIの設置ができません。

    Apacheのhttpd.confを設定して、aska.cgiという掲示板を動かそうとしているのですが、うまく動きません。 色々調べた結果、httpd.conf内のOptionというところにExec CGIを追記すればいいとのことだったので、 <Directory "C:/Program Files/Apache Group/Apache2/htdocs"> AllowOverride None Options ExecCGI Order allow,deny Allow from all </Directory> としましたが、 Options ExecCGI is off in this directory: C:/Program Files/Apache Group/Apache2/htdocs/aska/aska.cgi, referer: http://localhost/aska/ とerror.logには表示されてしまいます。 ちなみにaska.cgiは C:/Program Files/Apache Group/Apache2/htdocs/aska/ に入っています。 よろしくお願いします

  • apache2のモジュール

    apache2のソースを入手してインストールして実行しましたが、 /usr/local/apache2/modules の中身はhttpd.expしかありません。 なのでhttpc.confのLoadModule~というのを20行ぐらいコメントアウトしました。 これは普通じゃない状態だと思います。 apache2の./configureの引数がよくなかったのでしょうか?