Hatena::ブログ(Diary)

チキン煮込みチーズミックス4辛 このページをアンテナに追加 RSSフィード Twitter

2012-04-19

Apacheの設定

始めてのサーバ構築*1Apacheの設定でかなり躓いている。/etc/apache2/sites-available/defaultをコピーしてmysiteってファイルを作って変更しているがforbiddenになってアクセスできない。具体的には /home/yagiey/public_html/index.htmlhttp://localhost/index.htmlアクセスできるものと期待したけどforbiddenになった。同様に /home/yagiey/public_html/mysite/index.htmlアクセスするために http://localhost/mysite/index.html ってしたらforbiddenだった。

分かってる人からするとアホみたいな間違いなんだろうなーと思ったり。公開するのはかなり恥ずかしいけども、現状は以下のとおり。

<VirtualHost *:80>
  ServerAdmin webmaster@localhost

  # ここを変更
  DocumentRoot /home/yagiey/public_html

  # 変更なし
  <Directory />
    Options FollowSymLinks
    AllowOverride None
  </Directory>

  # ディレクトリをDocumentRootに合わせて変更
  <Directory /home/yagiey/public_html/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
    allow from all
  </Directory>

  # このエントリ追加
  <Directory /home/yagiey/public_html/mysite/>
    Options all
    AllowOverride None
    Order allow,deny
    Allow from all
  </Directory>

  # これより以下には変更なし
  ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
  <Directory "/usr/lib/cgi-bin">
    AllowOverride None
    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
    Order allow,deny
    Allow from all
  </Directory>

  ErrorLog ${APACHE_LOG_DIR}/error.log

  # Possible values include: debug, info, notice, warn, error, crit,
  # alert, emerg.
  LogLevel warn
  CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

デフォルトでは /var/www がDocumentRootになってた。ここにファイル置いていけばいいんだろうけど ~/public_html に置きたいなぁ。UserDirってのもあるみたいだけど、特にユーザ増やしたりはしないしなぁー。

*1:いや学部の授業でやったような気がするな。なんも覚えてないけど。

oishikazuooishikazuo 2012/04/20 17:46 "/etc/apache2/sites-available/defaultをコピーしてmysiteってファイルを作って変更している" ということなんですが、その設定は読み込まれてますか? Debian だと sites-available 内の設定は直接は読まれなくて、 sites-enabled からシンボリックリンクして有効にするようになっているんですが。

あと気になるのは /home/yagiey/ と /home/yagiey/public_html/ のオーナーとモードです。(apache の実行ユーザから見えるか。)

yagieyyagiey 2012/04/20 18:30 コメントありがとうございます。a2ensiteやってsites-enabledにリンクはってます。
public_htmlのオーナーとモードに関して、調べてみます。apacheの実行ユーザって誰なんでしょうね?

oishikazuooishikazuo 2012/04/20 18:47 apache の実行ユーザは User で指定しているユーザで、たぶん www-data です。実際には、/ から辿って各ディレクトリ(とファイル)が、誰からでも読めるようになっていればいいです。

あとは、error.log の内容なども書くべきなのだろうと思います。

yagieyyagiey 2012/04/21 14:35 ありがとうございました!なんとかApacheでファイルにアクセスできるようになりました。
error.logの内容?なんすかそれ。調べてみます。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/yagiey/20120419/1334822600
リンク元