Webサーバ Apacheユーザディレクトリ開放
WEBサーバの定番ツールであるApache(アパッチ)にて、各ユーザが自homeエリア(/home/hogehoge)に
独自にHPコンテンツが構築できるよう設定を行う。
やりたいこと
ユーザ側で「/home」配下で独自にWEBを作成し、以下アドレス指定でアクセス可能とする。
http://192.168.0.10/~hogehoge/
条件
使用OS | CentOS5.5 64bit |
アプリ | Apache+PHP+MySQL (CentOS付属) |
文字コード | utf-8 |
設定
(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
- ServerNameにホスト名「hogehogeServer」を追加
#ServerName www.example.com:80 ↓ #ServerName www.example.com:80 ServerName hogehogeServer:80
- http再起動
# /etc/rc.d/init.d/httpd restart httpd を停止中: [ OK ] httpd を起動中: [ OK ]
- 終了
# exit exit
(2) ユーザディレクトリ設定
- リスト確認
$ ls -l .. 合計 8 drwx------ 17 hogehoge hogehoge 4096 7月 24 16:55 hogehoge
- 権限を変更 ユーザディレクトリをwebからアクセス可に設定
$ chmod 755 ../hogehoge/
- 権限が変更されたか確認
$ ls -l .. 合計 8 drwxr-xr-x 17 hogehoge hogehoge 4096 7月 24 16:55 hogehoge
- ディレクトリ内ファイル確認
$ ls Desktop
- webデータ用フォルダ作成 (public_html)
$ mkdir public_html
- フォルダが出来たか確認
$ ls -l 合計 8 drwxr-xr-x 2 hogehoge hogehoge 4096 7月 24 09:52 Desktop drwxrwxr-x 2 hogehoge hogehoge 4096 7月 24 17:06 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.1.6 : :
(多量に出力されればOK)
- mysql動作試験データ作成
$ vi public_html/mysql.php
<?php mysql_connect("Localhost","root","") 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/ 合計 12 -rw-rw-r-- 1 hogehoge hogehoge 119 7月 24 17:11 index.html -rw-rw-r-- 1 hogehoge hogehoge 20 7月 24 17:12 info.php -rw-rw-r-- 1 hogehoge hogehoge 113 7月 24 17:16 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