さくらのVPSでCentOS7のサーバーを構築する その6
投稿日:2017年04月21日
最終更新日:
本編の目次
- サーバーコントロールパネルへのログイン~サーバー起動まで(第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
その後に<VirtualHost *:80>ブロックであるバーチャルホストに関するディレクティブを囲います。バーチャルホストの設定では、最低限次のディレクティブを書く必要があります。
- ServerName …どのドメイン名(ホスト名)を処理するのかを指定
- DocumentRoot …ServerNameで指定したドメイン名(ホスト名)のコンテンツの在り処(ドキュメントルート)を指定
再起動後に、バーチャルホストの設定ファイルで指定したドメイン名でサーバーにアクセスし、コンテンツが正しく表示されれば成功です。