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

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

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

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

Apache

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

Vagrant

Vagrantは、VirtualBox上の仮想マシンを コマンドラインから作成してくれるソフトウェアです。 ビルド環境など容易に構築が可能です。

Q&A

1回答

584閲覧

【Apache】VirtualDocumentRoot 設定におけるServerNameについて 変更前タイトル:httpd.conf 内の変数?使用について (vagrant) ローカル開発環境構築

jantyran

総合スコア14

CentOS

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

Apache

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

Vagrant

Vagrantは、VirtualBox上の仮想マシンを コマンドラインから作成してくれるソフトウェアです。 ビルド環境など容易に構築が可能です。

0グッド

0クリップ

投稿2018/03/13 03:46

編集2018/03/14 07:01

vagrant仮装環境で、apacheの設定をしていたのですが、参考にしていたファイルのapacheの設定でわからないことが出てきたので、相談させてください。

httpd.confないから

IncludeOptional conf.d/*.conf Include conf.d/vhosts.conf

でvhosts.confと呼ばれるファイルを呼び出しています。

で、そこにServerNameが記されているのですが、このserverNameが develhost と記載されています。
このdevelhostによって自動的にプログラムの入ったディレクトリ名とサーバー名を結びつけているとは思うのですが、どこでそのような設定をしているのかわからず、develhostで調べても情報が全くなかったので、教えていただけないでしょうか。

想定している挙動としては、workspace以下に複数のプログラムを入れて、それぞれのトップディレクトリ名とvagrantで設定しているIPアドレスをホスト側で結びつけると自動的にpublic_html下のファイルへブラウザからアクセスできるようになることです。

以下vhosts.confになります。

<VirtualHost *:80> ServerAdmin warden VirtualDocumentRoot /workspace/%0/public_html ServerName develhost EnableSendfile Off <Directory /workspace/*/public_html> php_value display_errors On Order deny,allow Allow from all AllowOverride All Require all granted </Directory> SetEnv ENV_SERVER_TYPE devel </VirtualHost> <VirtualHost *:443> SSLEngine on SSLProtocol all -SSLv2 SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW SSLCertificateFile /etc/pki/tls/certs/localhost.crt SSLCertificateKeyFile /etc/pki/tls/private/localhost.key <Files ~ ".(cgi|shtml|phtml|php3?)$"> SSLOptions +StdEnvVars </Files> <Directory "/var/www/cgi-bin"> SSLOptions +StdEnvVars </Directory> SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0 VirtualDocumentRoot /workspace/%0/public_html ServerName develhost <Directory /workspace/*/public_html> php_value display_errors On Order deny,allow Allow from all AllowOverride All Require all granted </Directory> SetEnv ENV_SERVER_TYPE devel </VirtualHost>

apacheについて詳しくわかっていない状況ですが、よろしくお願い致します。
足りない情報等がありましたら言ってください。

==========追加==============
以下サイトでvirtual document rootのやり方が乗っていました。
ただ、これできになるのは、ServerName を xxxxx.xxxx.xxxだけにしてしまっていますが、
もともと ServerName yyyyy.xxxx.xxx で設定されていたサイトにもアクセスができるということですよね。
これが正しいとしたら、 VirtualDocumentRootを設定する際の servername は なんでも良く、他に変更すべきことはないということでしょうか。
また、どうしてこれで yyyyy.xxxx.xxx などにもアクセスできるようになるのでしょうか。
(どこかでserverNameが設定されているとか?)

以下参考サイト
https://www.softel.co.jp/blogs/tech/archives/2189

DocumentRootを使うとこうなるところが、

<VirtualHost *:80> ServerName xxxxx.xxxx.xxx DocumentRoot "/home/apache/xxxxx.xxxx.xxx/htdocs" </VirtualHost> <VirtualHost *:80> ServerName yyyyy.xxxx.xxx DocumentRoot "/home/apache/yyyyy.xxxx.xxx/htdocs" </VirtualHost> <VirtualHost *:80> ServerName zzzzz.xxxx.xxx DocumentRoot "/home/apache/zzzzz.xxxx.xxx/htdocs" </VirtualHost>

VirtualDocumentRootでまとめてこう書ける。

<VirtualHost *:80> ServerName xxxx.xxx ServerAlias *.xxxx.xxx VirtualDocumentRoot "/home/apache/%0/htdocs" </VirtualHost>

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

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

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

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

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

CHERRY

2018/03/13 10:45 編集

/etc/hosts あたりで、ホスト名として使えるようにIPアドレスが、書かれているとかかな
jantyran

2018/03/14 05:47

はい。ホスト側のhostsファイルに  ipアドレス ディレクトリ名 での記入はされています。それをすれば、ServerName はなんでもいいことになるんでしょうか。
guest

回答1

0

おそらくですがdevelhostはただのサンプルの値(名前でいえば山田太郎的な)ではないでしょうか。
ServerNameに実際に設定するのは、Apacheが動くサーバ名になりますが、ローカル開発環境であればlocalhostあるいは127.0.0.1でいいのでは無いかと思います。

投稿2018/03/13 04:19

bassbone

総合スコア767

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

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

jantyran

2018/03/14 05:50

コメントありがとうございます。 一応社内で使うようで書かれていて、このServer Nameでvagrant は動かせるみたいなのですが、 どうしてそれで動かせるのかよくわからないです。 自分でapacheを設定する際に参考にはしているのです。 ローカル環境で複数ドメインを動かす際にServerNameは通常はlocalhost にするのでしょうか。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問