ブログサービスの様にサブドメインを動的に生成する方法
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);
関連記事
-
-
WordPress Popular Postsのサムネイルが表示されない
WordPressの人気記事を表示させるWordPress Popular Po ...
-
-
サーバーリソース監視にsar(sysstat)が便利だった
過去にサーバーリソース監視のmuninとかcactiを何度か入れようとして挫折し ...
-
-
他ドメインから画像の呼び出し(直リンク)を禁止する方法
他ドメインからの画像の呼び出し、いわゆる直リンクの禁止を行いたかった。調べるとh ...
-
-
AlmaLinux8系にChronyをインストールしてサーバの時刻同期を行う方法
以前にCentOS系でNTPによるサーバの時刻同期を行った。今回AlmaLinu ...
-
-
Plesk12で「SQLSTATE[42S02]: Base table~~」エラー時の対応方法
Plesk12のログインページを開くと「ERROR: Zend_Db_State ...