トップページunix
1001コメント297KB

Apache関連 Part8

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。2006/01/04(水) 16:46:23
HTTP ServerのApacheに関する話題を扱うスレッドです。

http://httpd.apache.org/



HTTP Serverの最新Versionは
Apache/2.2.0
Apache/2.0.55
Apache/1.3.31


●まずはマニュアル嫁。
 http://httpd.apache.org/docs/ Apache 1.3
 http://httpd.apache.org/docs/2.0/ Apache 2.0
 http://httpd.apache.org/docs/2.2/ Apache 2.2

●「自分」でバージョンぐらい調べるれ。
 httpd -h
 httpd -V コンパイル条件など詳細な情報

Apache関連 Part7
http://pc8.2ch.net/test/read.cgi/unix/1108649446/
Apache関連 Part6
http://pc5.2ch.net/test/read.cgi/unix/1084829611/
0247名無しさん@お腹いっぱい。2006/02/13(月) 12:35:35
>>246
そうだろうね。
バーチャルホストの場合は --with-suexec-docroot で指定したディレクトリ以下の
コマンドしか実行できない。ここのディレクトリ以下に自分の権限で
他人が実行するとヤバいようなものが置いてあるとまずい。
なので、バーチャルホスト用に専用のディレクトリを用意してやって、
その下にある実行ファイルは所有者の権限で実行されてしまっても
問題ないものだけにしないといけない。

で、ためしに suexec-docroot でぐぐってみたら、/home を指定している例が
トップにひっかかった。ヤバい。
0248名無しさん@お腹いっぱい。2006/02/13(月) 13:23:46
>>247
大部分がそれ指定してると思うよ、
実は俺もその一人。

でもpublic_htmlをかませたら問題なくなる部分がちょっと上手く理解できないのだけど。
02492372006/02/13(月) 15:53:17
あぁ、ごめんなさい。また間違えたよ 4710 root:apache ですね。
0250名無しさん@お腹いっぱい。2006/02/13(月) 15:59:12
>>245 conf
0251名無しさん@お腹いっぱい。2006/02/13(月) 23:17:29
suexecを安全に使うための条件は管理者以外にwebサーバ権限で
任意のコマンドを実行できる仕組み(php等)を提供してはいけない。
原理を知っていれば当然のこと。ヘボはサーバ管理するな。
(CGIのphpなら可)
0252名無しさん@お腹いっぱい。2006/02/14(火) 10:43:08
>>251
9割のホスティング会社がひっかかるね
0253名無しさん@お腹いっぱい。2006/02/14(火) 11:05:27
オレがやってたころはsuexecで提供してたので
phpはcgi版のみでやってた。
02542532006/02/14(火) 11:08:11
そういうとこ、多いんじゃないかなあ。
phpをhttpサーバから見えるところに置けば
cgi版であることに気が付かない(先頭の#!/ が無くても動く)

まあ認証とか制限あるからそれでひっかかるかもしれんが。
見えるとこに置くとphp自身のセキュリティホールも気遣わなきゃならんかったが
0255名無しさん@お腹いっぱい。NGNG
Apache 2.3以降はOrder、Allow、Denyは廃止するようだ

http://svn.apache.org/repos/asf/httpd/httpd/trunk/CHANGES

*) Authz: Mark the directives 'Order', 'Allow', 'Deny' and 'Satisfy' as
deprecated and move them into the new module mod_access_compat which
can be loaded to provide backwards compatibility for these directives.
[Brad Nicholes]

*) Authz: Added the new authz providers 'env', 'ip', 'host', 'all' to handle
host-based access control provided by mod_authz_host and invoked
through the 'Require' directive. [Brad Nicholes]
0256名無しさん@お腹いっぱい。2006/02/14(火) 15:58:29
Order Allow,Deny
Allow from example.net
Deny from deny.example.net
みたいなのはどう実現するようにするんだろ?
0257名無しさん@お腹いっぱい。2006/02/14(火) 16:10:01
設定ミスがわかりにくいからシンプルにすんじゃね?
0258名無しさん@お腹いっぱい。2006/02/14(火) 16:21:30
たぶんこうなる
example.net:来んなボケ
example.com:時々来ていい
example.jp:ウフフ?

0259名無しさん@お腹いっぱい。2006/02/14(火) 16:37:22
>>258
いや、Requireを使うみたいにいっとるやんけ。
0260名無しさん@お腹いっぱい。2006/02/14(火) 16:41:54
Requireの構文は
Require entity-name [entity-name] ...
だから、別になんとでもなるか。
0261名無しさん@お腹いっぱい。2006/02/14(火) 23:19:22
>>252
なんで?
0262名無しさん@お腹いっぱい。2006/02/16(木) 03:38:11
phpってCGIで動作させてなかったらパーミッション700じゃ
動かんはずよね?なぜか動くんだが・・・
02632622006/02/16(木) 04:10:42
phpファイルの所有者はユーザにしてあるし、パーミッション700にしてあるし
apacheの起動ユーザはapacheだし、ほわい?
02642622006/02/16(木) 10:54:38
スマン、俺の勘違いだった

こんなエラーだったんで、ちゃんと動作していないみたい。
でも普通Forbiddenエラーがでるもんじゃないの?

Warning: Unknown(/home/hoge/public_html/test.php): failed to open stream: Permission denied in Unknown on line 0

Warning: (null)(): Failed opening '/home/hoge/public_html/test.php' for inclusion (include_path='.:/usr/share/pear') in Unknown on line 0
0265名無しさん@お腹いっぱい。2006/02/16(木) 17:11:15
shtmlファイル以外でもSSIを使えるようにするにはhttpd.confに何を追加すればよいのでしょうか?
0266名無しさん@お腹いっぱい。2006/02/16(木) 17:39:18
>>265
考えてから質問してね。
そして考えてもわからなかったらぐぐってね。
ぐぐってもダメだったら、もう一度考えて、試して、
それでもわからなかったときに質問してね。
0267名無しさん@お腹いっぱい。2006/02/16(木) 17:44:41
>>265
ヒント:
AddType text/x-server-parsed-html .html
Options Includes


>>266
という書き込みもムダだから、答えたくなかったら書き込まないでね。
0268名無しさん@お腹いっぱい。2006/02/16(木) 18:40:28
>AddType text/x-server-parsed-html .html

何年前からタイムスリップしてきた人ですか?
Y2K のパッチ当ては済みましたか?
0269名無しさん@お腹いっぱい。2006/02/16(木) 19:34:26
>>268
今でも使えるんだからいいじゃん。
わかっててそう書いてるんだよ。
後方互換性も大切にな。
0270名無しさん@お腹いっぱい。2006/02/17(金) 04:36:42
Apache1.3 系で SSI を引数付きで実行させたいのですが、上手くいかないので、
相談させてください。

SSI を実行させるディレクトリ設定は下記の通りです。

AllowOverride FileInfo AuthConfig Limit
Options ExecCGI FollowSymLinks Includes

この場合、
<!--#exec cmd="/path/test.cgi"-->
では、上手くいくのですが、
<!--#exec cgi="/path/test.cgi"-->
では、
[an error occurred while processing this directive]
のエラーが表示されてしまいます。

やりたいことは、
test.cgi&mode=1&id=1&coment=text
といった引数を渡したく cmd ではなく cgi として実行させたいのですが、
上記の設定で何か不備不足があるのでしょうか?

よろしくお願いします。
0271名無しさん@お腹いっぱい。2006/02/17(金) 04:45:41
>>266
拡張子を指定してではなく、すべてのファイルに対してできるようにしたいのですが
0272名無しさん@お腹いっぱい。2006/02/17(金) 07:40:20
>>271
だから、.htmlとか.htmとか、使用しているHTMLファイルすべてについて
AddType text/x-server-parsed-html(笑)を書く。

拡張子無視で全くすべてのファイルというわけにはいかない。
何故なら、そんなことをすると .gif .jpg .tar.gz等のバイナリファイルまで
parseされて、中身が壊れる可能性があるから。
0273名無しさん@お腹いっぱい。2006/02/17(金) 07:56:14
>>272
いや、そこは1つでいいけど、横に拡張子をつらつらと。。
0274名無しさん@お腹いっぱい。2006/02/17(金) 07:58:27
>>270
ttp://httpd.apache.org/docs/1.3/mod/mod_include.html
The include virtual element should be used in preference to exec cgi. In particular,
if you need to pass additional arguments to a CGI program, using the query string,
this cannot be done with exec cgi, but can be done with include virtual, as shown here:
<!--#include virtual="/cgi-bin/example.cgi?argument=value" -->
0275名無しさん@お腹いっぱい。2006/02/17(金) 10:16:42
>>270
apacheのerror_log見てみなよ
cgiは、ローカルのパスじゃなくて、URL指定と同じパスだよ
0276名無しさん@お腹いっぱい。2006/02/17(金) 12:38:16
>>274
ありがとうございます。
試してみましたが、状況変わらずでした。
エラーログに
unable to include "/path/test.cgi&mode=1&id=1&coment=text"in parsed file 呼び出し元ファイル
とあることからやはり cmd と同様に test.cgi&mode=1&id=1&coment=text を1つのファイルと見てしまうようです。

>>275
ありがとうございます。
エラーログの報告を忘れてました。申し訳ありません。
ローカルパスの場合は、
File does not exist /path/test.cgi
となっており、
URL 指定の場合は、
invalid CGI ref "http://example.jp/test.cgi&mode=1&id=1&coment=text" in 呼び出し元ファイル
File does not exist /path/test.cgi
になります。

URL の指定間違い等なのか?と考えましたが、コピーペーストでブラウザ直呼び出しすると
問題なく動作します。
(プログラム自体はコメント文をランダム表示させているモノです)

他に何か試せることは無いでしょうか?
0277名無しさん@お腹いっぱい。2006/02/17(金) 12:41:52
>>276
その例で言えば、/path/いらない
0278名無しさん@お腹いっぱい。2006/02/17(金) 12:44:47
って引数つけらんないよ。セキュリティのため。
付けたきゃ #include でやれば
0279名無しさん@お腹いっぱい。2006/02/17(金) 12:47:14
あともひとつ。
引数は ? から始まる、タイプミスとは思うが・・・
02802762006/02/17(金) 12:49:28
>>276
すみません
File does not exist /path/test.cgi
は include virtual の際のエラーログでした。

よく見てみると File does not exist の際にディレクトリが1つ重複しておりました。
public_html
バーチャルルートの場所を勘違いしていたようです。

無事に解決することができました。
ありがとうございます。
0281名無しさん@お腹いっぱい。2006/02/17(金) 12:51:15
>>277
>>278
すみません。もう仰る通りでした。
本当にありがとうございました。

>>279
タイプミスです。本当に申し訳ないです。。。
0282名無しさん@お腹いっぱい。2006/02/19(日) 17:17:13
使っているapacheがprefork版なのかworker版なのかはどのようにして調べればよいのでしょうか?
0283名無しさん@お腹いっぱい。2006/02/19(日) 20:23:05
>>282 httpd -V
0284名無しさん@お腹いっぱい。2006/02/21(火) 05:47:47
ユーザー名userのユーザーが
http://www.example.com/~user/
以外に、
http://user.example.com/
でもアクセスできるようにしたいのですが、どのように設定すればよいのでしょうか?
0285名無しさん@お腹いっぱい。2006/02/21(火) 09:55:43
>>284
つ[VirtualHost]

で、example.comのホスト名が何になっても良いようにDNSをワイルドカードで設定する

・・・たぶん出来ると思う^^;
0286名無しさん@お腹いっぱい。2006/02/21(火) 13:28:37
>>284
apache user.example.comでI'm feeling luckyしてみた。
ttp://www.kawaz.jp/pukiwiki/?mod_rewrite#content_1_4

0287名無しさん@お腹いっぱい。2006/02/21(火) 16:37:17
証明書を自分で作ると、IEなどでアクセスした際に、警告が出ますが、
これを抑制する方法は無いでしょうか?
単に経路を暗号化したいだけなのですが・・・。
0288名無しさん@お腹いっぱい。2006/02/21(火) 16:39:45
ない
0289名無しさん@お腹いっぱい。2006/02/21(火) 17:23:02
オレ認証局の証明書をクライアントにインストール。
0290名無しさん@お腹いっぱい。2006/02/21(火) 17:26:36
>>287
んなもん >>289 以外に方法は無いと思うよ、というか、もしあったら、それは抜け道
なんじゃなかろうか。

ちなみに、企業のイントラネット内でそのような社内用の証明書をユーザにインストー
ルさせている事例は見たことあるよ。
0291名無しさん@お腹いっぱい。2006/02/22(水) 01:10:09
証明機関にお布施を払うってー手もあるかと
0292名無しさん@お腹いっぱい。2006/02/22(水) 02:34:10
>>291 有効期限が・・・orz
0293名無しさん@お腹いっぱい。2006/02/22(水) 09:43:22
このサイトをクラックしたいのですが、
ttp://oresama.hopto.org/~sheel/directory/
どうやったらいいのでしょうか。
本人が「クラックしてください」と言っているので問題はありません。
0294名無しさん@お腹いっぱい。2006/02/22(水) 09:44:59
フリーの認証局
http://www.cacert.org/

だがしかし・・・w

0295名無しさん@お腹いっぱい。2006/02/22(水) 10:08:06
>>293
板違い。

初級ネット
http://pc8.2ch.net/hack/
0296名無しさん@お腹いっぱい。2006/02/22(水) 10:14:55
>>294
フィッシングサイト作る奴より金が無いなんて、話にならんよねぇw
02972932006/02/22(水) 10:42:29
>>295
そ、そんな便利な板があったのですね!
さっそく言ってきます。
的確な板誘導に感謝します!
0298名無しさん@お腹いっぱい。2006/02/22(水) 10:53:43
>>297
その板で既に似たような内容を見かけたけどなー
0299名無しさん@お腹いっぱい。2006/02/23(木) 03:09:27
エラーページをカスタマイズしたいのですが、
.htaccessでディレクトリ単位でカスタマイズはできますか?
0300名無しさん@お腹いっぱい。2006/02/23(木) 03:22:10
>>299
やってみれ
0301名無しさん@お腹いっぱい。2006/02/26(日) 15:10:52
ssl 経由で aliasはって特定の場所から読み込んでるファイルが
5割の確率で読み込まれない。
例えば、abc.html を読み込むとそのページの半分の画像と
htmlタグの半分程度がちゃんと読み込めず、ぐちゃぐちゃのabc.htmlが
表示される。
これ原因なんだろ?
sslをかませなかったら何も何も起きないんだけど。
0302名無しさん@お腹いっぱい。2006/02/27(月) 02:05:04
まず、サーバ側のコネクション数は足りてますか?
03033012006/02/27(月) 02:50:22
>>302
コネクション数は足りてると思います、
Aliasで読み込んでるのが若干問題ありのような気がします。
/usr/share からひっぱってきているのですが。
httpd.confの内容を全部載せないと中々判断は難しいですよね・・・
03043012006/02/27(月) 03:17:09
aliasを使わないで試してみましたが同じでした・・・orz
0305名無しさん@お腹いっぱい。2006/02/27(月) 03:22:14
ログにはなんと出てるよ?
03063012006/02/27(月) 03:39:16
それが一切ログにエラーは出てないんです・・・
0307名無しさん@お腹いっぱい。2006/02/27(月) 03:49:13
じゃあルータのなんかアタックブロックとかそういうやつに当たってるとか。
03083012006/02/27(月) 03:59:18
すいません、ひとつ分かりました、
上では画像半分が、といってましたがどうやら
スタイルシートのみが読み込めていないようです。
画像などはちゃんと読み込めてました。
このせいでレイアウトがぐちゃぐちゃになっていたようです。
0309名無しさん@お腹いっぱい。2006/02/27(月) 20:20:26
んじゃ、スタイルシートのヘッダが
Content-Type: text/css
になってるか確認するとか。
0310名無しさん@お腹いっぱい。2006/02/28(火) 03:02:57
Apache 2.2.0 使ってます。
Apache付属のモジュールじゃなくて、サードパーティー性のモジュールについてなんですが

LoadModuleをhttpd.confに追加して apachectl graceful ってやると
子プロセスが起動→セグメンテーションフォルト が延々と続いて
一回止めて再起動するしかなくなってしまうモジュールがあるんですが、
LoadModule をいじってgracefulするときの注意点とか何かありますか?

あと、Apacheが動いたままPHPのアップデートを行っても同じようになることがあります。
0311名無しさん@お腹いっぱい。2006/02/28(火) 03:24:00
>>310
モジュールを追加、削除したなら stop, start の方が良いのでは・・・
もしくはそのモジュールの問題かな。

PHP に関しても別に不思議な現象ではないと思う。基本は再起動。
0312名無しさん@お腹いっぱい。2006/02/28(火) 12:39:52
XBitHack full
にすると、どんなファイルでも実行許可になっているファイルはSSIが実行できるようになってしまうのでしょうか?
0313名無しさん@お腹いっぱい。2006/02/28(火) 12:46:19
アクセスしたときにtext/htmlが返ってくるファイルだけと書いてあるじゃん。
0314名無しさん@お腹いっぱい。2006/02/28(火) 19:08:01
MIMEでimage/がつくものにはimage/jpegとかimage/gifとか何種類もありますが、
image関連のファイルを一括して指定するにはどのように書けばいいのでしょうか?
0315名無しさん@お腹いっぱい。2006/02/28(火) 21:52:49
>>314
一括して指定、ってもう少し詳しく書けませんか。apache httpd の
どの機能で何したくてどの辺のディレクティブを使おうとしてるとか。

apache固有ではなく HTTPリクエストヘッダーのことでしたら
Accept: image/* でしょうかね。
ttp://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.1
0316名無しさん@お腹いっぱい。2006/02/28(火) 23:15:58
モジュールの追加削除や、バイナリの差し替えをすると
プロセスのメモリ内配置が変わるから、
一旦綺麗にしたらんと調子悪いだろうね
03173102006/02/28(火) 23:19:15
>>311>>316
そうですか、ちょっと不便ですねえ
0318名無しさん@お腹いっぱい。2006/03/01(水) 01:28:39
MIMEならmagicファイルでも見ればよいではないか。
0319名無しさん@お腹いっぱい。2006/03/01(水) 08:18:04
>>317 モジュール構成なんてそうそう変更するもんでもないでそ?
0320名無しさん@お腹いっぱい。2006/03/01(水) 09:34:31
無停止で追加したいことがあるのは確かだけど、開発向けだな。
0321名無しさん@お腹いっぱい。2006/03/01(水) 16:11:59
一度稼動させちゃったらセキュリティアップデートとかでもない限り、
そうそう構成の変更なんてしないでしょ。

開発中なら別に無停止である必要なんてないし。
0322名無しさん@お腹いっぱい。2006/03/01(水) 17:21:13
あるファイルサイズ以上の場合のみ圧縮通信するように設定することはできませんか?
0323名無しさん@お腹いっぱい。2006/03/01(水) 17:46:39
>>322
つ[mod_gzip]
0324名無しさん@お腹いっぱい。2006/03/01(水) 17:51:29
2.0ならmod_deflateだけど、指定って出来たかな?
0325名無しさん@お腹いっぱい。2006/03/01(水) 17:53:54
>>323 は問題をよく読まずに解答したようだ。
0326名無しさん@お腹いっぱい。2006/03/01(水) 18:06:38
全部圧縮でいいじゃん。
0327ヽ(´ー`)ノ ◆.ogCuANUcE 2006/03/01(水) 20:01:07
>>325 は良く知らずに回答したようだ。
mod_gzip で >>322 の要求は満たせるよ。マニュアル読んだ方がいい。

mod_deflate では無理だね。
随分前に何かの ML で、必要かどうかの議論をしたのを読んだ記憶があるけど、
結局 >>326 で落ち付いたと思う。
0328名無しさん@お腹いっぱい。2006/03/02(木) 03:28:23
php4とphp5を共存させる方法として、
php5という拡張子の場合は、
mod_rewriteで別のポートへ転送させる、
という方法が某サイトで紹介されていたのですが、
この場合、訪問者側で該当ポートを開放している必要があるという
考えで間違ってないでしょうか?
0329名無しさん@お腹いっぱい。2006/03/02(木) 04:07:38
( ゚д゚) …。
0330名無しさん@お腹いっぱい。2006/03/02(木) 06:59:02
>>328
じゃぁ、ウェブサーフィンするユーザーが80番ポートを開放している必要はあるの?
0331名無しさん@お腹いっぱい。2006/03/02(木) 09:26:08
>>328
「ポートを開放」ってのが何だかわからずに言ってるでしょ。
0332名無しさん@お腹いっぱい。2006/03/02(木) 10:27:39
>>328
お前はWebサーバーを公開してはならない
0333名無しさん@お腹いっぱい。2006/03/02(木) 11:29:01
「ポート開放! ポート開放! さっさとポート開放! しばくぞ!!」(AArya
03343282006/03/02(木) 11:57:17
法人とかだとセキュリティの関係上、
通常使わないポートへのアクセスは禁止しているところが多いと思います。
なので特殊なポートを使用しているウェブサービスなんかは
利用できないことが多いですが、この場合も法人側で「ポート開放」という
のは間違ってるんでしょうか?

上のレスをするような一方の視点しか持てないような人が
Webサーバーを公開するのは危険だと思いますが・・・
0335名無しさん@お腹いっぱい。2006/03/02(木) 12:08:38
>>334
自分の意図を正確に伝えたいなら
「ポート開放」などという曖昧な言葉は使わない方がいい。
0336名無しさん@お腹いっぱい。2006/03/02(木) 12:09:14
センスあるなぁ・・・
0337名無しさん@お腹いっぱい。2006/03/02(木) 12:18:45
「ポート開放」で別に曖昧なところはない。意味は正確に伝わる。
>>335 も定義厨の一人だろうな。
0338名無しさん@お腹いっぱい。2006/03/02(木) 12:21:53
>>334
諦めたら?
0339名無しさん@お腹いっぱい。2006/03/02(木) 12:39:54
もう面倒くさいから >>328 に対する回答だけで良いのでは?
「訪問者が該当ポートを開放しておく必要はありません」

その手法をやるなら普通は、mod_proxy + mod_rewrite を使って、
php5 のときだけ php5 専用の apache にリバースプロキシするって
いう風にすると思うですよ。その php5 専用 apache へ接続するのは、
元の apache だから、訪問者(ブラウザ)は何も気にしなくて良い。
0340名無しさん@お腹いっぱい。2006/03/02(木) 13:13:31
>>334に対する回答
「訪問者が該当ポートを開放しておく必要があります」
0341名無しさん@お腹いっぱい。2006/03/02(木) 13:55:55
>>334
そこまで分かってて>>328の答えが自分で考えられないような人はやっぱりWebサーバーは公開しちゃいけないと思う。


んで、わざわざ別々のhttpdにしなくても、単純にハンドラを変えればよさそうな気がするけど・・・
これって駄目なの?
0342名無しさん@お腹いっぱい。2006/03/02(木) 19:08:54
>>334
正直、TCPに関してもう少し勉強した方が良いと思う。
0343名無しさん@お腹いっぱい。2006/03/02(木) 22:12:59
ApacheモジュールとCGIで分けたら?
0344名無しさん@お腹いっぱい。2006/03/02(木) 23:52:26
開放、開放って、朝鮮玉入れ屋さんですか?
0345名無しさん@お腹いっぱい。2006/03/03(金) 20:22:24
HTTPの仕様を読めを天ぷらに追加を提案
0346名無しさん@お腹いっぱい。2006/03/04(土) 15:20:02
phpmyadmin でローカルホスト以外の外部のネットワークに接続する
(config.inc.phpで $cfg['Servers'][$i]['host'] = 'example.jp';にする)場合、
apacheでSSL有効にしてSSLでphpmyadminにアクセスしていたとしても
生データが露出してしまう部分があるのでしょうか?
また、その部分を暗号化する方法はあるでしょうか?
■ このスレッドは過去ログ倉庫に格納されています