PHP
Apache
centos7

ディレクトリ・サブドメインの設定

今回はディレクトリを作成し、サブドメインを設定します。

前回同様の環境です。
〜さくらのVPS 1Gプラン〜
メモリ:1G
CPU:仮想2Core
ストレージ:HDD 100GB
OS:CentOS 7(カスタムOS)

仮として、アカウント名はrootもしくはabc123、ドメインはabc.comとします。

はじめに

Terminalでログインできていることを前提とする。

[root@abc ~]# 

1.所有者・グループ・権限を変更する

デフォルトではhttp://"ご自身のIPアドレス"/にアクセスした際の参照先は/var/www/htmlとなっている。
しかし、FileZillaなどFTPソフトでファイルをアップロードしようとするとエラーが返される。
所有者とグループ、パーミッションを変更する必要がある。
次のコマンドを実行し、/var/wwwまで移動する。

[root@abc ~]# cd /var/www

次のコマンドを実行し、現在の状況を確認する。

[root@abc www]# ls -l
合計 0
drwxr-xr-x 2 root root 6  6月 27 22:49 cgi-bin
drwxr-xr-x 2 root root 6  6月 27 22:49 html
[root@abc www]# 

デフォルトのhtmlディレクトリの所有者とグループはrootであるため、所有者とグループを変更する。
次のコマンドを実行し、所有者をapacheに、グループをabc(suに切り替える前のアカウント)にする。

[root@abc www]# chown apache:abc html

再び次のコマンドを実行し、所有者とグループが変更されていることを確認する。

[root@abc www]# ls -l
合計 0
drwxr-xr-x 2 root root 6  6月 27 22:49 cgi-bin
drwxr-xr-x 2 apache abc 6  6月 27 22:49 html
[root@abc www]# 

次に、htmlディレクトリの権限を変更する。
htmlディレクトリのデフォルトはdrwxr-xr-xとなっている。
これを数字に置き換えると755、つまりは所有者はReadable・Writable・eXecutableの権限あり、それ以外はReadable・eXecutableのみの権限がある。
グループにもWritableの権限を与えることでabcで書き込みができるようになる。
次のコマンドを実行し、abcにもReadable・Writable・eXecutableの権限を与える。

[root@abc www]# chmod 775 html

再び次のコマンドを実行し、Readable・Writable・eXecutableの権限が変更されていることを確認する。

[root@abc www]# ls -l
合計 0
drwxr-xr-x 2 root root 6  6月 27 22:49 cgi-bin
drwxrwxr-x 2 apache abc 6  6月 27 22:49 html
[root@abc www]# 

2.ディレクトリを作成する

次のコマンドを実行し、htmlディレクトリに移動する。

[root@abc www]# cd html

ここにindex.htmlなどをアップロードすれば、http://"ご自身のIPアドレス"/にアクセスしたとき、index.htmlが表示される。
一つのサーバーで複数のサイトを運営したいこともあるだろう。
htmlディレクトリにサイトごとディレクトリを作成して分けることで管理が容易になる。
仮にa1b2c3.abc.comというサイトを運営しようとする。
次のコマンドを実行し、a1b2c3ディレクトリを作成する。

[root@abc html]# mkdir a1b2c3

次のコマンドを実行し、所有者・グループを変更する。

[root@abc html]# chown apache:abc a1b2c3

次のコマンドを実行し、権限を変更する。

[root@abc html]# chmod 775 a1b2c3

ほかにもサブドメインを用いたサイトを運営するのであれば、ディレクトリを作成するところから繰り返す。
ディレクトリや所有者・グループ、権限を一括で作成・変更することができる。
次のコマンドを実行すると、G7H8I9ディレクトリ、4m5n6oディレクトリ、3X1y2Zディレクトリが一括で作成される。

[root@abc html]# mkdir G7H8I9 4m5n6o 3X1y2Z

ディレクトリ名の代わりに"*"を入力することで、/var/www/htmlディレクトリ内にあるすべてのディレクトリの所有者・グループ、権限が一括で変更できる。
次のコマンドを実行すると、/var/www/htmlディレクトリ内のすべてのディレクトリの所有者をapache
に、グループをabcにすることができる。

[root@abc html]# chown apache:abc *

同じく、次のコマンドを実行すると、/var/www/htmlディレクトリ内のすべてのディレクトリの権限を775にすることができる。

[root@abc html]# chmod 775 *

所有者・グループ、権限はご自身の環境に合わせて変更を。

3.サブドメインを設定する

デフォルトのままでは、2で作成したディレクトリはhttp://"ご自身のIPアドレス"/a1b2c3でなければアクセスできない。
http://a1b2c3.abc.com/ でアクセスできるようにするにはhttpd.confの設定を変更する必要がある。
次のコマンドを実行し、httpd.confを開く。

[root@abc ~]# vim /etc/httpd/conf/httpd.conf

最終行のあと1行あけて次のように追加する。

/etc/httpd/conf/httpd.conf
NameVirtualHost "ご自身のIPアドレス":80
<VirtualHost "ご自身のIPアドレス":80>
 ServerAdmin 管理者のメールアドレス
 DocumentRoot /var/www/html/a1b2c3/
 ServerName a1b2c3.abc.com
</VirtualHost>

保存したら次のコマンドを実行し、Apacheを再起動する。

[root@abc ~]# systemctl restart httpd

これでhttp://a1b2c3.abc.com/ にアクセスできるようになる。