お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2009-04-16 14:33:07

ok
メンバ
登録日: 2008-06-17

Apache2 で CGI が起動しない

WEBアプリを動かすため、パッケージマネジャでApache2をインストールして初期画面は確認できました。
/var/www/cgi-bin/にインストールしたモジュール(plではありません)を動かそうとするのですが
次のようなメッセージがでます。


−−−−−−−−−−−−−−−−−−−−−−−−−−− fooは適当に変えています
The requested URL /cgi-bin/foo.cgi was not found on this server.
Apache/2.2.9 (Ubuntu) Server at xx.xx.xx.xx Port 80
−−−−−−−−−−−−−−−−−−−−−−−−−−−

インストールパッケージのhttpd.conf が0バイトなのが気になります。
設定不足があると思いますが、ご指摘いただければ幸です。(必要モジュールがないとか)

オフライン

 

#2 2009-04-17 02:09:30

epii
メンバ
登録日: 2008-12-11

Re: Apache2 で CGI が起動しない

/etc/apache2/sites-available/default にこんな感じの記述は含まれていますか?

ScriptAlias /cgi-bin/ /var/www/cgi-bin/
<Directory "/var/www/cgi-bin">
  AllowOverride None
  Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
  Order allow,deny
  Allow from all
</Directory>

http://www.apache.jp/manual/howto/cgi.html
↑ここら辺を参考に。

オフライン

 

#3 2009-04-17 09:44:17

ok
メンバ
登録日: 2008-06-17

Re: Apache2 で CGI が起動しない

epii による投稿:

/etc/apache2/sites-available/default にこんな感じの記述は含まれていますか?

ScriptAlias /cgi-bin/ /var/www/cgi-bin/
<Directory "/var/www/cgi-bin">
  AllowOverride None
  Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
  Order allow,deny
  Allow from all
</Directory>

http://www.apache.jp/manual/howto/cgi.html
↑ここら辺を参考に。

 含まれていませんでしたので

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ /var/www/cgi-bin/
       # added /var/www/cgi-bin/
    <Directory "/var/www/cgi-bin">
       # chabged /var/www/cgi-bin  from  /usr/lib/cgi-bin
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>
と書き換えました。 (http://www.apache.jp/manual/howto/cgi.html を参照しながら)

 でも
http://10.10.203.55/cgi-bin/cbdb/db.cgi
で動きませんでした。
Firefoxのメッセージは
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
正常に接続できませんでした
10.3.51.82 のサーバへの接続を確立できませんでした。
サイトアドレスは有効なようですが、接続を確立できませんでした。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
です。

オフライン

 

#4 2009-04-17 23:20:19

epii
メンバ
登録日: 2008-12-11

Re: Apache2 で CGI が起動しない

ok による投稿:

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ /var/www/cgi-bin/

文法、間違っていますよ。

Apache を再起動した時に、

ScriptAlias takes two arguments, a fakename and a realname

みたいなエラーメッセージが出て再起動に失敗していると思います。

英語のメッセージのとおり、 ScriptAlias ディレクティブの引数は二個です。
http://www.apache.jp/manual/mod/mod_alias.html#scriptalias を見ると、

ScriptAlias URL-path file-path|directory-path

となっておりますので、 cgi を置くディレクトリは一つしか指定できません。

ちなみに、 ScriptAlias を二個続けて、

ScriptAlias /cgi-bin/ /var/www/cgi-bin/
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/


と書いても、

[Fri Apr 17 23:12:26 2009] [warn] The ScriptAlias directive in /etc/apache2/sites-enabled/default at line 18 will probably never match because it overlaps an earlier ScriptAlias.

などと出て設定できませんので悪しからず。

オフライン

 

#5 2009-04-20 14:39:48

ok
メンバ
登録日: 2008-06-17

Re: Apache2 で CGI が起動しない

epii による投稿:

ok による投稿:

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ /var/www/cgi-bin/

文法、間違っていますよ。

Apache を再起動した時に、

ScriptAlias takes two arguments, a fakename and a realname

みたいなエラーメッセージが出て再起動に失敗していると思います。

英語のメッセージのとおり、 ScriptAlias ディレクティブの引数は二個です。
http://www.apache.jp/manual/mod/mod_alias.html#scriptalias を見ると、

ScriptAlias URL-path file-path|directory-path

となっておりますので、 cgi を置くディレクトリは一つしか指定できません。

ちなみに、 ScriptAlias を二個続けて、

ScriptAlias /cgi-bin/ /var/www/cgi-bin/
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/


と書いても、

[Fri Apr 17 23:12:26 2009] [warn] The ScriptAlias directive in /etc/apache2/sites-enabled/default at line 18 will probably never match because it overlaps an earlier ScriptAlias.

などと出て設定できませんので悪しからず。

 貴重なご指摘ありがとうございました。
一つに指定するようにしたら、別のメッセージがでました。
(問題の状況は通過したようです)有難うございました。
これはアプリケーションからのようですので、そちらに問い合わせます。

ところで、Apache2の再起動の方法ですが、システムモニタのプロセス辺りを見てみましたが見当たらないようです。
しかたなく、Ubuntuの再起動をしましたが、他に方法はないのでしょうか?

オフライン

 

#6 2009-04-20 15:09:15

epii
メンバ
登録日: 2008-12-11

Re: Apache2 で CGI が起動しない

ok による投稿:

ところで、Apache2の再起動の方法ですが、システムモニタのプロセス辺りを見てみましたが見当たらないようです。
しかたなく、Ubuntuの再起動をしましたが、他に方法はないのでしょうか?

プロセスを直接殺すのは終了処理が適切に行われないため、データが壊れたりして後々面倒な事になりかねないので、
その方法で終了させるのはバグって固まった時以外にはやらない方がいいと思いますよ。

再起動は、
$ sudo /etc/init.d/apache2 restart
起動は、
$ sudo /etc/init.d/apache2 start
停止は、
$ sudo /etc/init.d/apache2 stop
設定ファイルの再読み込みは、
$ sudo /etc/init.d/apache2 reload
などです(Apache2.xの場合)。

Apache だけでなく、他のデーモンもだいたいこんな感じで再起動や停止・起動ができるので覚えておくと便利です。

オフライン

 

#7 2009-04-20 17:35:16

ok
メンバ
登録日: 2008-06-17

Re: Apache2 で CGI が起動しない

epii による投稿:

ok による投稿:

ところで、Apache2の再起動の方法ですが、システムモニタのプロセス辺りを見てみましたが見当たらないようです。
しかたなく、Ubuntuの再起動をしましたが、他に方法はないのでしょうか?

プロセスを直接殺すのは終了処理が適切に行われないため、データが壊れたりして後々面倒な事になりかねないので、
その方法で終了させるのはバグって固まった時以外にはやらない方がいいと思いますよ。

再起動は、
$ sudo /etc/init.d/apache2 restart
起動は、
$ sudo /etc/init.d/apache2 start
停止は、
$ sudo /etc/init.d/apache2 stop
設定ファイルの再読み込みは、
$ sudo /etc/init.d/apache2 reload
などです(Apache2.xの場合)。

Apache だけでなく、他のデーモンもだいたいこんな感じで再起動や停止・起動ができるので覚えておくと便利です。

ご回答ありがとうございます。
Linuxの発想だとそういうことになるのですね。
WindowsでApche2を使っている時はストップや再起動はプルダウンメニューですぐできたので、Ubuntuにもそれに類する仕掛けがあると想像していました。

オフライン

 

#8 2009-05-17 01:32:29

gunmayamaken
新しいメンバ
登録日: 2009-05-16

Re: Apache2 で CGI が起動しない

Apache2だと、起動・停止・再起動は
sudo apache2ctl -k [start|stop|restart]
で行う方が、望ましいかと思います。

オフライン

 

Board footer

Powered by FluxBB