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

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

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

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

VirtualBox

VirtualBoxは、現在米オラクル社が開発している、 x86仮想化ソフトウェア・パッケージの一つです。

Vagrant

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

サーバ

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

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

Q&A

解決済

3回答

1311閲覧

ローカル開発環境とサーバーについて

honda_toru

総合スコア30

CentOS

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

VirtualBox

VirtualBoxは、現在米オラクル社が開発している、 x86仮想化ソフトウェア・パッケージの一つです。

Vagrant

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

サーバ

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

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

0グッド

0クリップ

投稿2019/05/24 05:55

とあるサイトを参照したところ
クライアント -> Webサーバー -> APサーバー -> DBサーバー
DBサーバー -> APサーバー -> Webサーバー -> クライアント
の一連の流れでアプリケーションが動いていると記載されていました

また
サーバーというのは専用のサーバーソフトが動いていて
特定の機能に特化したコンピューターという認識です

例として
Apache HTTP Serverというサーバーソフトを動かしているコンピューターなら
Webサーバーソフト

Apacheというサーバーソフトを動かしているコンピューターなら
アプリケーションサーバー

MySQLというサーバーソフトを動かしているコンピューターなら
DBサーバー

そして仮想サーバーは
一つのコンピューターの領域をを分けてDBサーバーやアプリケーションサーバーなどの複数のサーバーを
まとめていると解釈しました

先ずここまでの解釈に誤りがあればご指摘ください。

私は現在ローカル開発環境を構築してアプリ開発を試みていますが
先ずは、VirtualBoxをダウンロードしました。
これは、PCには1つしかOSを導入できず。サーバー系のOS(例CentOS)での動作確認が必要なため
仮想マシンにサーバー系のOSに導入するためだと某サイトに記載されていました。
次に簡易的にVirtualBoxを操作するVagrantをインストールした後にlaravelでの開発を始めたのですが
ローカル開発環境で、Webサーバー,APサーバー,DBサーバーを構築した覚えがないのに
アプリが動く仕組みが理解できません
また、サーバーが構築してある場合、私の仮想マシン内に構築されているのでしょうか?

どなたかご教示いただけないでしょうか?

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2019/05/24 06:00

Vagrant+VirtualBoxでのデバッグ環境に関する説明は、どこの情報を参考にしているか、本文中に追記してください。
honda_toru

2019/05/24 06:08

ローカル開発環境構築に関してはドットインストールを参照しております デバック環境という言葉意図が間違っていましたら申し訳ありません。
guest

回答3

0

ベストアンサー

Oracle VirtualBoxっていうのは、パソコン上で別のOSを仮想PC上で動かすソフトですね。
これ一つで、例えばCentOSだのUbuntuだのLinuxディストロのインストールDVDイメージファイルを用意して、
インストールして立ち上げることが出来ます。
でも、CentOSならCentOSの初期設定や必須ソフトの構築など、
細かなこと全部自分で行う必要が生じて面倒だし時間もかかります。

そこで、Vagrantです。
VagrantはVirtualBoxなどの仮想OSソフトを制御して、
どういうOSを入れるのか、そのOS上にどういうソフトをインストールして動かすのか、
というサーバー構築に関わる情報をvagrantfileというものに記述し、
それに従ってOSのインストールイメージファイルのダウンロードやインストールから
サーバーソフト類のインストールと初期構築を自動化するものです。

どういうコマンドを叩けばどうなるのか、っていうのが
Vagrant+VirtualBoxでのデバッグ環境構築に関する記事の中で解説されているので、
自分で打ったコマンドによって開発環境(デバッグ環境)ができたかどうかがわかります。

しかし、パソコンに入っているウイルス対策ソフト(ファイアウォール)によっては
思い通りにすんなり立ち上がらないこともあるので、
コマンドを叩いたからと言って狙った通りにサーバーが稼働しているかどうかはわかりません。
動作確認を行って不測の事態の対策を取る必要があります。
ずっこけているとコンソールすら開けないとかsshログインできないとかありえます。

--

サーバーに関して。
必要な機能が動き十分速く処理できさえすれば、
すべて一台で賄うことも可能です。
webサーバー役、サーバー側言語処理役、データベースサーバー役、メディアサーバー役などなど。
しかし、システムへのアクセス量が多いとか、短時間で大量のデータ処理が必要になるなど、
一台で賄うには高性能なサーバーが必要になったりします。
一つのサーバーアクセスを受け取り、処理して、結果を返すのに2秒かかるとしたばあい、
10件で20秒、100件で200秒、1000件で、10000件で、と順調にリニアに増えることもあれば、
予測に反して余計に時間がかかることもあります。
処理の負担が、webアクセスにかかるのか、サーバー側言語処理にかかるのか、
データベースへのクエリーにかかるのかなどを見極めて、
webアクセスを分散させるためにインターネットとwebサーバーとの間にロードバランサーをおいて
webサーバーを複数台にし、一つのデータベースサーバーにアクセスする構成に拡大したり、
あるいはデータベースを多重化することもあります。
一台で担う役が少なくなれば、極端に高性能なハードウェアでなくても動きやすくなります。

ローカルでの開発においては、
全て一台で賄うことが多いですが、
複数のサーバーを駆使する大規模開発になるとローカルでも複数台を置くこともあります。

投稿2019/05/24 06:06

編集2019/05/24 07:06
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

honda_toru

2019/05/24 06:16

VagrantとVirtualBoxについてご教示ありがとうございました。 もしサーバーに関する内容もご存知でしたらご教示お願い申し上げます。
退会済みユーザー

退会済みユーザー

2019/05/24 06:57

それは、回答内にも書きましたが、vagrantfileの中身次第です。 https://www.vagrantup.com/docs/vagrantfile/ そして、 http://www.vagrantbox.es/ をみると、どういう構成のサーバーが立ち上がるかを示したものが掲載されていて、 簡単にサーバー環境(開発環境、デバッグ環境)が立ち上がります。 なので、 じぶんでどこまでやったかを示しつつ、 vagrantfileの内容も示してくれれば、 読める人が解説してくれるはずです。
guest

0

仮想化技術は物理サーバのリソース(CPU、メモリ、ディスク、ネットワーク)を効率良く使用することを目的とし、OS単位、ソフトウェア単位で分割します。
従って、「仮想化サーバーとは役割毎にサーバを分けて、1サーバに纏めることだ」という理解には違和感を感じます。

OS、ソフトウェア分割にはそれなりのメリットがあり、これを見込むのであれば分割もありですが、
開発を目的としているのであれば、1仮想サーバに全ての役割を収めるで問題ないかと。

ローカル開発環境で、Webサーバー,APサーバー,DBサーバーを構築した覚えがないのに

アプリが動く仕組みが理解できません

開発環境をどのように構築したか?ではないでしょうか?
例えばHomesteadを使用すれば、一式の環境構築ができるようです。

投稿2019/05/24 06:49

over

総合スコア4309

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

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

honda_toru

2019/05/24 07:43

適切に回答いただきありがとうございます。 とても参考になりました。
guest

0

サーバー1台で全部動かしてもいいと理解すればいい。

PHPの場合アプリサーバーは意識しないのでWebサーバー+DB。

Laravelの前にレンタルサーバー辺りでPHPの基礎を勉強したほうがいい。
WebサーバーでPHPが動く仕組みなんてことはLaravel前に知ってて当然の前提なので
知らない段階で使うのは無理。
ぐぐって見つけた情報をコピペして真似しかできない。

投稿2019/05/24 06:22

kawax

総合スコア10377

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

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

maisumakun

2019/05/24 06:31

php-fpmとしてAPサーバを立てた構成も、(特にnginxには直接PHPを組み込めないこともあって)ちょくちょく取られるかと思います。
honda_toru

2019/05/24 06:39

申し訳ございません PHPの基礎を学習するためにドットインストールというサイトのレッスンと PHPの絵本という書籍を学習したのですがサーバー関係の知識を得ることができませんでした レンタルサーバーを借りるだけでサーバーに関する知識が身につくのでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問