ブログサービスの様にサブドメインを動的に生成する方法
2024/04/18
ブログサービスの様に「hoge」というログインIDを作成した際「hoge.blog.jp」のようにサブドメインを自動的に生成したい。また同時にサーバ側では「hoge」というディレクトリを作成し、当該ドメインにアクセスした場合はそのディレクトリを参照させたい。以下に対応方法のメモ。
DNSの設定
まずはDNS側の設定をする。「○○.blog.jp」の○○がどのような値でも「111.222.333.444」というIPに向けたい場合、ワイルドカードが使えるらしい。下記がワイルドカードの例。
RECORD NAME *(ワイルドカード) TYPE A TTL 7200(無料プランだと固定) Priority 空白でOK Content 111.222.333.444(サーバーのIP入れる)
あと、ネームサーバーも変えないといけない。今回はtkドメインで試したんだけど、Management Toolsの中にNameserversというのがあるので、Use custom nameserversの中に以下を入れておく。
ns1.dzndns.com ns2.dzndns.com ns3.dzndns.com ns4.dzndns.com
これで「○○.blog.jp」とした場合に○○に何を入れても「111.222.333.444」に飛ぶようになる。
apacheの設定
次にapache側の設定。httpd.confに以下を記述する。
#↓↓コメントアウト付いている場合は外す NameVirtualHost *:80 #↓↓下記を追記 <VirtualHost *:80> ServerAdmin blog.jp ServerName blog.jp ServerAlias *.blog.jp VirtualDocumentRoot /var/www/html/%1 ErrorLog logs/error_log CustomLog logs/access_log common </VirtualHost>
こうすることで「hoge.blog.jp」というURLを叩いた場合「/var/www/html/hoge」がドキュメントルートとなる。
PHPでディレクトリ生成
あとはアカウント作成フォームとかと組み合わせて以下のような形でディレクトリをPHP側から作成することで、ユーザーのIDがサブドメインとして使えるようになる。
$dirName = 'hoge'; $dirPath = '/var/www/html/' . $dirName; mkdir($dirPath, 0755);
関連記事
-
-
CPIのレンタルサーバでRewriteEngineを使用する場合の注意点
CPIのレンタルサーバで開発する案件があり、htaccessファイルを用いてRe ...
-
-
お手軽に負荷分散(DNSラウンドロビン)を行う方法
サーバ設定か何かの記事を見ていて「DNSラウンドロビン」という聞いたことのない言 ...
-
-
日本語込みのURLをRewriteRuleで書き換える方法
WordPressのパーマネントリンク的なことをhtaccessで実現したい。具 ...
-
-
cronの時間設定部分が全てアスタリスク
サイトを引き継ぐことがあり、そのサーバの設定資料を確認するとcronの設定で日時 ...
-
-
プロキシサーバの接続ログを確認する方法
だいぶ前にVPSにプロキシサーバ(squid)を導入した。接続IPは指定している ...