ブログサービスの様にサブドメインを動的に生成する方法
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);
関連記事
-
-
htmlファイル内でPHPを動かす(AddHandler)
サイトを引き継ぐことがあり、ソースを確認していると拡張子はhtmlなのにPHPの ...
-
-
htaccessとhttpd.confの優先度
既に完成しているシステムを引き継ぐことがあり、そこのリライトルール設定を変更した ...
-
-
ApacheとOpenLiteSpeedのPHP実行速度比較とPageSpeed Insights比較
OpenLiteSpeedはApacheよりも処理速度が速いとは聞くものの実際に ...
-
-
CentOSから他のOSに移行が必要な理由とCentOSの状況について
AlmaLinuxにLAMP等、諸々環境構築する記事を書いたがそもそも「どうして ...
-
-
HTTPレスポンスヘッダーX-Frame-Optionsの設定方法
X-Frame-Optionsの設定をする事があった。そもそも「X-Frame- ...