Hatena::ブログ(Diary)

Blog::Restful

2011-05-08

Ubuntuでapacheを使ったwebサイトのローカル環境を作ってみる(基礎)

基本的な設定をサクッとtutorialしてみます。
apacheの導入からシンプルなhtmlページの表示まで説明しています。


apacheの導入

Ubuntu(先月リリースされたばかりの11.04)でローカルにテスト環境を作ってみます。
とりあえずapacheサーバの導入しますが、パッケージを使ってサクッと入れます。

$ sudo apt-get update
$ sudo apt-get install apache2

ついでにapacheマニュアルも入れとくと便利かもです。

$ sudo apt-get install apache2-doc

インストールした段階ですでにapacheは起動していると思うので、ブラウザ
http://localhost/
にアクセスしてみます。"It works!"みたいにでたらOKです。
ついでに入れたマニュアルは、
http://localhost/manual/
で見ることができます。

正しく表示されないようでしたら、apacheが起動していない可能性もあるので、

$ sudo /etc/init.d/apache2 start

で起動してみてください。

HTMLのページを設置

デフォルトの状態で表示されたhttp://localhost/のページは,/var/www/index.htmlの内容です。以下のように見ることができます。

$ cat /var/www/index.html

生のhtmlソースが表示されると思います。

/var/www/ディレクトリに設置していくことも可能ですが、アクセスの利便性を考えてユーザのホームディレクトリ/home/username/以下に設置してみます。(usernameは適宜自分のアカウント名に読み替えてください)
ホームにmywebディレクトリを作ります。

$ mkdir /home/username/myweb

そしてこのディレクトリに適当なhtmlページを作ります。

  1 <html>
  2         <head><title>MyWeb</title></head>
  3         <body>
  4                 <h1>Welcome to my Page!</h1>
  5         </body> 
  6 </html> 

これをindex.htmlで保存してください。
/home/username/myweb/index.htmlが出来ました。

apacheの設定

続いてapacheの設定です。
が、その前にローカルのみの適当なドメイン名をページに割り当てましょう。ブラウザからのアクセスが分かりやすくなります。
例えばmywebpageという名前で登録する場合、次のようにhostsファイルを編集します。

$ sudo vi /etc/hosts

としてviエディタでhostsファイルの中身を次のように変えます。

  1 127.0.0.1       localhost mywebpage
  2 127.0.1.1       ubuntu
  3 
  4 # The following lines are desirable for IPv6 capable hosts
  5 ::1     ip6-localhost ip6-loopback
  6 fe00::0 ip6-localnet
  7 ff00::0 ip6-mcastprefix
  8 ff02::1 ip6-allnodes
  9 ff02::2 ip6-allrouters

localhostの後ろにmywebpageと加えました。

やっとapacheの設定です^^;
UbuntuDebianのパッケージでは、他のディストリビューションLinuxと設定の仕方が異なるので注意が必要です。
別々のドメインの設定は、それぞれ別々のファイルで行われるのが普通だと思います。

$ cd /etc/apache2/sites-available

としてディレクトリを移動し、

$ sudo cp default mywebpage

で、デフォルトの設定ファイルをコピーします。
デフォルトの設定ファイルは次のような感じです。

  1 <VirtualHost *:80>
  2         ServerAdmin webmaster@localhost
  3 
  4         DocumentRoot /var/www
  5         <Directory />
  6                 Options FollowSymLinks
  7                 AllowOverride None
  8         </Directory>
  9         <Directory /var/www/>
 10                 Options Indexes FollowSymLinks MultiViews
 11                 AllowOverride None
 12                 Order allow,deny
 13                 allow from all
 14         </Directory>
 15 
 16         ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
 17         <Directory "/usr/lib/cgi-bin">
 18                 AllowOverride None
 19                 Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
 20                 Order allow,deny
 21                 Allow from all
 22         </Directory>
 23 
 24         ErrorLog ${APACHE_LOG_DIR}/error.log
 25 
 26         # Possible values include: debug, info, notice, warn, error, crit,
 27         # alert, emerg.
 28         LogLevel warn
 29 
 30         CustomLog ${APACHE_LOG_DIR}/access.log combined
 31 
 32     Alias /doc/ "/usr/share/doc/"
 33     <Directory "/usr/share/doc/">
 34         Options Indexes MultiViews FollowSymLinks
 35         AllowOverride None
 36         Order deny,allow
 37         Deny from all
 38         Allow from 127.0.0.0/255.0.0.0 ::1/128
 39     </Directory>
 40 
 41 </VirtualHost>

先ほどコピーしたmywebpageを、

$ sudo vi mywebpage

としてまたviで内容を編集します。内容は以下のようになります。

  1 <VirtualHost mywebpage:80>
  2         ServerAdmin webmaster@localhost
  3 
  4         DocumentRoot /home/username/myweb/
  5         <Directory />
  6                 Options FollowSymLinks
  7                 AllowOverride None
  8         </Directory>
  9         <Directory /home/username/myweb/>
 10                 Options Indexes FollowSymLinks MultiViews
 11                 AllowOverride None
 12                 Order allow,deny
 13                 allow from all
 14         </Directory>
 15 
 16         ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
 17         <Directory "/usr/lib/cgi-bin">
 18                 AllowOverride None
 19                 Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
 20                 Order allow,deny
 21                 Allow from all
 22         </Directory>
 23 
 24         ErrorLog ${APACHE_LOG_DIR}/error.log
 25 
 26         # Possible values include: debug, info, notice, warn, error, crit,
 27         # alert, emerg.
 28         LogLevel warn
 29 
 30         CustomLog ${APACHE_LOG_DIR}/access.log combined
 31 
 32     Alias /doc/ "/usr/share/doc/"
 33     <Directory "/usr/share/doc/">
 34         Options Indexes MultiViews FollowSymLinks
 35         AllowOverride None
 36         Order deny,allow
 37         Deny from all
 38         Allow from 127.0.0.0/255.0.0.0 ::1/128
 39     </Directory>
 40 
 41 </VirtualHost>

前半部を3箇所変更しています。
これを保存して、次のようにし、変更を反映します。

$ sudo a2ensite mywebpage
$ sudo /etc/init.d/apache2 reload

見てみる

以上で設定は完了した(はず)なので、
http://myweb/index.html
にアクセスしてみましょう。先ほど作ったindex.htmlが表示されればOKです。
Forbidden Error 403
みたいなメッセージが出て、正しく表示されていないようでしたら、パーミッションの問題でファイルアクセスが禁止されている可能性があります。なので、

$ chmod 755 /home/username/myweb

などとして、アクセスするファイルやディレクトリを読めるようにしてください。

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


画像認証

トラックバック - http://d.hatena.ne.jp/bicycle1885/20110508/1304871358