Webサーバー · 1 min read · Jan 07, 2026

CentOS 5でBINDとApacheを使って自分のWebサーバーを作成する(簡略版) - ページ2

再びジャンプします :) 今回は少し進んで、1005行目に移動してください。

NameVirtualHost *:80

NameVirtualHostディレクティブは、Apacheに名前ベースの仮想ホスティングを使用したいことを伝えます。簡単に言えば、同じIPアドレスを使用する多数のWebサイトです。’#NameVirtualHost *:80’の下にいくつかの空行を追加し、そのすぐ下の行にNameVirtualHostとホスト名またはIPアドレスを追加し、:80を続けます。’:80’は、HTTPプロトコルのために名前ベースの仮想ホスティングを使用していることを意味します。

したがって、次のようなものを生成する必要があります:

NameVirtualHost host.website.com:80

これで、httpd.confファイルの設定はほぼ完了です。残っているのは、誰かがドメイン名ではなくIPを使用してサーバーにアクセスした場合に、そのユーザーに表示されるデフォルトのホスト名を設定することだけです。これを設定ファイルの最後に挿入できます。


    ServerAdmin [email protected]
    DocumentRoot /www
    ServerName 77.77.197.69
    ErrorLog logs/error_log
    CustomLog logs/access_log common

httpd.confを管理しやすくするために、ファイルの下部にこの行を追加する必要があります:

Include conf/vhosts/*.conf

これは、/etc/httpd/conf/vhostsからすべての.confエントリを含めることを意味し、そこにWebサイトの仮想ホストを追加していきます。進むにつれて理解しやすくなります。さて、ほぼ完了です。httpd.confを保存して進みましょう。

ウェブサイトディレクトリの作成

ウェブサイトを適切に管理するために、ウェブサイトのディレクトリ構造を作成する必要があります。まず、メインディレクトリを作成しましょう:

mkdir /www

次に、/wwwの所有者をrootに設定します:

chown root.root /www

これ以上進む前に、1つの調整を行う必要があります。httpd.confでホスト名として使用したため、named.confにhost.website.comのゾーンを追加しなければなりません。これを行わないとエラーが発生します。したがって、named.confにこれを追加する必要があります。

zone "host.website.com" IN {
        type master;
        file "/var/named/host.website.com.db";
};

もちろん、以下はファイルの内容です:

/var/named/chroot/var/named/host.website.com.db
$TTL 14400
@      86400    IN      SOA     ns1.website.com. [email protected]. (
                2008021501      ; serial, todays date+todays
                86400           ; refresh, seconds
                7200            ; retry, seconds
                3600000         ; expire, seconds
                86400 )         ; minimum, seconds
host.website.com. 86400 IN NS ns1.website.com.
host.website.com. 86400 IN NS ns2.website.com.
host.website.com. IN A 77.77.197.69
localhost.host.website.com. IN A 127.0.0.1

必要に応じて、任意の数のレコードを追加できます。namedを再起動する前に、リンクを作成します:

ln -s/var/named/chroot/var/named/host.website.com.db /var/named/host.website.com.db
service named restart

さて、ディレクトリ構造に戻りましょう。したがって、website.comのゾーンを追加しましたので、今度はそれに対する仮想ディレクトリが必要です。

cd /www  
mkdir website.com  
cd website.com  
mkdir html  
mkdir html/cgi-bin  
mkdir databases  
mkdir logs

ウェブサイトのためのディレクトリを作成したので、次に必要なのはこのドメイン名を管理できるユーザーです。次のように行うことができます:

useradd -d /www/your-domain/ domain_user

または、ユーザーのシェルアクセスを制限したい場合は、次のようにします:

useradd -d /www/your-domain/ -s /sbin/nologin domain_user

ユーザーが追加された後、次のコマンドでパスワードを変更できます:

passwd

このユーザーにはまだ「ホーム」:) 所有する場所がありませんので、次のように追加します:

cd /www && chown domain_user:domain_user website.com

「databases」ディレクトリを作成した場合は、所有者をmysqlユーザーに変更する必要があります。そうしないと、MySQLはデータベースファイルに書き込むことができません。データベースに関連するすべてのディレクトリ、サブディレクトリ、およびファイルはmysqlユーザーが所有する必要があり、次のコマンドでそれを行うことができます:

cd website.com && chown -R mysql:mysql databases

これで、ウェブサイトのディレクトリ構造の作成が完了しました。残っているのは、Apacheにウェブサイトの場所を教えることだけです。

さて、httpd.confを設定していたときに挿入した行を振り返りましょう:

Include conf/vhosts/*.conf

これを行った理由がわかるでしょう。まだフォルダーが存在しないので、作成する必要があります:

cd /etc/httpd/conf && mkdir vhosts

次に、vhostsディレクトリに入ります:

cd vhosts

そして、ドメイン用の新しいファイルを作成します:

nano website.com.80.conf

このファイルに次の内容を挿入する必要があります:


    ServerAdmin [email protected]
    ServerName website.com
    ServerAlias www.website.com
    DocumentRoot /www/website.com/html
    ScriptAlias /cgi-bin/ /www/website.com/html/cgi-bin/
    ErrorLog /www/website.com/logs/error_log
    CustomLog /www/website.com/logs/access_log combined

これで、Apacheにウェブサイトのディレクトリを教えたので、ブラウザからのwww.website.comへのすべてのリクエストは/www/website.com/htmlから読み取られます。そこにファイルを置く必要があります。例:index.html。これでhttpdを起動するか、すでに起動している場合は再起動できます。

service httpd start

または

service httpd restart

このチュートリアルやApacheまたはBINDの設定に問題がある場合は、遠慮なく私に連絡してください。私もそのような問題やそれ以上の問題を経験しましたので、暇なときに喜んでお手伝いします。

著者
: Emir Ibrahimbegovic

E:
[email protected]

W:
www.green.ba

感謝
Tony Bhimani, Sébastien Wains, Nayyar Ahmad

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。