CentOS5.5/Apache/homeディレクトリ解放

Last-modified: 2010-12-12 (日) 01:42:29
最終更新:2010-12-12 (日) 01:42:29
アクセス数(合計):?
利用者; ? アクセス数(本日):? アクセス数(昨日):?

Webサーバ Apacheユーザディレクトリ開放

WEBサーバの定番ツールであるApache(アパッチ)にて、各ユーザが自homeエリア(/home/hogehoge)に
独自にHPコンテンツが構築できるよう設定を行う。


やりたいこと

ユーザ側で「/home」配下で独自にWEBを作成し、以下アドレス指定でアクセス可能とする。

http://192.168.0.10/~hogehoge/

条件

使用OSCentOS5.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