http://ドメイン/~ユーザー名でアクセスできるようにする |
ユーザーディレクトリに public_html ディレクトリがあることが前提です。
※ CGIは専用のディレクトリcgi-binのみで動作するようにします。
※ 自動で作るにはユーザーの追加を参照
※ /home/ユーザー名/public_html
# vi /etc/httpd/conf/httpd.conf ← 設定ファイル編集 #UserDir public_html ← 先頭の# を削除 ↓ UserDir public_html #<Directory /home/*/public_html> # AllowOverride FileInfo AuthConfig Limit # Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec # <Limit GET POST OPTIONS PROPFIND> # Order allow,deny # Allow from all # </Limit> # <LimitExcept GET POST OPTIONS PROPFIND> # Order deny,allow # Deny from all # </LimitExcept> #</Directory> ↓ 先頭の # と、フォルダの中身を見せたくないので Indexes を削除 <Directory /home/*/public_html> AllowOverride FileInfo AuthConfig Limit ← オプションは下記を参照 Options MultiViews SymLinksIfOwnerMatch IncludesNoExec ← オプションは下記を参照 <Limit GET POST OPTIONS PROPFIND> Order allow,deny Allow from all </Limit> <LimitExcept GET POST OPTIONS PROPFIND> Order deny,allow Deny from all </LimitExcept> </Directory> ユーザーのCGIディレクトリの設定 ScriptAlias /cgi-bin/ /home/httpd/cgi-bin/ ↓ #ScriptAlias /cgi-bin/ /home/httpd/cgi-bin/ ← #がなければ付けます # # "/home/httpd/cgi-bin" should be changed to whatever your ScriptAliased # CGI directory exists, if you have that configured. # <Directory /home/*/public_html/cgi-bin> ← このように変更 AllowOverride FileInfo AuthConfig Limit ← オプションは下記を参照 Options ExecCGI ← CGIを有効(その他オプションは下記を参照) Order allow,deny Allow from all </Directory> ※ CGI を許可したくないユーザーがいるときはこの下に下記を追加 ↓ <Directory /home/xxxxxx/public_html/cgi-bin> Options None ← ここをNoneに(下記のオプションを参考) </Directory> 設定が終了したら保存し、httpdサーバー再起動 # /etc/rc.d/init.d/httpd restart httpdを停止中: [ OK ] httpdを起動中: [ OK ] OKが出れば正常に作動しています。 |
※ Options は有効にするサーバのオプションを指定します。 | |
All | MultiViewを除くすべて有効。 |
ExecCGI | CGIプログラムの実行許可。 |
FollowSymLink | シンボリックリンクに従う。 |
Includes | SSIの許可。 |
IncludesNoExec | SSI は許可、CGI の #Exec と #include は禁止。 |
Indexes | ディレクトリにアクセスがあった場合、にindex.html等のファイルがないと、 インデックスリストが自動作成され表示されます |
MultiViews | マルチビューのサーチを許可(例えば、.../Fileのリクエスト時に このファイルが存在しない場合、サーバは.../File.*をサーチ)。 |
None | すべて禁止。 |
※ AllowOverride は.htaccess のオプションです | |
All | ユーザーの.htaccess指定を優先利用する |
AuthConfig | ユーザー認証のコントロールコマンドのみ記述を許可 |
FileInfo | ドキュメントタイプ関係のコマンドのみ記述を許可 |
Indexes | ディレクトリインデックス関係のコマンドのみ記述を許可 |
Limit | ユーザーのアクセスコントロール関係のコマンドのみ記述を許可 |
Options | Optionsやディレクトリ設定関係のコマンドのみ記述を許可 |
None | ユーザーの.htaccessをを認めない |
きちんと見れるかテストします
@ ユーザーディレクトリ(/home/ユーザー名/public_html)にテスト用のindex.htmlファイルをアップロードします
A Lan 内のPCからテスト → http://192.168.11.2/~ユーザー名
※ 192.168.11.2 の部分はサーバーのIP
index.htmlファイルが見れれば成功です。
バーチャルホストの設定 |
バーチャルホストとは1つのWeb サーバーで複数のサイト運営をすることです。
少し説明が下手ですが…
例として、abcd.com と言うドメインを取得したとします。
http://好きな文字.abcd.com といた感じで複数のドメインでサイト運営できます。
# vi /etc/httpd/conf/httpd.conf ← 設定ファイル編集 最下部に追記していきます。 NameVirtualHost * ※ まずメインのドメインの記述を必ずします <VirtualHost *> ServerAdmin xxxxx@xxxxx.com DocumentRoot /home/httpd/html ServerName xxxxx.com </VirtualHost> ※ ここからサブドメインの設定です <VirtualHost *> ServerAdmin 1234@xxxxx.com DocumentRoot /home/ユーザー名/public_html ← htmlファイルの置く場所 ServerName 1234.xxxxx.com ← 1234の部分は任意(好きなもの) </VirtualHost> ※ 複数設定する場合は上記の要領で記載してください <VirtualHost *> ServerAdmin aaaaa@xxxxx.com DocumentRoot /home/ユーザー名2/public_html ServerName abcde.xxxxx.com </VirtualHost> ※ 参考 ServerAdmin は何らかのエラーがリクエストに対して発生した場合、エラーメッセージと共にココに設定したアドレスがブラウザ上に表示されます。 各ホストごとに設定した方が無難だと思います。 DocumentRoot はhtml ファイルの置く場所を指定します ServerName ドメインを指定します |
※ CGI の設定は上記の設定と同じですのでそちらを参照してください。
SSI の動作確認する |
SSI ファイルを以下の内容で作成
<html> <body> <pre> <!--#printenv --> </pre> </body> </html> |
適当なファイル名をつけ拡張子を .shtml にして保存して、ユーザーディレクトリ(ドキュメントルート)に保存してください。
ブラウザでアクセスして環境変数一覧が表示ざれれば、SSI は正常に作動してます。
Copyright c Vine Linuxで自宅サーバー. 2004 All Rights Reserved.