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

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

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

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

Apache

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

Q&A

解決済

2回答

3641閲覧

DocumentRootが変更できません。

musasabi

総合スコア1

CentOS

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

Apache

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

0グッド

0クリップ

投稿2021/08/19 15:50

編集2021/08/20 14:22

前提・実現したいこと

documentrootが変更できません。
httpd.confをvimで編集し、デフォルトのDocumentRoot "/var/www/html"からDocumentRoot "/var/www/html/sample"に変更しました。
:wqで保存した後は、systemctl restart httpd で再起動もさせています。
htmlディレクトリとsampleディレクトリにはそれぞれindex.htmlを配置していますが、documentrootをDocumentRoot "/var/www/html"にしても、DocumentRoot "/var/www/html/sample"にしてもhtmlに置いた方のindex.htmlが表示されてしまいます。
もはやお手上げです。考えられる原因がわかる方いらっしゃれば教えていただけると助かります。
よろしくお願いします。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
追記
httpd.confの中の記述ですが、Listen 80 の下に
Include conf.modules.d/.conf
一番最後には、
IncludeOptional conf.d/
.conf
Include /etc/httpd/conf/httpd-le-ssl.conf
とありました。

初期状態からの変更として、
httpへの接続をhttpsへリダイレクトさせる設定がしてあります。

httpd-le-ssl.conf の中の DocumentRoot と

httpd.confの最後の方にある
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot /var/www/html/sample <-ここと

さらに、conf.dの中の、
ssl.conf のDocumentRoot も

var/www/html/sample に変更しましたが、
相変わらずhtmlに置いたindex.htmlが読まれてしまいます。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

追記2
さくらVPSを使っています。
ps aux | grep apache
と打つと、
/usr/sbin/httpd -DFOREGROUND
と出ます。
/usr/sbin/httpd -S -D SSL
と打つと、
AH00548: NameVirtualHost has no effect and will be removed in the next release /etc/httpd/conf/httpd.conf:354
と出た上で、
*:80 自ドメイン.xxx (/etc/httpd/conf/httpd.conf:356)
*:443 is a NameVirtualHost
default server yyyyyyyyy.vs.sakura.ne.jp (/etc/httpd/conf.d/ssl.conf:56)
port 443 namevhost yyyyyyyyy.vs.sakura.ne.jp (/etc/httpd/conf.d/ssl.conf:56)
port 443 namevhost 自ドメイン.xxx (/etc/httpd/conf/httpd-le-ssl.conf:2)
と出ました。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
追記3 

進展があり、少し答えに近づきました。

設定は変えず、時間を置いて、再び、https://ドメイン でアクセスしてみました。
すると、意図した通りsampleの方のhtmlが読み込まれていました。

しかし、そこでまた上に記載したそれぞれのファイルのdocumentrootをデフォルトの/var/www/htmlに戻し、
systemctl reload httpd とその都度再読み込みさせ、ブラウザで新たにURLを打って表示させると、
今度はsampleの方が表示されるままです。

cookieかキャッシュで読まれている?のかなと思ったりしますが、実際のところ知識不足で原因がわかりません。
どうすれば、すぐに変更を反映させることができるのか、ご教示いただけると助かります。
よろしくお願いいたします。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
追記4
tail -f access_log
で改めてリアルタイムのアクセスログを確かめました。
pcからURLを打ってエンターしても、(設定とは違うsampleの方の)index.htmlが表示はされますが、ログには反映されませんでした。
そこで、スマホからアクセスしてみると、スマホの画面では設定どおりのhtmlの方のindex.htmlが表示されました。
そのあとでpcの方を更新すると、pcの方の画面もそのタイミングで切り替わりました。
これが普通なんでしょうか?  もやもやしています。

発生している問題・エラーメッセージ

エラーメッセージはなし。

該当のソースコード

試したこと

<Directory "/var/www/html">の方も同様に<Directory "/var/www/html/sample">に変更しています。

補足情報(FW/ツールのバージョンなど)

Server version: Apache/2.4.6 (CentOS)

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

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

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

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

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

itagagaki

2021/08/19 16:24

ブラウザからはどういうURLでアクセスしてみていますか? そのとき Apacheの logs/access.log にはどう記録されますか?
musasabi

2021/08/19 17:17

回答ありがとうございます。 https://xxx.xxx (独自ドメイン)でアクセスしております。 ステータスコードには 304 (HTTP_NOT_MODIFIED リクエストを受けアクセスは許可されたが対象の文書は更新されていなかった) と出ます。どういうことでしょうか?
mather

2021/08/19 18:58

httpd.conf および Include で指定されたファイルの内容が確認できないと原因がはっきりしません。 できればある程度情報を伏せて提示してください。 なお、Apache 再起動に関しては restart を使わずに、reload で設定ファイルの再読み込みを行ったほうが良いと思います。 systemctl reload httpd あるいは、設定ファイルのテストもきちんと実行したほうが安全です。 service httpd configtest
musasabi

2021/08/20 10:30

回答ありがとうございます。 ご指摘を受け、reloadで再読み込みを行うようにしました。 質問文追記しました。よろしくお願いします。
guest

回答2

0

詳しい状況がはっきりしませんが、
まずはブラウザをリロードしてみてはどうでしょう

投稿2021/08/19 15:52

y_waiwai

総合スコア88042

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

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

musasabi

2021/08/19 15:58

回答ありがとうございます。複数回試していますが、ブラウザのリロードはその都度行っています。
musasabi

2021/08/21 10:47

結局今は普通に更新ボタンを押すだけで、設定が反映されています。 あの時なぜ更新されなかったのかは不明です。 回答していただいてありがとうございました。
guest

0

自己解決

結局、
/etc/httpd/conf/httpd.conf  ではなく、
/etc/httpd/conf/httpd-le-ssl.conf  の方のDRを変更することでうまくいきました。
httpd-le-ssl.conf は
Let's Encryptを導入した時に作られたものです。

変更が更新されない原因はわからないままです。今はなぜか、強制リロードでなく通常の更新ボタンを押すだけで設定が反映されています。

投稿2021/08/21 10:44

musasabi

総合スコア1

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問