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

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

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

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

2291閲覧

ローカル環境での開発・運用ツールの導入や学習について

Smar

総合スコア40

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

4クリップ

投稿2016/01/05 03:10

こういった場所には初めての投稿になります。
至らない点など多いかと思いますが、よろしくお願い致します。

これまで、いずれかのレンタルサーバーを契約し、
ローカルの開発では、ほぼDreamweaverやサクラエディタのみを使用してマークアップ、
その後FTPにてサーバーへアップロード、というやり方を行っています。

これまで携わってきた業務上、チームとしての開発環境に拘る職場がなく、
上記のような古い(?)方法でやってきまして、現在もそれで困ることは正直ないのですが、
将来のことを考えて色々と学習したり、セミナーや勉強会のような場に行くと、
周囲は開発環境が最近の主流で当たり前という状況な為、危機感と焦りを感じております。

言語はHTML,CSS以外ではPHPやjavascriptがメインです。
もはや古いやり方なのかもですが、XAMPP環境での動作テストなどは何とかある程度わかるようになりましたが、
PHPに関しましても、ライブラリなどはよく使いますが、フレームワークなどは使用する機会が無かった為、
フレームワークやSmartyあたりの技術はやっと意味合いがわかって何となくは触れる程度にはなりました。

ですが、最近良く(?)目にする、Git,Jenkins,Chef,Docker,VirtualBox,vagrant ... などなどがとにかく多く、
どんどん増えていくので、何からどう手を付けてどんなふうに学習していけばいいのか…で非常に混乱しております。
調べるにあたってもこういったツール?などでの開発や開発ツールの総称がよくわからず…といった状態です。
そもそも重複するようなものも多いのかもしれませんが…。

そこで、既にご使用の方からすると、今頃?という技術なのかもしれませんが、
こういった状況からの開発環境の導入や学習をどのように行っていけば良いかのアドバイスを頂ければと思っております。
(そもそもの役割やこういった順番でやっていくと良い、など…)

非常にざっくりな質問で大変申し訳ございません。
よろしくお願い致します。

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

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

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

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

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

guest

回答2

0

ベストアンサー

業務でバックエンドエンジニアをしているものです。
PHPとフレームワークを使用してWEBサービスを開発したりしています。
業務だとバックエンドなのか、フロントエンドなのかで使用するツールは変わりますが、
上記のツールがどんなものなのかと云うのをざっくりですが回答します。

Git,Jenkins,Chef,Docker,VirtualBox,vagrant

Git
バージョン管理ツールです。あるファイルやフォルダの変更履歴をまとめて管理することができます。
例えば、WEBサイトを制作してる時に致命的なミスを犯した時に、Gitを使用していると一つ前のバージョンに戻すことによって、ミスを犯す前にソースが巻き戻ります。バックアップを取っておくと同じようなことはできますが、すごく楽に、バックアップを取れるイメージでしょうか。また、複数人で開発する時に、マージとか自動で行ってくれたり、ブランチというのを作成して、本番公開用のデータと影響しない場所で作業できたりします。

VirtualBox
仮想のマシンイメージを用意することにより、ローカルで仮想マシンを立ち上げることができます。
と言っても説明がわかりづらいと思うので、もう少しわかりやすく言うと、Windowsの中にLinuxをもう一つ立ち上げることができます。その中で作業を行ったり、データを上げてWEBサービスを起動したりできます。

vagrant
上記のVirtualBoxの発展版と考えるとわかりやすいです。
VirtualBoxを利用して、仮想のPCを作成するのを簡単にできるようにしてくれます。
設定ファイルを色々書くことによって、その設定の状態になったPCを仮想環境で起動できます。
また、その設定ファイルやマシンイメージ(OSのデータ本体)がインターネット上で共有されてる場所があるので、入手も楽チンです。

Docker
これも、仮想環境を立ち上げる系のツールです。特徴は、軽いということです。
VirtualBoxとは、仮想化の仕組みが異なるので、ほぼ同じ機能が使えるのに軽いです。ただ少し学習コストがかかります。また、他のチームメンバーに特定のやり方で固めたファイルを渡すことによって、同じ環境を再現するのも簡単です。

Chef
構成管理ツールです。サーバの設定を、Chefの設定ファイルに書き込んで実行すれば、その通りにChefがサーバに対して色々なことをしてくれます(業務で使ってないのであまり詳しくないです)
近いツールにansibleというものがあり、こちらの方が個人的には簡単だと思うのでオススメです。

Jenkins
これは業務で使っていないので詳細は微妙なのですが、Javaなどをビルドする時に、いろんな環境で統一された手順で自動ビルドしてくれたりするようです。各自が勝手にビルドしたりすると、ヒューマンエラーが起きやすかったりするというのが解消できそうです。

投稿2016/01/05 03:48

mazinai_tarazu

総合スコア27

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

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

Smar

2016/01/05 04:43

ご丁寧な解説ありがとうございます。 他サイトでは解説がどうしても硬い表現ばかりで、それがハードルを上げてしまっている一つでしたので、大変わかりやすく理解できました。 役割は全て別物なのですね…。 VirtualBoxをまずやってみて、発展で+vagrant、その後Docker、という感じで進み、必要性があればChefなど?他のツールを使ってみる、というのが良い?という印象を受けました。 ありがとうございました。
mazinai_tarazu

2016/01/05 06:05

そうですね。とりあえず概要が知りたいのかなと思ったので、軽めの説明にしました。 >VirtualBoxをまずやってみて、発展で+vagrant、その後Docker、という感じで進み、必要性があればChefなど?他のツールを使ってみる、というのが良い?という印象を受けました。 私も、概ねこの流れで勉強していきました。ただ、ansibleやchefは、必要性があればというよりも必須かなとも思います。AWS上のサーバにも設定を適応することができるので、ローカルで勉強したことも無駄にはならないです。
Smar

2016/01/06 00:32

ありがとうございます、まずはVirtualBoxから手を付けてみます。 ちょうどlinux初歩系の本で使うようなものがありましたのて…。 ansibleやchefも必須レベルなんですね…。 AWSもできれば使っていきたいので、ネクストステップとしてやってみたいと思います。 まさか一つずつ解説して頂けると思っておりませんでしたので、正直もっと列挙すれば良かったと思ったほどです(笑) 指揮者のロゴとイノシシ?のロゴも気になったりしてましたもので…。 (すいません、名称がどちらもわからず…) ありがとうございます。
mazinai_tarazu

2016/01/06 04:19

>指揮者のロゴとイノシシ?のロゴも気になったりしてましたもので…。 composerとgruntですかね? Grunt(イノシシ) これは、HTMLとかCSSとかJSを、結合して圧縮してファイルサイズを減らして、実際のサイトでの表示を高速にしたり、そういったいろんなタスクを実行できるソフトです。 いろんなプラグインがgithubとかで公開されてるので用途に応じてどれを使うか選んで実行するみたいな感じですかね?フロントでよく使います。 Composer(指揮者) これは、PHPのプラグインを、自動で取得してくれるやつです。テキストで、これとこれが欲しいみたいなことを書いておけば、実行した時に関連のプラグイン毎、必要なものを取得してくれますね。
Smar

2016/01/07 00:59

何度もコメント感謝です! まさにその2つでした…。特にgruntの方が後から何だったかを探せずで…。 わかりやすくありがとうございます。 これらもまた別用途でそれぞれやはり便利そうですね~。 こういうツールとりあえず全部集めて簡単にざっくり説明と簡素な使い方、みたいな本やサイトがあればな~といつも思うところです(自分で学習がてら作れば一番いいのでしょうけど…)。 情報サイトは色々とあるんですが、どうしても説明の硬さと○○の知識が前提的な書き方が多く、無知には難しいなぁと思っておりましたので大変助かりました。 ありがとうございます。
guest

0

自分の環境についてもそこまで目新しいものではないのですが
作業や仕事で使っている環境を簡単に説明します。

VirtualBox - 仮想環境
このソフトを使ってWindowsやMac上に仮想の環境を用意します。

CentOS - OS
Linuxのディストリビューションになります。
色々なディストリビューションがあるので、お好みで。
よくわからなければCentOS6系を使うと良いでしょう。
ネットで調べればたくさんの検索に出てくると思います。

VirtualBoxの使い方やCentOSのインストール方法については
調べればたくさん検索に出てきます。

まずは上記を使用してPC内に仮想の環境を作成してみるのがよいかもしれません。

CentOSに必要なソフト(PHPやApache、MySQL等)をインストールすることにより
LAMP環境といわれる環境が完成します。

この環境上にソースを置くことによってPHP等のシステムを実行することができます。

次にそのソースを管理するのがGitになります。

Git - バージョン管理システム
ソースの変更履歴や記録を追跡できます。
もちろん個人開発から複数人での開発でもソースの履歴や最新のソースを
共有できます。

Gitを使って最新のソースをGitサーバにpushすることにより、ソースを簡単に管理することができます。
もちろんGitの利点はそこだけではないのですが。

ソースはpullすることにより、サーバ上にpushされている最新のソース差分が取り込まれます。
ここで言うGitというのはLinuxにインストールするツールの事であり、Gitサーバとは
ソースをアップするサーバになります。

GitサーバにはGitHubやBitBucket等が有名なホスティングサービスになります。
もちろん作った環境にGitLabというインストール型のGitサーバを作り、管理してもよいかと思います。

簡単ではありますが、ここらへんを抑えておけばローカル環境での開発はできるかと思います。

質問にあるChefやVagrant、Docker、Jenkinsについて説明していくと長くなりそうなので
まずは上記のところから初めてみてはどうでしょうか。

因みにVagrantは仮想マシンの作成や環境設定を自動化してくれるツール
Chefはサーバの設定やソフトのインストールを自動化するツールになります。
もちろんこれらを使って仮想環境を作っていくのもいいとは思いますが
余裕があるのであればLinuxの設定部分から手動で作っていくのが良いかと思います。

投稿2016/01/05 03:49

deadcode

総合スコア216

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

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

Smar

2016/01/05 04:50

ご丁寧な解説ありがとうございます。 やはりまずはCentOSをメインに色々試してみる、がベターなのですね。 VirtualBoxを使用して、Apache,PHP,MySQLあたりをまず入れて動くところまで、を第一ステップでやってみたいと思います。 (AWSなどに恐怖を感じて手を出せずにいるのもこのあたりですので…) ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問