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

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

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

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

PHP

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

CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

Q&A

解決済

4回答

4759閲覧

PHP、CakePHP3について、デプロイに関する情報が少ない

minarai_SE

総合スコア29

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

PHP

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

CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

1グッド

2クリップ

投稿2017/07/11 03:13

質問ではなく、アドバイスを乞うているだけのように思われるかもしれませんが。
私は、PHPとCakePHP3を勉強しています。
ごく単純なものですが、PHPでも、CakePHPでも、それぞれ一通りのものを作成し、レンタルサーバーにアップして実際のインターネット上で動作させることができた、というレベルです。

勉強開始当初から、疑問に思っていることがあり、質問させてください。

Q1)入門レベルから中級レベルのどの解説書にも、コードの書き方とxamppのhtdocsにおいたローカル環境での動作確認までしか載っておらず、デプロイのことがぜんぜん解説されていません。これはなぜなんでしょうか?
また、デプロイ(インターネットのサーバーに上げること)自体は、どうやって勉強したらいいのでしょうか?解説書や解説サイトでよいものはありますか?
あるいは、ただサーバーという記憶領域にフォルダまるごとコピーするだけなんだから、勉強というほどのことではないという認識でよいのでしょうか(少なくとも、PHPのようなレンタルサーバーにあらかじめ実行環境が整っているようなメジャーな言語なら)?

Q2)私は、大昔のホームページ作りブームの頃に有名だったらしい、「FFFTP」というソフトを使って、レンタルサーバーにデプロイしました。私の作ったものが単純な構造だからか、思ったように動いてくれています。しかし、FFFTPというソフトは、素人の私から見ても、単純に「手元にあるファイル群をサーバーの指定した場所にコピーする」だけの単純なソフトに見えます。よく知りませんが、サーバーの設定やらをどうこうするという機能はないように見えます。私は、今後、より複雑なものを開発したり、仕事にできたらということも考えています。それでも「FFFTPはプロのwebアプリ開発現場においても立派なデプロイソフトとして通用するものだ」と考えていてよいでしょうか?

以上2点、よろしくお願いします。

KiyoshiMotoki👍を押しています

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

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

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

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

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

guest

回答4

0

ベストアンサー

Q1)入門レベルから中級レベルのどの解説書にも、コードの書き方とxamppのhtdocsにおいたローカル環境での動作確認までしか載っておらず、デプロイのことがぜんぜん解説されていません。これはなぜなんでしょうか?

「入門レベルから中級レベルのどの解説書」はプログラミングそのものの学習にターゲットを絞っているからだと思います。
インターネットに公開(デプロイ)するにあたっては、無限に近い選択肢があり、すべてをカバーする様な形で汎用的に記述するのは難しいです。

また、デプロイ(インターネットのサーバーに上げること)自体は、どうやって勉強したらいいのでしょうか?解説書や解説サイトでよいものはありますか?

具体的な書籍やwebサイトは選択するOSやディストリビューションによって変わってくるかと思いますが、
まずはLAN内や仮想環境でLinuxサーバを立ててみて、webサーバの基本的な挙動から把握していくのが良いかと思います。
XAMPPはプログラミング学習にはとても優れた環境ですが、デプロイを考えた場合はあまり学習になりません。(学習段階でwindowsサーバでインターネットに公開する環境を使うことはあまり無いため)

あるいは、ただサーバーという記憶領域にフォルダまるごとコピーするだけなんだから、勉強というほどのことではないという認識でよいのでしょうか(少なくとも、PHPのようなレンタルサーバーにあらかじめ実行環境が整っているようなメジャーな言語なら)?

サーバへアップロードして使えるという環境を使っている間はそれで問題無いと思います。

おそらく、共有レンタルサーバを使用されているものと思いますが、
共有レンタルサーバは出来ることが制限される代わりにサーバやOSそのものの管理はサービス管理会社の責任で行ってくれるというサービスですので、機能的に事足りる場合は優れた選択肢です。

共有レンタルサーバでは事足らないという状況になったらVPSなりクラウド環境なりでサーバやOSそのものの設定を学習されると良いかと思います。

Q2)私は、大昔のホームページ作りブームの頃に有名だったらしい、「FFFTP」というソフトを使って、レンタルサーバーにデプロイしました。私の作ったものが単純な構造だからか、思ったように動いてくれています。しかし、FFFTPというソフトは、素人の私から見ても、単純に「手元にあるファイル群をサーバーの指定した場所にコピーする」だけの単純なソフトに見えます。よく知りませんが、サーバーの設定やらをどうこうするという機能はないように見えます。私は、今後、より複雑なものを開発したり、仕事にできたらということも考えています。それでも「FFFTPはプロのwebアプリ開発現場においても立派なデプロイソフトとして通用するものだ」と考えていてよいでしょうか?

FFFTPはご認識の通り、ファイルをアップロード/ダウンロードするためのソフト(FTPクライアント)です。
仕事にする場合でも、FTPだけで成り立つ場合もありますし、成り立たない場合もあります。
個人的な考えとしては、仕事としてサービスのデプロイまでするのであれば、FTPだけでは結構厳しいかなと思います。

サーバの設定や管理を行う場合、SSHでログインして設定ファイルを書き換えたりOSやデーモンの再起動を行うということをしますので、
「SSHでログインできる環境」を用意し、SSHクライアント(windowsならteratermやputty等)でログインするという一連の流れを学習されるのが良いかと思います。
(これも前述のLinuxサーバそのものの学習で必ず出てくる部分です)

投稿2017/07/11 04:43

tanat

総合スコア18713

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

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

minarai_SE

2017/07/16 08:33

とても勉強になりました。これからの課題が見えた気がします。ありがとうございました。
holic

2017/07/26 03:10

minarai_SEさんと同じことを考えておりました、(xampp環境で作ったcakephp3をレンタルサーバーに上げるのにここ最近四苦八苦してましたので)、minarai_SEさん質問ありがとうございます。 tanatさん的確な回答勉強になりました。
tanat

2017/07/26 07:04

> ho_riさん お役に立てたのなら何よりです。
guest

0

1.デプロイの学習について
そのまま「デプロイ」で検索してみる等でいくらでも情報出てくると思います。
最近では「CI」というコトバと、そのツール群が流行っていますが、ビルドする必要のないPHPでは立派すぎるモノの事が多いです。
が、いずれにせよデプロイ専用の目的で作られたモノばかりですので、学ぶことは多いと思います。

2.FFFTPはデプロイツールか?
これについては後述します。

私は、最近の業務ではGitを使っています。
本番環境にmasterリポジトリをCloneしておき、本番反映の際にはoriginのmasterをPullしてくる形でデプロイ(と言うか、ファイルの設置)をしています。

プロジェクトによっては、origin/masterにPushされたらHookでデプロイコマンドを投げるようにしているものもあります。

また、GitLabのCI機能を使っているモノもあります。

Gitを絡ませたデプロイは、やらかした(誤ったデプロイを行った)場合でも復旧が容易で確実に行える利点があり、複数人での開発案件で逐次アップデートを行うサービスの場合は特に有効な手段だと感じています。

Jenkins等使う方法もありますし、その他色々やり方はあると思います。
(それこそFFFTPで直接アップロードする方法も)

ただ、私が考える「デプロイ」は、ある程度の人的ミスが排除できる仕組みが必要だと思っています。
仮にFFFTPで直接アップロードする場合は、以下の手順が必ず必要になります。
1.現行本番環境の、更新予定ファイルのバックアップの保存
2.本番環境へアップロードするファイル一式について、それぞれのファイルが間違いなく更新対象のファイルである事の確認(古いファイルを上げようとしていないか?足りないファイルはないか?余計なファイルを含めていないか?)

これらは手順書にまとめるなどして啓蒙活動すれば、勿論人的ミスの軽減にはなるかと思います。
が、確実ではなく、ミスした場合の復旧等はとても面倒な事になると予想されます。
そういった意味では、FFFTPなどで直接手動でアップロードする手法は「ベストな」方法ではないと考えます。

ただし、FFFTPでファイルをドラッグ&ドロップするだけ、という単純な手法は、デザイナーさん等、サーバでコマンドを発行したりWEB UIをいじったりして行うやり方に抵抗がある方にも受け入れやすい利点はあります。
そういった意味で、「場合によっては教育コスト等考えると、ベターな方法である」という結論になる場合もあると思います。

取り敢えず学習段階であるならば、色々手を付けてみてはいかがでしょう。
個人的にはGitLabが使いやすくて好きです。(デプロイ目的と言うよりは、バージョン管理的な面が大きいですが)

投稿2017/07/11 04:40

kunai

総合スコア5405

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

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

minarai_SE

2017/07/16 08:36

実際に業務として扱っている人の持っているイメージを教えていただきとてもためになりました。ありがとうございました。
guest

0

すでに解決済みですが、既存の回答にはあがっていない自分が知っている参考文献をあげておきます
なお、デプロイを含めて構成管理をどこまでやるかはプロジェクトの規模やデプロイの頻度によって変わってくるので一概にはいえないと思いますが、結構奥が深い分野なので、勉強して損はないと思います

情報量はそこまで多くないですが、もれなく関連するキーワードが載っていますので、気になった部分から深掘りしていくとよいかと。

  • 書籍:CakePHPで学ぶ継続的インテグレーション

自分が知る限りCakePHPでデプロイや構成管理について扱っている唯一の書籍だと思います。CakePHP2の頃の書籍ですが、CakePHP3にも十分応用できるかと。

投稿2017/07/20 22:47

popobot

総合スコア6586

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

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

minarai_SE

2017/07/21 12:01

ありがとうございます!!
guest

0

PHP のフレームワークだとデプロイはあまり考えることはないものが多いですね。
そもそも CakePHP は手軽に使えることを目指して、「適切な場所と命名規則で配置してあれば設定ファイル要らずで動作する」(設定するより規約に従って配置せよ)ですから。

逆に言えば、設定ファイルをいじらなければならないような状況なら、本来はインストーラーが必要になるのです。
※ファイルを配置して、どこそこの設定ファイルを正しく修正して……なんてのを手作業に任せるのはクレバーではなく、自動的にやれるようにするべき、という考え方

単にファイルを配置することをデプロイといっていいのか、という認識の問題であって、FFFTP はデプロイツールであるともないとも言えます。
※PHP の他にも、静的な Web サーバのコンテンツをアップするためにも使われますから、Web 開発者で FFFTP (ないし他の FTP クライアントソフト)を使ったことがない人というのはまずいません

投稿2017/07/11 03:40

tacsheaven

総合スコア13703

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

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

minarai_SE

2017/07/16 08:34

フレームワークというもののイメージが少し深まりました。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問