- - PR -
Apacheの設定について
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2002-07-24 23:48
こんにちは。kentaと申します。
Linux7.3でサーバを立てようと思い、Apacheをインストールして、デフォルトの設定でCGIが動作することを確認しました。 このデフォルトの/var/www/cgi-binではなく、各ユーザのディレクトリ/home/ユーザ名/public_htmlの中にcgi-binを作成し、そこで動作するように設定したいのですが、どのように設定するのかわかりません。 色々と書籍を読んでみてはいるのですが、設定ツールがある場合はそれを利用し、httpd.confを直接修正するようなことはしない程度でしか書いていません。 また、今の状態でユーザのディレクトリ内でcgiプログラムをURLに入力して読み込むと、プログラムがブラウザに表示されてしまいます。 すぐに答えは求めません。参考になる書籍などご存知の方がいらっしゃいましたら是非お聞かせ願います。 | ||||
|
投稿日時: 2002-07-25 11:04
はじめまして。
設定方法ですが、httpd.confファイルにcgiのScriptエイリアス設定とディレクトリ設定を行ったと思います。 内容としては、httpd.confファイル内に、以下を記述します。 ScriptAlias /cgi-bin/ "/xxxx/xxxx/cgi-bin/" <Directory "/xxxx/xxxx/cgi-bin"> AllowOverride None Options None Order allow,deny Allow from all </Directory> 確か、こんな感じで書けば動いたと思います。当方ではSolarisで構築し、動作確認しています。試してみてください。 | ||||
|
投稿日時: 2002-07-25 17:08
こんにちは、藤井と申します。
これ動きます? Options Allの間違いでは? Options ExecCGI がないと動かないはずですが。 で、話はずれますが、Options Allはやめましょうね。 最近はこの辺の設定の甘さで会員情報を閲覧できるようになっているところがありましたよね。 もっと柔軟な書き方をすると、ユーザーのHTMLファイルのディレクトリを/home/username/public_html/としたとき、 <IfModule mod_userdir.c> UserDir public_html </IfModule> <Directory /home/*/pulic_html> 設定いろいろ </Directory> <Directory /home/*/pulic_html/cgi-bin> Options ExecCGI Order allow,deny Allow from all </Directory> みたいなほうが一気に設定できます。 で、参考文献ですが、自分で探せないとこれから苦労しますよ。(^-^; とりあえず検索エンジンで探たら、大抵のことはわかるし、Apacheのプロフェッショナルになりたいなら、書籍を買いましょう。 OptionやAllowOverrideの意味もわからずにサーバーを運用したら、いろんな人に迷惑をかけるだけです。外部に公開しなければいいというわけではなく、クライアントのPCから感染していくタイプのワームもあるので、外と繋がっている限り、プロも素人も関係ありません。 いろいろと事情があると思うし、こういう仕事って大抵仕事できる人に回ってくるし、大変だと思います。ですが、サーバーを立てるって車でいうと公道に出るようなもんなんです。免許持ってなくても車は動かせますが、事故起こしたら人にかける迷惑は一緒なんです。 いろいろ厳しい事いっているのを、わかってながら書いてます。じっくりと腰を下ろして、少しずつ頑張っていけば、必ずできるので頑張ってください。 [ メッセージ編集済み 編集者: ふじい 編集日時 2002-07-25 17:25 ] [ メッセージ編集済み 編集者: ふじい 編集日時 2002-07-25 17:27 ] | ||||
|
投稿日時: 2002-07-25 19:00
そめのすけです。
>これ動きます? Options Allの間違いでは? >Options ExecCGI >がないと動かないはずですが。 ScriptAliasによって指定されたcgi-binディレクトリならdefaultでCGIプログラムが実行できたと思います。ですので、『Option ExecCGI』の設定はしていません。 『Alias』で設定した場合は『Options ExecCGI』の設定が必要だと思います。 | ||||
|
投稿日時: 2002-07-25 19:30
こんにちは、藤井と申します。
すみません、おっしゃる通りです。ScriptAliasの行を見落としてました。 ScriptAliasで指定すると、CGIのスクリプトとして扱われるので、そめのすけさんがおっしゃる通り、Options ExecCGIの指定はいりません。これだとディレクトリもブラウズできないので、セキュリティー的にもお勧めです。 しかしこれだと、システム全体の設定になってしまいます。 http://sample.org/cgi-bin/sample.cgi このような場合で実行したいときですね。 今回の場合は各ユーザーのホームディレクトリにCGIの実行可能なディレクトリを設定するので、 http://sample.org/~username/cgi-bin/sample.cgi のような感じでやりたいのだと思います。ですのでScriptAliasでやるよりは、紹介したやり方の方がいいでしょう。 | ||||
|
投稿日時: 2002-07-25 19:35
こんにちは、しだれざくらと申します。
ちょうど同じ機能について調べていたので 私の場合をご報告しますね。 <IfModule mod_userdir.c> UserDir public_html </IfModule> <Directory "/home/*/public_html/cgi-bin/"> Options +ExecCGI </Directory> こんな感じにしました。 ただ、ユーザのホームディレクトリでCGIを実行するには、 suexecというツールが動いているらしく、 こいつがCGIの実行に制限をかけているみたいです。 http://httpd.apache.org/docs/suexec.html が参考になりそうです。 たとえば /home/hoge/public_html/cgi-bin/ や /home/hoge/public_html/cgi-bin/hoge.cgi のパーミッションを705か755とかにしないと動かないとか、 色々条件が書かれています。 私はこれで動きました ![]() 参考になれば嬉しいです。 [ メッセージ編集済み 編集者: しだれざくら 編集日時 2002-07-25 19:42 ] | ||||
|
投稿日時: 2002-07-26 09:35
こんにちは、しだれざくらです。
追加でもう1つ。
ということですが、 書いたスクリプトがそのままテキストで 表示されてしまうということですよね? もし、そうだったら、 AddHandler cgi-script .cgi は有効になっているかどうかを確認すると 良いかと思われます。 ただ、すでにCGIの動作は確認済みということなので、 はずしているかも?! | ||||
|
投稿日時: 2002-07-28 11:40
こんにちは。返信遅くなってしまってすみません。
色々と助言下さった、そめのすけさん、ふじいさん じだれざくらさんに感謝します。 有難うございました。 まだ、動作確認できていないのですが、腰を据えて じっくり頑張ります^^ |
1