さくらのVPSでCentOS7のサーバーを構築する その6

このブログでは以前にVMware上でCentOS7のサーバーを構築する手順を解説しましたが、今度はさくらのVPSを使ってサーバーを構築します。6回目となる今回は、ユーザーのホームディレクトリ配下にWEBサイトを構築できるような設定を行います。

本編の目次

  • サーバーコントロールパネルへのログイン~サーバー起動まで(第1回)
  • サーバーへログイン~初回起動時に行う設定
  • SSHログインについて
  • SELinuxの有効化(第2回)
  • 一般ユーザーの作成
  • sudoの有効化
  • SSH経由でのrootログイン禁止設定(第3回)
  • 公開鍵認証の導入
  • ファイアウォール(Firewalld)の設定(第4回)
  • SSHのポート番号変更とSELinux
  • WEBサイト公開用ユーザーの作成とChrootの設定(第5回)
  • Apacheのインストールと設定
  • ユーザーのホームディレクトリ配下にあるpublic_htmlを公開する(第6回)
  • バーチャルホストの設定
  • PHPのインストールと設定(第7回)
  • PHPのCGIモード化
  • MySQLのインストールと設定(第8回)
  • phpMyAdminのインストールと設定(第9回)
  • WordPressを使うためのMySQLの設定(第10回)
  • WordPressのインストール

ユーザーのホームディレクトリ配下にあるpublic_htmlを公開する

ここでは各ユーザーのホームディレクトリ配下にあるpublic_htmlディレクトリを公開し、各ユーザーがそこにWEBサイトを構築できるような設定を行います。Apacheインストール時は公開したいファイルを/var/www/html以下に置くことになっていますが、今回行う設定が完成すれば、各ユーザーは自分の管理下のディレクトリにファイルを置けばWEBサイトを構築できるようになります。

それでは早速設定に入りましょう。まずはSELinuxの設定を変更します。以下のコマンドを打っていってください。 [VIM] #ユーザーのホームディレクトリを公開する sudo setsebool -P httpd_enable_homedirs 1 #PHPなどでのTCP接続を許可する(WordPressなどを使うなら必要) sudo setsebool -P httpd_can_network_connect 1 #Apacheによるファイルの書き込み許可 sudo setsebool -P httpd_unified 1 #Apacheによるファイルの書き込み許可 sudo setsebool -P allow_httpd_sys_script_anon_write 1 #ユーザーコンテンツへのアクセスを許可 sudo setsebool -P httpd_read_user_content 1 [/VIM] 詳細は3.3. Boolean – RedHat Customer Portalなども参照のこと

次にApacheの設定を変更します。 [VIM] sudo vim /etc/httpd/conf.d/userdir.conf [/VIM] 設定ファイルを開いたら、以下の記述を編集します。 [VIM] #17行目あたり…disabledをenabledに書き換える UserDir enabled #24行目辺り…コメントアウトを外す UserDir public_html #33行目辺り…Indexesの記述を削除し、ExecCGIを追記する Options MultiViews SymLinksIfOwnerMatch IncludesNoExec ExecCGI [/VIM] 編集し終わったら保存し、設定ファイルの文法チェックを行ってからApacheを再起動しましょう。 [VIM] #文法チェック(Syntax OK と表示されれば大丈夫) apachectl configtest #Apache再起動 sudo systemctl restart httpd [/VIM]

ここまで終わったら、ユーザーディレクトリにあるpublic_htmlに適当な内容のindex.htmlを配置し、以下のURLにアクセスしてみましょう。なお、hogeは任意のユーザー名です。 [VIM] (あなたのVPSサーバーのIPアドレス/ドメイン名)/~hoge/ [/VIM] index.htmlの中身がきちんと表示されれば、設定成功です。

バーチャルホストの設定

ユーザーディレクトリ配下にWEBサイトを構築できるようになったところで、バーチャルホストの設定を行います。(名前ベース)バーチャルホストを使えば、1個のIPアドレスで複数のドメイン名のWEBサイトを運用できるようになるので、是非マスターして1サーバーでも複数のWEBサイトを運営できるようになりましょう。また、複数のユーザーが別々にWEBサイトを構築する場合も、バーチャルホストの設定ができると便利です。

デフォルトではバーチャルホスト用の設定ファイルは存在しないので、自分で作成する必要があります。私は/etc/httpd/conf.d/vhosts.confに設定ファイルを作成します。 [VIM] sudo vim /etc/httpd/conf.d/vhosts.conf [/VIM]

設定ファイルを作成したら、バーチャルホストの設定を書いていきます。 [VIM] NameVirtualHost *:80 ServerName example.com ServerAlias www.example.com DocumentRoot /home/hoge/public_html/hoge ServerName example.net DocumentRoot /home/hoge/public_html/fuga ServerName example.org DocumentRoot /home/hoge/public_html/piyo [/VIM] 一番上のNameVirtualHostディレクティブは、名前ベースバーチャルホストを使用する時に必ず必要になるものです。サーバーで使用するIPアドレス(*でもOK)とポート番号(80番)を指定します。

その後に<VirtualHost *:80>ブロックであるバーチャルホストに関するディレクティブを囲います。バーチャルホストの設定では、最低限次のディレクティブを書く必要があります。

  • ServerName …どのドメイン名(ホスト名)を処理するのかを指定
  • DocumentRoot …ServerNameで指定したドメイン名(ホスト名)のコンテンツの在り処(ドキュメントルート)を指定
また、別名でもアクセスできるようにしたい場合は、その別名をServerAliasディレクティブで指定します。他にも可能な設定はありますが、その辺はまた別の機会に解説します。今回はとりあえず動けばいいというスタンスで設定します。設定を書き終えたら保存し、文法チェックの後にApacheを再起動しましょう。 [VIM] #文法チェック(Syntax OK と表示されれば大丈夫) apachectl configtest #Apache再起動 sudo systemctl restart httpd [/VIM]

再起動後に、バーチャルホストの設定ファイルで指定したドメイン名でサーバーにアクセスし、コンテンツが正しく表示されれば成功です。

このブログを応援する・寄付する

当ブログでは暗号通貨による寄付を募っております。

モナゲボタン モナゲボタン

Bitcoin:

Monacoin:

Litecoin: