【Ubuntu11.04】ローカルWEBサーバー構築memo
何回も設定をやり直しているのでUbuntu11.04WEBサーバー構築の覚書としてmemo
LAMPサーバーインストール(Linux Apache MySQL PHP PHPMyAdmin)
インストールはいくつか方法がある。
$ sudo apt-get install tasksel
$ sudo tasksel
でLAMPServerを選択してやるとか
$ sudo apt-get update $ sudo apt-get install apache2 php5 php5-gd mysql-server php5-mysql phpmyadmin
とか。
私の場合は後者で行った。
後者の場合は
インストールの過程では4回パスワードを聞かれる。
システムの変更を加えるためのパスワードと
データベースのMySQLのパスワードと
MySQLを設定するためのパスワードと
PHPMyAdminを設定するためのパスワードである。
PHPMyAdminの設定でどのWEBサーバーと連携するかを聞かれるので
その時はapacheサーバーを選択する。
インストールして終わると、
ここでhttp://localhost/にアクセスすると
It works!〜なんちゃらと表示されると成功。
PHPを確認するならば
$ sudo vim /var/www/phpinfo.php
<?php print_f(phpinfo()); ?>
と記入すると、http://localhost/phpinfo.php
にアクセスするとPHPの各種設定情報を表示してくれるPHPinfoが表示される。
mysqlを確認するならば
$ mysql -u root -p
と端末で記入し、
インストール時に設定したパスワードを入力することで
mysqlにアクセスできるようになる。
PHPMyAdminを確認するならば
http://localhost/phpmyadminにアクセスすると
PHPMyAdminのログイン画面が表示される。
apacheの設定
UbuntuなどのDebianのapacheの設定においては
sites-availableとsite-enabledについて理解することが重要。
サイト毎の設定であるバーチャルホストの設定を行うためには。
サーバ全体のは/etc/apache2/apache2.confにまとめてあるが、
サイト毎の設定は/etc/apache2/sites-available/の下で行う。
sites-available(利用できるサイト)はファイルを置く場所で、
site-enabled(利用可能にするサイト)はsites-available のファイルのシンボリックリンク用になります。
つまり、site-enabledの有効(a2enmod)or無効化(a2dismod)によってブラウザで表示するサイトが変えられるということです。
apache設置直後に稼働中のものはDefalutの設定で動いているので
$ sudo a2dissite 000-default
で削除する。
(a2dissiteは/etc/apache2/sites-enabled/にあるリンクを削除するコマンド)
そして、設定をapacheに読み込ませるために再起動する。
$ sudo /etc/init.d/apache2 restart
次に、有効にしたいバーチャルホストの設定を行う。
まずdefalutにあるファイルをコピーする。
defaultを残しておくことで例え設定を間違えてもやり直せる。
$ sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/好きなバーチャルホスト名
バーチャルホストを有効にする。
$ sudo a2ensite 上記でつけたバーチャルホスト名
(a2ensiteは/etc/apache2/sites-available/にある設定のリンクを/etc/apache2/sites-enabled/に作成するコマンド)
これでシンボリックリンクが作成できたのでバーチャルホストと同じ名前のリンクができる。
通常は/var/wwwにDocumentRootがあると思うが
ユーザーディレクトリ(/home/ユーザ名/wwwなど)に
アクセスできるようにしたい場合はUserdirというモジュールを有効化する。
$ sudo a2enmod userdir
(a2enmodは/etc/apache2/mods-available/にある設定のリンクを/etc/apache2/mods-enabled/に作成するコマンド
ちなみにa2dismodは削除するコマンドだ)
そして、設定をapacheに読み込ませるために再起動する。
$ sudo /etc/init.d/apache2 restart
バーチャルホストの設定を細かくして
ドメイン名、ログファイルや変更ログの保管場所の設定を行いたいときは
$ sudo nano /etc/apache2/sites-available/バーチャルホスト名
を編集する。
私のファイル中身は(*)を修正・加筆
<VirtualHost *:80> (*)ServerName サイトのドメイン ServerAdmin webmaster@localhost (*)UserDir バーチャルホスト名 (*)UserDir disabled(rootとユーザー名以外受け付けないようにするために) (*)UserDir enabled ユーザー名 (*)DocumentRoot /home/ユーザー名/バーチャルホスト名/ <Directory /> Options FollowSymLinks AllowOverride None </Directory> (*)<Directory /home/ユーザー名/バーチャルホスト名/> Options Indexes FollowSymLinks MultiViews 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 /home/ユーザー名/バーチャルホスト名/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn (*)CustomLog /home/ユーザー名/バーチャルホスト名/access.log combined Alias /doc/ "/usr/share/doc/" <Directory "/usr/share/doc/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 </Directory> </VirtualHost>
とこんな感じである。
これでバーチャルホスト名を例えば、example.comとかしていたら
HTMLファイルかなんかを指定のフォルダに入れていたら
URLにexample.comと打ち込んで表示される。
躓いたことはローカルのバーチャルホストで設定したドメインで
ユーザーディレクトリにあるphpファイルにアクセスすると
ダウンロードされてしまうというissue。
解決方法はphp5.confの修正
/etc/apache2/mods-available/php5.conf
を念の為に
sudo cp /etc/apache2/mods-available/php5.conf /etc/apache2/mods-available/php5-cp.conf
とコピーしておく。
/etc/apache2/mods-available/php5.conf
の
<IfModule mod_userdir.c> <Directory /home/*/public_html> php_admin_value engine Off </Directory> </IfModule>
を
#<IfModule mod_userdir.c> #<Directory /home/*/public_html> # php_admin_value engine Off #</Directory> #</IfModule>
とコメントアウトすることであった。
最後にapacheを再起動して、
$ sudo /etc/init.d/apache2 restart
ユーザーディレクトリでもphpファイルの表示が可能になった。
参考
Ubuntu(11.04)でLAMPP(Linux Apache MySQL PHP PHPMyAdmin)を構築!インストールと設定
http://niwatako.info/20110611/article847.html
apache2
http://wiki.lampetty.net/apache2.html
webサーバ(apache2)の設定
http://www005.upp.so-net.ne.jp/develop-tom/deb/apache-deb.html
Apacheの設定 2 - ユーザーディレクトリでPHPを実行可能にする
http://blog.livedoor.jp/slowhandblues/archives/4871377.html