質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

サーバ

サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

Q&A

解決済

1回答

3534閲覧

CentOS7のApache2.4.6でVirtualHostのDocumentRootが効かない

glow

総合スコア10

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

サーバ

サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

0グッド

0クリップ

投稿2018/09/26 18:41

編集2018/09/26 19:06

前提・実現したいこと

さくらVPSにて環境構築中です。
バーチャルホストを設定する際にドハマりしてしまいました。

/etc/httpd/conf.d/vhost.confでDocumentRootを設定したものの、効きません。
本来ならば、「/var/www/html/a」フォルダ内の「index.html」を表示したいのですが、実際は「/var/www/html/」を参照しているようで、「Testing 123..」画面が表示されてしまいます。

ご存知の方いらっしゃいましたらお力添え頂きたく存じます。

環境

利用サーバー : さくらのVPS OS : CentOS 7 Apache : 2.4.6

該当のソースコード

/etc/httpd/conf/httpd.confの内容。
読込が重複するため、BameVirtualHostをコメントアウト。

httpd

1IncludeOptional conf.d/*.conf 2#NameVirtualHost *:80

/etc/httpd/conf.d/vhost.confで作成。
mod_sslにてSSL化後、httpd.confに記述していた設定を移動しています。

vhost

1NameVirtualHost (ip address):80 2 3<VirtualHost (ip address):80> 4ServerName a.com 5CustomLog logs/a-access.log common 6ErrorLog logs/a-error.log 7AddDefaultCharset UTF-8 8DocumentRoot /var/www/html/a 9<Directory "/var/www/html/a"> 10 AllowOverride All 11 Require all granted 12</Directory> 13# 移動した設定 start 14RewriteEngine on 15RewriteCond %{SERVER_NAME} =a.com 16RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent] 17# 移動した設定 end 18</VirtualHost> 19 20<VirtualHost (ip address):80> 21ServerName b.com 22CustomLog logs/b-access.log common 23ErrorLog logs/b-error.log 24AddDefaultCharset UTF-8 25DocumentRoot /var/www/html/b 26<Directory "/var/www/html/b"> 27 AllowOverride All 28 Require all granted 29</Directory> 30</VirtualHost> 31# 移動した設定 start 32Include /etc/httpd/conf/httpd-le-ssl.conf 33# 移動した設定 end

試したこと

NAMEベースである為、
NameVirtualHost *:80 をNameVirtualHost (ip address):80へ変更し、
<VirtualHost *:80>を<VirtualHost (ip address):80>にした。

記述順序変更や末尾スラッシュ削除、細かな修正を何度も繰り返したものの、改善されず・・。
無効な設定にした場合はページ表示されなくなる為、「/etc/httpd/conf.d/vhost.conf」が反映されていること確実であると思われます。


# httpd -t -D DUMP_CONFIG 2>/dev/null | grep -n -B 1 '^# In' 1:# In file: /etc/httpd/conf/httpd.conf -- 80-EnableSendfile on 81:# In file: /etc/httpd/conf.d/autoindex.conf -- 154-IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t 155:# In file: /etc/httpd/conf.d/phpMyAdmin.conf -- 204-</Directory> 205:# In file: /etc/httpd/conf.d/ssl.conf -- 252-</VirtualHost> 253:# In file: /etc/httpd/conf.d/userdir.conf -- 264-</Directory> 265:# In file: /etc/httpd/conf.d/vhost.conf -- 313-</VirtualHost> 314:# In file: /etc/httpd/conf/httpd-le-ssl.conf -- 326- SSLCertificateKeyFile /etc/letsencrypt/live/3810.pro/privkey.pem 327:# In file: /etc/letsencrypt/options-ssl-apache.conf -- 341- LogFormat "%v %h %l %u %t \"%r\" %>s %b" vhost_common 342:# In file: /etc/httpd/conf/httpd-le-ssl.conf -- 345-</VirtualHost> 346:# In file: /etc/httpd/conf.d/welcome.conf

https://teratail.com/questions/138373
からヒントを得て、SSLの場合は設定を複数記述する必要性があることを理解しました。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

その後、mod_ssl設定時に書き加えられていた、
「Include /etc/httpd/conf/httpd-le-ssl.conf」の中身を確認したところ、ここにSSLの記述設定が加えられており、DocumentRoot設定が「/var/www/html/」となっていました。

sslconf

1<IfModule mod_ssl.c> 2<VirtualHost *:443> 3ServerAdmin root@a.com 4DocumentRoot /var/www/html 5ServerName a.com 6SSLCertificateFile /etc/letsencrypt/live/a.com/cert.pem 7SSLCertificateKeyFile /etc/letsencrypt/live/a.com/privkey.pem 8Include /etc/letsencrypt/options-ssl-apache.conf 9SSLCertificateChainFile /etc/letsencrypt/live/a.com/chain.pem 10</VirtualHost> 11</IfModule>

これを「DocumentRoot /var/www/html/a」と変更した結果、無事希望の動作をするに至りました。
お騒がせいたしました。

投稿2018/09/26 19:11

glow

総合スコア10

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問