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

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

ただいまの
回答率

88.93%

開発環境の設定って、どこまでするの?

解決済

回答 3

投稿

  • 評価
  • クリップ 0
  • VIEW 1,569

PartyKids

score 65

先日から、dokerを使って開発環境等に挑戦している者です。
開発環境を、どこまで設定すればいいのかがよく分からないため、教えてください。

疑問:サーバーosは開発環境に入れないの?

「rails + unicorn + nginx」などを検索すれば、設定方法や必要性等がたくさんヒットするが、webサーバー/アプリケーションサーバー/モジュールの組み合わせで、「centos + rails + unicorn + nginx」等のサーバーosを含んだ記事があまりヒットしません。また、ヒットしても開発環境ではなく、実行環境と書かれている事が多いため、開発段階ではサーバーosは必要性ないのですか?

今後

今は全体の流れを把握するため浅く広く勉強していますが、将来「vps rails5 puma nginx postgresql」 で自分の勉強の成果を形にできれば良いなと考えております。
その場合、どのような開発環境が一般的か教えてください。よろしくお願いいたします。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 3

checkベストアンサー

0

回答が付かないようなので、外してるかもですが
>サーバーosは必要性ないのですか?
必要かそうでないかは「あなたがどこまでテストをするか?」によると思います。
DBアクセスなどかなりしんどい^^;テストならサーバも視点にした方がいいと思います。
私の場合は、Windows上である程度(ブラウザでの表示など簡単なもの)テストをした上で、自宅サーバ(freebsd+lighttpd+PHP+Firebird)に上げて再確認を行うようにしています。
WEBサーバ程度ならGUIは要らないので中古のパソコンにLinuxなりbsdを入れてサーバ構築した方が使い勝手はいいです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/04/18 07:41

    おはようございます!
    返信遅くなり、申し訳ございませんでした。
    回答ありがとうございます!

    >>必要かそうでないかは「あなたがどこまでテストをするか?」によると思います。
    テストするのは、実行環境での不具合を少なくさせる事を目的ですか?

    開発環境で仮想化を使うのは、「開発環境では上手くいっていたのに実行環境では上手くいかない事を未然に防ぐため & 複数の人との開発を円滑にするため」っと書かれていました。私は、個人で勉強しているので、後者は関係ないのですが、前者のためであるならば、開発(仮想)環境おいてもサーバーosを入れて、本番環境に近づけて開発するのではないのかな?っと思い質問させて頂きました。

    私の考え自体が間違っている、もしくは、勉強不足で前提知識が抜けている事がありますが、よろしくお願いいたします。

    キャンセル

  • 2017/04/18 09:23 編集

    まず、私は仮想環境については知識不足です。(Freebsdを20年近く使っているので・・・ぼろでもなんでもサーバーを必ず作っています)作業用にはwindowsですがmacも使います。>実行環境での不具合を少なくさせる事を目的ですか?・・・まったくその通りです。すでに現役を退いていますので、個人的な興味で環境構築しています。なので私の方が的外れなことを言っているのかもしれませんが・・・で、本題ですが、例えばどこかのレンタルサーバ(さくらサーバとか)を借りてコンテンツをアップロードし公開するとします。その場合、サーバの環境(OS、使用できるDB,言語等)を確認するのですが、できれば同じ(ような)環境を自前で持っていれば公開する前に一通りテストができると思います。勉強のためであれば、どこかの「サーバで公開する」事を想定してどのような知識、環境が必要か考えてみた方がいいかもしれません。

    キャンセル

  • 2017/04/19 02:15

    返信ありがとうございます!
    >私の方が的外れなことを言っているのかもしれませんが・・・
    とんでもないです!右も左も分からない私の質問に答えて頂きありがとうございます!

    >サーバの環境(OS、使用できるDB,言語等)を確認する
    サーバーosの勉強は、そこからスタートするんですね。web作成手順を一通り勉強する事に集中してしまい、レンタルサーバーまで頭が回らなかったです。

    >「サーバで公開する」事を想定してどのような知識、環境が必要か考えてみた方がいいかもしれません。
    勉強になりました!もう少し視野を広げて精進します。

    キャンセル

0

私の場合、本番環境としてVPS(CentOS)を使っていて、
普段はWindowsを使っているため、開発環境としてVirtualBoxでCentOSの仮想マシンを作ってその上で作業しています。

今は仮想化が簡単にできるので、開発環境を本番サーバに合わている人は多いと考えています(集計を取ったわけではありませんが)。
開発環境という言葉は、人によって定義が異なるので、言葉の定義を確認しておかないと話が通じなくなります。

私の場合、ゲストOS(仮想マシン上のOS。実際にrailsを実行する環境)を開発環境と言っています。
ホストOS(仮想マシンを動かすOS。主にWindowsやMac)については、特に言及しません。
MacでもWindowsでも仮想マシン上で作業するのであれば、関係ないためです。

質問への回答ですが、私の場合は開発環境にサーバOSは含めます。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/04/19 02:33

    先日はありがとうございました!そして、今回もありがとうございます!

    >開発環境という言葉は、人によって定義が異なるので、言葉の定義を確認しておかないと話が通じなくなります。
    勉強不足で申し訳ございません。
    自分の質問が上手く表現出来ているのか分からないので、開発環境の定義を調べた後、改めて返信いたします。

    よろしくお願いいたします!

    キャンセル

  • 2017/04/19 02:44

    > 実行環境と書かれている事が多いため、開発段階ではサーバーosは必要性ないのですか?

    という事でしたので、実行環境と開発環境という言葉にとまどっているのかなと思いました。
    開発する環境ですから、実行環境も開発環境に含まれるという解釈もできます。

    開発環境の定義ですが、仮想マシンを使う場合、私は仮想マシン上のOSのみを開発環境と呼んでいますが、人によっては、仮想マシンOS+それを実行しているOS(WindowsやMac)も含めて開発環境と呼ぶ場合も当然あるでしょう。
    という程度のお話ですので、深く考えなくても良いですよ。

    プログラミング関連の用語は、明確なようでいて、
    その定義と解釈はどうしても人によってずれてしまいます。
    私自身も正しく一般的な理解が出来ているとは言えない面もあると思います。

    従って、誰かと話す時はこの言葉の定義は自分としてはこう思っていますよと自分なりの定義を先に提示すると、すれ違いが起きにくいと感じています。

    キャンセル

  • 2017/04/20 07:58

    おはようございます!

    >開発する環境ですから、実行環境も開発環境に含まれるという解釈もできます。
    mingosさんのおっしゃる通りです。何も考えずに「開発環境」と呪文のように唱えてました笑

    >プログラミング関連の用語は、明確なようでいて、その定義と解釈はどうしても人によってずれてしまいます。
    私の勉強不足もありますが、そうなんですよね。固有名詞で検索すれば、詳細な情報は得られますが、どうしても設定方法や問題解決方法が多くヒットしてしまい、包括的な概念がぬけてしまうんです。包括的な概念は、書籍でカバーしてるつもりなんですが、「言葉はわかるけど、だから、なんで必要やねん!」っと想定利用シーンが思いつかないのが、今の問題です。。。

    >従って、誰かと話す時はこの言葉の定義は自分としてはこう思っていますよと自分なりの定義を先に提示すると、すれ違いが起きにくいと感じています。
    大変勉強になります!自分の知っている知識&言葉で、なんとか相手に伝えようと必死になりすぎて、ご指摘の部分が抜けていました。これから精進して参ります!

    今後ともよろしくお願いいたします!

    キャンセル

0

システム開発を行う場合は、サーバーOSや使用するミドルウェア、言語のバージョンなどは、
本番環境と同じものを用意するべきと思います。

開発段階では問題なく動いていたが、本番移行後に動かなくなった。
などの想定外の事故もある程度未然に防ぐことが出来ると思います。

現在は仮想環境がDockerなどを使って簡単に構築出来ます。
仮想環境の場合、一度開発環境を作ってしまえば、何度でも新しく作り直す事もできますし、
いらなくなったら破棄することもできます。
また、開発環境から本番環境へデプロイする際も同じバージョンで揃えておけば、
コマンド一発でデプロイが出来たりもする方法もあったりするので、
本番と開発で同じ環境を作っておくことをおすすめいたします。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/04/20 08:05

    おはようございます!

    >サーバーOSや使用するミドルウェア、言語のバージョンなどは、 本番環境と同じものを用意するべき
    ありがとうございます!未経験者には、経験者の言葉が何よりの道しるべなんです。

    >開発環境から本番環境へデプロイする際も同じバージョンで揃えておけば、 コマンド一発でデプロイが出来たりもする方法もあったりする
    capistranoですか?

    よろしくお願いいたします!

    キャンセル

  • 2017/04/21 02:30

    自分はRailsは全然わからないのですが、「capistrano」はそういったことを行ってくれるツールのようですね。
    http://kray.jp/blog/deploy-docker-with-capistrano/

    dockerコンテナで開発環境を作っておけば、
    本番にもデプロイが出来るみたいです。

    キャンセル

  • 2017/04/21 12:08

    返信ありがとうございます!

    >dockerコンテナで開発環境を作っておけば、本番にもデプロイが出来るみたいです
    その様な事が出来る事を念頭に置いて、精進して参ります!
    今後ともよろしくお願い致します!

    回答して頂き、誠にありがとうございました!

    キャンセル

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

  • ただいまの回答率 88.93%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る