• 締切済み

xamppでcgiが動かない

Mac OS10.6.8でXAMPPをインストールした後 htdocs/test/というフォルダを作って http://test/ となるような環境を作りました。 httpd-vhosts.confファイルには <VirtualHost *:80> DocumentRoot "/Applications/XAMPP/xamppfiles/htdocs/test" ServerName test </VirtualHost> <Directory "/Applications/XAMPP/xamppfiles/htdocs/test"> Options Indexes FollowSymLinks MultiViews Includes ExecCGI AddType text/html .shtml .html AddHandler server-parsed .shtml .html AddHandler cgi-script .cgi .pl AllowOverride All Order allow,deny Allow from all </Directory> このように記述しております。 http://test/test.cgiにアクセスしたら Error message: Premature end of script headers: test.cgi このように言われてしまいました。 これは何が原因なのでしょうか? パスが間違っているのかな?と思ったのですが、XAMPPを使った場合 test.cgiファイルのパスはどうすればいいのでしょうか? よろしければ教えて下さい。 ※ とりあえず usr/bin/perl としました。

  • Perl
  • 回答数1
  • ありがとう数2

みんなの回答

  • tomaju
  • ベストアンサー率76% (84/110)
回答No.1

> test.cgiファイルのパスはどうすればいいのでしょうか? > ※ とりあえず usr/bin/perl としました。 test.cgi の先頭で指定するperlコマンドのパスでしょうかね。 http://www.tinybeans.net/blog/2009/11/20-044028.html では、 #!/Applications/xampp/xamppfiles/bin/perl としています。 ご質問のコンフィグを見ると、インストール先のディレクトリの名前が XAMPP と大文字になっています。 DocumentRoot "/Applications/XAMPP/xamppfiles/htdocs/test" なので、 #!/Applications/XAMPP/xamppfiles/bin/perl とする必要があるかもしれません。 また /Applications/XAMPP/logs/error_log に Apache のエラーログが 出力されていると思いますので、参照するとより詳しいことがわかるかもしれません。 ターミナル上から /Applications/XAMPP/xamppfiles/htdocs/test/test.cgi を 実行し、正常に動くかどうか確認してみるといいかもしれません。

tella8
質問者

お礼

ごめんなさい!補足とお礼を間違えてしまっていました。 大変失礼致しました。 MobileTypeというものを入れてみたら、いろいろ足りないよと言われました。 tomaju様に教えていただいたサイトを参考にさせていただきます。 ありがとうございました。

tella8
質問者

補足

ご回答ありがとうございました。 #!/Applications/XAMPP/xamppfiles/bin/perl 上記のようにパスを変更したのですが、 [Mon Oct 31 10:35:22 2011] [error] [client 127.0.0.1] (13)Permission denied: exec of '/Applications/XAMPP/xamppfiles/htdocs/test/test.cgi' failed [Mon Oct 31 10:35:22 2011] [error] [client 127.0.0.1] Premature end of script headers: test.cgi このようにエラーログが出ました。 あと、http://httpd.apache.org/docs/2.0/howto/cgi.html 上記のサイトを参考に、httpd.confファイルに   ScriptAlias /cgi-bin/ "/Applications/XAMPP/xamppfiles/bin/" このように書き込んでみたのですが、 エラーログは変わりませんでした。 ターミナルから/Applications/XAMPP/xamppfiles/htdocs/test/test.cgiを実行してみたところ   -bash: /Applications/XAMPP/xamppfiles/htdocs/test/test.cgi: Permission denied このように返されました。 chmod 705や604を試しましたが結果は同じでした。 755にすると   chmod: Unable to change file mode on /Applications/XAMPP/xamppfiles/htdocs/test/test.cgi: Operation not permitted このように返されました。

関連するQ&A

  • xamppを使用してCGIが実行できなくて困っています。

    こんにちは。自分で作ったホームページにアクセスカウンターや掲示板を設置したいと思っています。 そこで、xamppを使用し、CGI(アクセスカウンターや掲示板)を設置したいのですが、できません。設置の仕方、設置場所などお分かりの方、教えてください!! いろんなサイト(xamppのホームページも含め)を探してみて、「httpd.conf」の中を変えると書いてあったので、そのとおりに変えてみました。 (DocumentRootの下に <Directory "C:/www"> AllowOverride All Options All </Directory> を加えるといったもの)しかし、実行できず、サーバエラーが出ます。 設置場所:xampp/htdocs/test.cgi アクセス:http://localhost/test.cgi エラー内容:Premature end of script headers: test.cgi [test.cgi]↓↓ #!/usr/bin/perl print "Content-type: text/html\n\n"; print "<html><head>"; print "<title>TEST</title>; print "</head><body>\n; print "TEST<br>"; print "</body></html>\n"; [httpd.conf]の変更点 DocumentRoot "C:/xampp/htdocs"の下に <Directory "C:/xampp/htdocs"> AllowOverride All Options All </Directory> を追加。 分かりづらかったり、言葉が足りなかったらすみません。できなくて困ってます。。。どうかお願いします。

    • 締切済み
    • CGI
  • CGI

    MacOS10.10のApache2でCGIが動きません。 httpd.confの最後にこう記述してます。 <VirtualHost *:80> DocumentRoot "/Users/ユーザー/Sites/www" ServerName ドメイン <Directory /Users/ユーザー/Sites/www> AllowOverride All Options Indexes MultiViews ExecCGI FollowSymLinks AddType application/x-httpd-cgi .cgi .pl AddHandler cgi-script .pl .cgi DirectoryIndex index.html index.htm index.cgi </Directory> </VirtualHost> 記述は合ってると思うんですが……どこが間違ってるのでしょう?

    • ベストアンサー
    • Mac
  • 助けてください!パーミッションの設定が出来ません。

    先日こちらの掲示板にて、Macintosh OSXでPHPファイルが動かないといった質問をしたものです。 http://oshiete1.goo.ne.jp/qa2719598.html それで解決後に自分が今公開しているサイトを見に行ったら、今まで見えていたCGIのページが突然you don't have permission to access 403 forbiddenになってしまいました。 それで、何度もターミナルでchmod 705 /Users/*/Sites/****.cgi とパーミッションの設定をしてもテストファイルすら見れなくなって しまいました。 <Directory /Users/*/Sites/cgi-bin> AllowOverride FileInfo AuthConfig Limit Options +ExecCGI AddHandler cgi-script .cgi </Directory> としていたのを、 <Directory /Users/*/Sites> AddType text/html shtml AddHandler server-parsed shtml AddHandler cgi-script cgi Options Indexes MultiViews ExecCGI Includes AllowOverride None Order allow,deny Allow from all </Directory> としただけなのですが、何が問題だったのでしょうか、、、、、。 誰か助けてください。よろしくお願いいたします。

    • ベストアンサー
    • Mac
  • xamppドキュメントルートの設定

    パーフェクトPHPという書籍を見ながら作業を進めているのですが行き詰ってしまいました。 xamppのドキュメントルートの設定のところです。 ・httpd-vhosts.confファイルに以下の文章を NameVirtualHost *:80 <VirtualHost *:80> ServerName study.localhost DocumentRoot C:/xampp/htdocs/study.localhost DirectoryIndex index.php index.html <Directory "C:/xampp/htdocs/study.localhost"> AllowOverride All Allow from All </Directory> </VirtualHost> ・hostsファイルに以下の文章を 127.0.0.1 study.localhost 上記の2つを書き込むことによって ブラウザからhttp://study.localhost/にアクセスできるようになる。 と書いてあるのですが書き込んでもアクセスができず以下のように表示されます。 --------------------------------------------------------------------------- Object not found! 要求された URL は本サーバでは見つかりませんでした。 もし手入力で URL を入力した場合は、綴りを確認して再度お試し下さい。 サーバーの障害と思われる場合は、ウェブ管理者までご連絡ください。 Error 404 study.localhost Apache/2.4.10 (Win32) OpenSSL/1.0.1i PHP/5.5.15 --------------------------------------------------------------------------- 何がいけないのでしょうか? 書籍にはこの部分はあっさり書かれており何がいけないのか分りません。 Apache、MySQLの起動はできています。 httpd-vhosts.confファイルへの書き込みを行わなければXampp for Windowsのページも出てきます。 PCは windows7を使用しています。 xamppはv3.2.1です。

    • ベストアンサー
    • PHP
  • 403forbiddenがなおりません。

    以下はMacintosh板で聞いたものなんですが、あまり回答が得られないのでこちらでも書かせてください。 先日こちらのMacintosh掲示板にて、Macintosh OSXでPHPファイルが動かないといった質問をしたものです。 ?http://oshiete1.goo.ne.jp/qa2719598.html? それで解決後に自分が今公開しているサイトを見に行ったら、今まで見えていたCGIのページが突然you don't have permission to access 403 forbiddenになってしまいました。 それで、何度もターミナルでchmod 705 /Users/*/Sites/****.cgi とパーミッションの設定をしてもテストファイルすら見れなくなって しまいました。 <Directory /Users/*/Sites/cgi-bin> AllowOverride FileInfo AuthConfig Limit Options +ExecCGI AddHandler cgi-script .cgi </Directory> としていたのを、 <Directory /Users/*/Sites> AddType text/html shtml AddHandler server-parsed shtml AddHandler cgi-script cgi Options Indexes MultiViews ExecCGI Includes AllowOverride None Order allow,deny Allow from all </Directory> としただけなのですが、何が問題だったのでしょうか、、、、、。 誰か助けてください。よろしくお願いいたします。

    • 締切済み
    • CGI
  • xamppについて

    win7でxampp1.7.3です。 Cドライブ直下にxamppをインストールしバーチャルホストで 下記のように設定しています。 <VirtualHost *:80> DocumentRoot "D:/site/hoge/public_html" ServerName local.hoge </VirtualHost> <Directory "D:/site/hoge/public_html"> order deny,allow allow from ALL </Directory> D:/site/hoge/public_html/.htaccessでインクルードパスを設定したく 下記のようにしましたがどうやら.htaccessが読み込まれていない様子です。 php_value include_path "D:/site/hoge/app;D:/site/hoge/app/pear" 複数のサイトを管理するのでそれぞれのフォルダ内の.htaccessで インクルードパスを設定したいのですがどのようにすればできますでしょうか?

    • 締切済み
    • PHP
  • スマホでxampp上のバーチャルドメインにアクセス

    windows上のxamppに C:\xampp\htdocs\<バーチャルドメイン> のディレクトリを作って、windowsからは http://<バーチャルドメイン>/ でアクセスできるようにしています。 これをandroid(スマホ)から見たくて http://masterka.seesaa.net/article/248925874.html を参考に設定を変更したところ、 http://<指定したip>/ <バーチャルドメイン> でandroidからアクセスできるようになりました。 ただ、サイトルートで参照しているcss等の関係で、androidからも http://<バーチャルドメイン>/ でアクセスできるようにしたいのです。 C:\xampp\apache\conf\extra のhttpd-vhosts.confに <VirtualHost *:80> DocumentRoot C:/xampp/htdocs/<バーチャルドメイン> ServerName <バーチャルドメイン> </VirtualHost> <Directory "C:/xampp/htdocs/<バーチャルドメイン>"> order deny,allow allow from ALL </Directory> C:\Windows\System32\drivers\etc のhostsファイルに 127.0.0.1 <バーチャルドメイン> と記述したものに <指定したip> <バーチャルドメイン> と行を加えてみたのですが、うまく行きません。 アドバイスいただけると助かります。

  • Apach2.0 ホームディレクトリでCGIが

    こんにちは。 CGIの勉強をしています。 わかる方がいらっしゃいましたら、おしえてください。 ソースは、poderosaでつないでviにて作成。 ブラウザからのアクセス http://XXX.XXX.XXX.XXX/~admin/cgi-bin/test.cgi (test.cgi)755 #!/usr/bin/perl print "Content-type: text/html\n\n"; print "Hello\n"; ./test.cgi にて、Helloと表示される (httpd.confに追加したもの) UserDir public_html <Directory /home/*/public_html> AllowOverride All Options IncludesNoExec ExecCGI FollowSymLinks <Limit GET POST OPTIONS> Order allow,deny Allow from all </Limit> <LimitExcept GET POST OPTIONS> Order deny,allow Deny from all </LimitExcept> </Directory> 以下を追加したこともあり↓ <Directory /home/*/public_html/cgi-bin/> AllowOverride None Options ExecCGI SetHandler cgi-script Order allow,deny Allow from all AddHandler cgi-script .cgi </Directory> よろしくおねがいします。

  • 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と出るだけです。 お心当たりのございます方、どうかご教授ください。

    • 締切済み
    • CGI
  • CGIカウンターの画像が表示されません

    まず、環境はwindows7 32bit xampp v3.2.1 xampp上のコントロールパネル→Admin→CGIのステータスは「開始」となっている。 apacheのv-host.conf上の変更点 <VirtualHost *:80> DocumentRoot "C:/www1" ServerName localhost <Directory "C:/www1"> Options ExecCGI Indexes FollowSymLinks MultiViews AddOutputFilter INCLUDES .html AddType text/html .shtml Order allow,deny Allow from all AddHandler image/gif .gif        AddHandler image/jpeg .jpeg .jpg .jpe  AddHandler image/png .png         AddHandler text/html .html .htm     Require all granted </Directory> </VirtualHost> とした。 http://www.kent-web.com/count/daycount.html 上記のサイトのDAY COUNTERをwindows7 cドライブ直下に以下の様に設定した。 www1/ +- index.html ... ここにカウンタを設置するものとする | |         累計カウント : <img src="daycount.cgi?gif"> |          昨日カウント : <img src="daycount.cgi?yes"> |          本日カウント : <img src="daycount.cgi?today"> | |          と記述 | +--daycount / daycount.cgi [705] | init.cgi [604] | check.cgi [705] | conv.cgi [705] | | .htaccess(AddType application/x-httpd-cgi .cgiと記述) | | +-- lib / gifcat.pl [604] | magick.pl [604] | +-- data / daycount.dat [606] | today.dat [606] | yes.dat [606] | +-- gif1 / 0.gif ... 9.gif | +-- gif2 / 0.gif ... 9.gif なお、daycount.cgi    check.cgi    conv.cgi    は一行目を#!"C:\xampp\perl\bin\perl.exe"とした。 色々サイトを見てcgi-binフォルダに画像ファイルを入れると画像が見れなくなる事とか apacheではCGIの入ったフォルダに.htaccess(AddType application/x-httpd-cgi .cgiと記述) を入れてやらないと動作しないとかの情報を元に上記の様な設定になったのですが上手くいかないようです。 一応画像もアップしておきました。なにかしらの参考になりましたら… この設定でどこかおかしい所が有ればご指摘願います。

    • ベストアンサー
    • CGI

専門家に質問してみよう