勉強したことのメモ

webプログラマが勉強したことのメモ。

ブログサービスの様にサブドメインを動的に生成する方法  

   

ブログサービスの様に「hoge」というログインIDを作成した際、「hoge.blog.jp」のようにサブドメインを自動的に生成したかったので、その方法のメモ。

以下の3手順で行う。

  1. DNSの設定
  2. apacheの設定
  3. PHPでディレクトリ生成

 


 

DNSの設定

 

まずはDNS側の設定をする。「○○.blog.jp」の○○がどのような値でも「111.222.333.444」というIPに向けたい場合、ワイルドカードが使えるらしい。が、ムームードメイン及びtkドメインではワイルドカードを使えない模様

ムームードメインでも2015/10/06からワイルドカードが使えるようになってた(2022/04/11追記)。

あとはお名前.comもワイルドカード利用可

なので、Dozensという無料DNSサービスを利用する。

 
Dozens
http://dozens.jp

Dozensは2019/11/30にサービス終了していた(2022/04/11追記)。

アカウントを作成し、レコードを追加していく。下記がワイルドカードの例。

 

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でディレクトリ生成

 

あとはアカウント作成フォームとかと組み合わせて、

 

$dirName = 'hoge';
$dirPath = '/var/www/html/' . $dirName;
mkdir($dirPath, 0755);

 

のような形でディレクトリをPHP側から作成することで、ユーザーのIDがサブドメインとして使えるようになる。

 - PHP, サーバー, ドメイン

  関連記事

WordPressにてPHPのAPCuを使用して高速化を図る方法

先日本サイトのサーバにAPCuを導入した。しかしながら所感にも書いたとおりAPC ...

PHPでis_fileとfile_existsについて

ファイルの存在チェックを行う際に、file_exists関数を 使用していたが、 ...

MySQLが起動も再起動もできない

サイトで障害が発生した。FTPやSSH接続は出来るけどサイト自体は表示されない。 ...

HTML / CSSで作成したコンテンツをPDFファイルで出力する方法(TCPDF)

HTML / CSSで作成したコンテンツをPDFファイルで出力させたい。以前mp ...

独自タグを変換して画像を表示させる

やりたい事↓↓ ----- {$IMG1}~{$IMG5}までの独自タグがある。 ...

PHPでデータをファイルキャッシュさせる(Cache_Lite)

最近携わった案件でPHPでファイルキャッシュをしているシステムがあった。今までフ ...

CodeIgniterのバージョンの調べ方

CodeIgniterを使っているシステムがあったが、どうも記憶しているディレク ...

iPhoneでSSH接続するアプリ

iPhoneでSSHクライアントアプリを使用する必要があった。以下に経緯等のメモ ...

サーバーリソース監視にsar(sysstat)が便利だった

過去にサーバーリソース監視のmuninとかcactiを何度か入れようとして挫折し ...

フォルダにリンク制限をかける

imgというフォルダがあり、直接URLを叩いても 中身を見られないけど、同一サー ...