- ベストアンサー
ドキュメントルートについて。
いつも大変お世話になっております。 標記の件。 ボクはサーバの構成を設置する際、 必ず、VAR➡WWW➡HTMLの下に置きます。 どうすれば複数の構成を設置できるでしょうか? ご多忙中恐れ入ります。 ご回答のほど、宜しくお願い申し上げます。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>https://okwave.jp/qa/q9758794.html >では何か簡単そうにおっしゃっていました。 言ってませんけど。 一つのApacheで、やるのと、複数のhttpdを立ち上げるのは 全然違いますよ。 https://httpd.apache.org/docs/2.4/ja/vhosts/examples.html 私が言ってるのは、VirtualHostです。 どうせ、CentOSでのやり方も聞きたいのでしょうから。 https://weblabo.oscasierra.net/apache24-centos7-virtualhost/ CentOSでの設定例も置いておきます。 (ただし、書いてることは同じなので、基礎がわかっていれば 両方全く同じことが書いてあるのが、わかってくると思います) >ボクはユーザーを変えて複数のhttpdを動作させようと考えていました。 通常Apacheのユーザー名は「Apache」です。 立ち上げた人が「root」だとしても、rootで提供したら、 それは外部に提供することを目的としたデーモンですから、 外部の人間にroot権限をあたえるのか?ということにつながります。 当然「ありえません」なので、何の権限もないapacheを使います。 >簡単に3桁のhttpdを動かすことはできないでしょうか? これは簡単です。 https://httpd.apache.org/docs/2.4/ja/mod/worker.html ここで、数を増やせばいいです。 ただ、そもそもですが、 例えばApacheは80ポート(HTTPとして)リスティングしてるわけですが、 親が、80をロックしてしまったら、その間他の人が使えませんよね? だから、 親は今サーバーに届いた80の内容をもった子供を生み出します。 子供は、その内容を処理して相手に送り返しています。 親はすぐに80を待機に戻す。それを繰り返しているわけです。 が、子供を生み出すときオーバーヘッドが発生するので、 処理が終わった子供を維持するか? つまり、複数のhttpdがいるか?はこの値を意味してます。 なお、一般的には、リミット4~8で全然十分ですが。 なので、実際には一つのデーモンとクローンにすぎないのですよ。 本当に「3桁もポート開いたら」もっと恐ろしい結果になります。 3桁も親子関係がいると考えたら、ゾッとするでしょ。 ってことで、まず普通に立ち上げて普通にログ監視して Apacheがどういう原理で動いているか?を 見ていくと、いいでしょう。 なので、1個のApacheで、例えば100個のWEBサイトを立ち上げるか? と、100個の子供が必要なのかは。無関係になります。 なぜなら、その100個の設定は、元々1個のApacheに書かれていたもので それを継承している子供が生まれている以上、設定は「1回だけ」でいいのです。 そんなもん、100回も書いてたら、時間の無駄ですよ。 だから、httpd.confというファイルがあるんですよ。 通信ごとに必要なわけではなく、Apacheの起動時に読み込んでるのも、 このため。 ということで今回の回答ですが、 「どうすれば複数の構成を設置できるでしょうか?」 ここの概念を間違っており、 「複数の構成を設置するのと、httpdを複数立ち上げることとは関係性はない。」 が回答です。 これら、すべてApacheのマニュアルに書かれているので、 一度熟読をお勧めします。 https://httpd.apache.org/docs/2.4/ja/ ここにあることは間違いなく正式な情報ですので、 誰かに聞くより正確な情報です。
その他の回答 (1)
- asciiz
- ベストアンサー率70% (6803/9674)
htmlを保持するフォルダはvar/www2/html などに置くとして、その複数の構成を、切り替え利用するのですか? 同時に利用したいのですか? 切り替え利用するならば、ドキュメントルート指定を変更してhttpdを再起動するだけです。 あるいは、httpdを停止させ、 /var/www/html → var/www1/html にリネーム(mv) /var/www2/html → var/www/html にリネーム と入れ替えてしまい、httpdを起動すればそちらに切り替えられます。 —— 同時利用したいなら、複数のhttpdプロセスを起動しないといけません。 「複数のhttpdプロセス起動させる」で検索するといくつかの方法が見つかります。 自分の環境にあった方法、またはやりたい方法で、適切に設定しなければ、動きません。 例)同じApacheをコピーして複数動作させる。 https://neil-sk.hatenadiary.org/entry/20110602/1307024490
お礼
ご回答誠にありがとうございます。 ご指定のURL、「複数のhttpdプロセス起動させる」で検索しました。 どれも難しくて大変だなと感じました。 https://okwave.jp/qa/q9758794.html では何か簡単そうにおっしゃっていました。 ボクはユーザーを変えて複数のhttpdを動作させようと考えていました。 良くない考えでしょうか? 甘えて申し訳ありません。 簡単に3桁のhttpdを動かすことはできないでしょうか? ご多忙中恐れ入ります。 ご回答のほど、宜しくお願い申し上げます。
お礼
ご回答誠にありがとうございます。 【>簡単に3桁のhttpdを動かすことはできないでしょうか? これは簡単です。 https://httpd.apache.org/docs/2.4/ja/mod/worker.html ここで、数を増やせばいいです。】 すみません。教えて下さい。 実際にはどうやって増やすのですか? ご多忙中恐れ入ります。 ご回答のほど、宜しくお願い申し上げます。