Webサーバ Apache homeエリア開放
WEBサーバの定番ツールであるApache(アパッチ)にて、各ユーザが自homeエリア(/home/hogehoge)に
独自にHPコンテンツが構築できるよう設定を行う。
目的
ユーザ側で「/home」配下で独自にWEBを作成し、以下アドレス指定でアクセス可能とする。
http://192.168.0.10/~hogehoge/
構築条件
構築機器
- 仮想サーバ SUN VirtualBox 4.0 で構築
作成環境
OS | CentOS 5.6 64bit版 |
サーバ作成条件
サーバIP | 192.168.0.10/24 |
ホスト名 | hogehogeServer |
user | hogehoge |
userpasswd | hogehogepass |
mysqldb名 | mysql |
mysqluser名 | mysqluser |
mysqluserpasswd | mysqlpass |
作業ディレクトリ | /home/hogehoge |
手順記入ルール
- コマンド行頭記号で 「$」はユーザ権限 「#」はスーパーユーザー権限 を表示
- コマンドが長くなる場合は、行末に「\」を記述し複数行に記述。
前準備
- CentOSインストール 実施
- yumリポジトリ設定 実施
- LAMPサーバ構築 実施
設定
(1)Webサーバ(apache)設定
【telnet】
- rootでログイン
$ su パスワード:
- httpd.conf編集
# vi /etc/httpd/conf/httpd.conf
- ユーザディレクトリアクセス禁止をコメントアウト
UserDir disable ↓ #UserDir disable
- ユーザディレクトリ「public_html」アクセス許可
#UserDir public_html ↓ UserDir public_html
- http再起動
# /etc/rc.d/init.d/httpd restart httpd を停止中: [ OK ] httpd を起動中: [ OK ]
- 終了
# exit exit
(2) ユーザディレクトリ設定
- リスト確認
$ ls -l ..
drwx------ 17 hogehoge 500 4096 4月 10 09:05 hogehoge
- 権限を変更 ユーザディレクトリをwebからアクセス可に設定
$ chmod 755 ../hogehoge/
- 権限が変更されたか確認
$ ls -l ..
drwxr-xr-x 17 hogehoge 500 4096 4月 10 09:05 hogehoge
- webデータ用フォルダ作成 (public_html)
$ mkdir public_html
- フォルダが出来たか確認
$ ls -l
drwxr-xr-x 2 hogehoge hogehoge 4096 4月 9 19:11 Desktop drwxrwxr-x 2 hogehoge hogehoge 4096 4月 11 22:35 public_html
(3)動作試験データ作成
- web動作試験データ作成
$ vi public_html/index.html
<html> <head> <title>テストページ</title> </head> <body> 初めてのホームページです。 </body> </html>
- php動作試験データ作成
$ vi public_html/info.php
<?php phpinfo(); ?>
- 動作試験
$ php public_html/info.php
phpinfo() PHP Version => 5.3.3 :
(多量に出力されればOK)
- mysql動作試験データ作成
$ vi public_html/mysql.php
<?php mysql_connect("localhost","root","mysqlpass") or die("Error MySQL First Test"); echo "Success MySQL First Test"; ?>
- 動作試験
$ php public_html/mysql.php
Success MySQL First Test
(この文字が出力されればOK)
$ ls -l public_html/
-rw-rw-r-- 1 hogehoge hogehoge 119 4月 11 22:37 index.html -rw-rw-r-- 1 hogehoge hogehoge 20 4月 11 22:37 info.php -rw-rw-r-- 1 hogehoge hogehoge 122 4月 11 22:42 mysql.php
(4)動作試験
他のPCから以下URLアクセス
http://192.168.0.10/~hogehoge/
初めてのホームページです。
http://192.168.0.10/~hogehoge/info.php
(PHP設定情報出力)
http://192.168.0.10/~hogehoge/mysql.php
Success MySQL First Test
★上記のとおり出力されればOK
遭遇したトラブル
http://192.168.0.10/~hogehoge/ アクセス時「You don't have permission~」エラー
問題:
http://192.168.0.10/~hogehoge/ アクセス時、「You don't have permission~」エラーが出る場合がある。
Forbidden You don't have permission to access /~hogehoge/ on this server.
原因:
ユーザディレクトリのパーミッション変更忘れ
''http://192.168.0.10/~hogehoge/mysql.phpアクセスで何も表示されない''
問題:
http://192.168.0.10/~hogehoge/mysql.phpにアクセスしても画面が真っ白になって何も表示されない場合がある。
原因:
以下モジュールのインストール忘れ
「mod_auth_mysql-~」「php-mysql-~」
サーバ画面の「アプリケーション」→「ソフトウェアの追加/削除」→「一覧」でモジュールをインストールすること
モジュール/パーミッション、どちらもCentOSインストール時デフォルトでは設定されないため意識して設定しないと漏れやすい。
実際、HP表示エラー原因を探すためにめちゃめちゃ悩んだ
Apache再起動時に「Could not reliably ~」のエラー
問題:
Apache再起動時に「Could not reliably ~」のエラーが出る場合がある
Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
原因:
Apacheの定義ファイルhttp.confへのホスト名登録忘れ。
独自にサーバ名を設定した場合この問題が出やすい
# view /etc/hosts 127.0.0.1 hogehogeServer localhost.localdomain localhost
で登録サーバを確認 「localhost.localdomain localhost」以外
※上記例の場合は 「 hogehogeServer」
# vi /etc/httpd/conf/httpd.conf
#ServerName www.example.com:80 ServerName hogehogeServer:80 ←追加
のようにServerNameに追加しておく
謝辞
テキスト作成に当たり、以下サイトを参考にさせて頂きました。ありがとうございます。
http://centossrv.com/apache.shtml
http://blog.dacelo.info/apache/entry-713.html
http://lfll.blog73.fc2.com/blog-date-200706.html