Apacheの設定
始めてのサーバ構築*1。Apacheの設定でかなり躓いている。/etc/apache2/sites-available/defaultをコピーしてmysiteってファイルを作って変更しているがforbiddenになってアクセスできない。具体的には /home/yagiey/public_html/index.html は http://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>
- なぜルートディレクトリに対する設定が必要なのだろう?なんでルートディレクトリを選んで設定しているんだろう?他のディレクトリは設定は要らないのかな(全部のディレクトリなんて無理だけど)?
- FollowSymLinksはシンボリックリンクをたどることを許可するものらしいが、具体的にどういう効果があるのかな?何を期待しているのだろう?
デフォルトでは /var/www がDocumentRootになってた。ここにファイル置いていけばいいんだろうけど ~/public_html に置きたいなぁ。UserDirってのもあるみたいだけど、特にユーザ増やしたりはしないしなぁー。
*1:いや学部の授業でやったような気がするな。なんも覚えてないけど。