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

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

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

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Webサーバー

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

PHP

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

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

5回答

3571閲覧

Webサービス開発環境やデプロイなど、一般に推奨されていない開発手法をとっていると感じているので改善したい

teratail_begin

総合スコア72

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Webサーバー

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

PHP

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

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

3グッド

7クリップ

投稿2021/06/18 15:05

編集2021/06/20 04:08

PHPとMySQLでWebサービスなどを開発する際の開発環境やデプロイの方法について、みなさんはどういう方法が現状ベストだと思われますか?

前提

私はもともと技術レベルが低く意識も低いうえに、20年近く前の知識でストップしています。
なので最新の状況についてはチンプンカンプンです。
Dockerとかコンテナとか聞いたことはありますが、難しすぎて全く理解できていません。

これまで組織に所属したり他人と一緒に開発などしたことがなく、ずっと個人一人でやってきたため、誰からも開発ノウハウ等を教わる機会がなく独学でここまで来てしまいました。個人運営サービスですが、もうちょっとまともな開発手法に改めようと思い、質問いたしました。

私の開発のやり方

私が初心者として勉強していた頃は、「WindowsにXAMPPをインストールしてローカルで開発しろ」という意見をよく見ました。無限ループとか発生すると怖いから、と。

最初はその通りにやってみたのですが、ローカル環境と本番環境(レンタルサーバでのLAMP)とではいろいろ異なる(PHPのバージョンとかWindowsとLinuxのディレクトリ構造の違いとか実際のドメインを使えるかどうか等々)ので結局余計な手間や作業が増えて面倒になり、やめました。

で、ローカルのエディタ等で書いたPHPのファイルをいきなり本番サーバ上にアップする方法に変えました。
つまり本番環境で直接開発・テスト・デバッグするわけです。

すでに運用を開始しているサービスでさえ、修正時や新機能実装時にも本番サーバでそのままデバッグしてます(なるべく影響が少なそうな深夜帯などにやるようにはしてますが)。
企業の方から見ればありえないことかと思いますが、個人運営の無料webサービスなので効率優先です。
ローカルとサーバとでいろいろ設定を書き換える必要がなくなり、ものすごく楽になりました。

私のデプロイ手法

デプロイ手法は上述の通り、FFFTPやWinSCPを使って手動で直接サーバにアップする原始的なやり方です。

自分の中ではそこそこ大規模なサービスになるとPHPのファイル数も100以上になったりしますが、全て自分で開発しているので全体を把握できているからこのようなやり方でも特に問題ありません。

でも他人も含めたチームとかでやるなら、これはよくないよなぁとも思います。

私のバージョン管理

Gitも有名なので勉強しようと思ったことは何度もありますが、そのたびに難解すぎて挫折しています。操作方法も難しいし、そもそもの概念自体がよく理解できない。

で、現状、Dropboxを使ってソースコードのバージョン管理&バックアップとしています。
ファイルを保存するそばから自動で勝手にバックアップされていくし、有料版なので過去のバージョンも全て履歴管理されており、特に困っておりません。

ですが、それでもチームではない個人だとしても、やっぱりGitを使ったほうがいいのでしょうか?

質問

まとめますと、質問したいのは、皆さんは

・開発環境や開発手法は具体的にどんな感じにしてますか?

・デプロイ手法等は具体的にどのようしていますか?

ということです。

私のレベルが低すぎて唖然とされた方も多いかと思いますが、皆さんのベストプラクティスを教えていただけましたら幸いです。

一般に推奨されていない開発手法をとっていることは大問題だと考えておりますので、皆さんの意見を参考にこれを改善するのが課題です。

※前提として、ローカルマシンはWindows10で、本番環境は普通のレンタルサーバ(LAMP)の場合です。

追記

前提として「普通のレンタルサーバ」と記載した通りなのですが、Dockerについて調べてみると、そもそも普通のレンタルサーバでは無理そうですね…。VPSなどが必要っぽい。そうなると、VPS自体の管理や各種ミドルウェアの保守などまた新たな手間が膨大に増えて行く感じがして、結局今までのレガシー体制のほうがよっぽど早くて楽で便利だったという本末転倒な結果になりそうな…。

ranerane0101, 68user👍を押しています

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

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

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

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

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

teratail_begin

2021/06/18 15:35

問題・課題は含まれていますよ。 レガシーというか、一般に推奨されていない開発手法をとっている自分は改善したいという課題を抱えているので、このような質問をしております。
m.ts10806

2021/06/18 19:00

>漠然とした興味から票を募るような質問 にあたります。 要件やプロジェクト次第なので「ベスト」などないのです。
kaina

2021/06/18 22:12

タイトルが少し宜しくないように感じました。 「最適解」と書いてしまうと状況によるので最適解等無いとなってしまいますので、 一般に推奨されていない開発手法をとっていると感じているので改善したい というようなタイトルに修正してはいかがでしょうか?
m.ts10806

2021/06/19 01:25

大前提として、「実務の実際は外には出ない」のであしからず。
teratail_begin

2021/06/19 02:15

m.ts10806は二度と書き込むな。毎回毎回、つまらない揚げ足取りや独善的でうるさい説教、価値観の押し付けばかり。teratailを荒らす、害悪でしかない存在。 気に入らない質問なら無視すればいいでしょ。多くの初心者たちがあんたに辟易している。あんたがいくら騒ごうが喚こうが質問者たちは変わらないよ。つまり、あんたの押し付け説教は無意味どころか逆効果。むしろあんたが黙れば、teratailは平和で穏やかな場になる。 内容がよくない質問であるならば、無視し続けていれば勝手に淘汰されていくのだから、お前ごときがいちいちしつこい説教かますな。二度と絡んでくんなよ。 ※もしもこのコメントを運営が削除したりするようなら、運営もm.ts10806と同じ穴の狢ということですね。
m.ts10806

2021/06/19 02:19

何に触れたのか分かりませんが、非常に独善的で個人的な感情で動かれているというのが良く分かりました。 指摘されるのが嫌ならはじめからきちんと「質問するときのヒント」など明示されたルールに則った投稿すればいいだけでは。毎度のように指摘されるような投稿するほうが圧倒的に悪い。
m.ts10806

2021/06/19 02:22 編集

>あんたがいくら騒ごうが喚こうが質問者たちは変わらないよ 狭い目線で考えてますね。あなたも少数の大声の一人です。 自分が先に暴言吐いといて「削除されたりするなら」なんて本当に独善的です。
teratail_begin

2021/06/19 02:29 編集

二度と書き込むなと言ってるだろ。ウザいんだよ。お前どこにいっても「空気読めない」と言われるだろ? みんなおとなしいから黙ってるけど、お前実は相当ウザがられてるよ。ネットでもリアルでも。 暴言? お前からの被害にあってる質問者たちからすればお前の発言のほうがよっぽど暴言だし迷惑だよ。独善性トップのお前が何を言ってるんだ。 そもそもルール自体がまともかどうかも考えず盲目的に従ってるうえに周りにそれを押し付けるウザさをよく考えろ。繰り返すが、気に入らない質問なら無視すりゃいいだろ。お前ごときが偉そうに騒がなくても勝手に淘汰されるよ。 お前が言うところの「ルールにのっとってない質問」のせいでお前に何か迷惑かけたか? お前の貯金が減ったりしたか? お前が無視すりゃいいんだよ。わざわざ時間と労力かけて説教コメントして、そのほうがお前にとって損だろう。 なお、今後お前が何をわめこうが、相手するだけ時間の無駄なの完全スルーするからよろしく。
m.ts10806

2021/06/19 02:41

>お前どこにいっても「空気読めない」と言われるだろ? いえ、言われません。 自分だけ暴言吐いておいて「コメントするな」という自分勝手な人が言う「空気が読めない」は本当に独善的な思考からしか生まれてません。 >そもそもルール自体がまともかどうかも考えず では運営に「俺が考えた最強のルール」でも提案すれば良いでしょう。 「質問するときのヒント」の元になっているメーリングリストの記事を書かれている方は直接的には知りませんが、書籍は幾つか読んだことがあります。 「赤の他人に限らずちゃんと解決したいなら必要だよね」と納得できる内容ばかりです。 新人研修でもよくすすめられる内容ですよ。 まず、読んでみては。読んですらない、もしくは読んでも理解できてないならそもそも同じ土俵に立ててません。 >気に入らない質問なら 大きく勘違いされてますが、「必要な情報が提示されてない」「丸投げである」「課題が明確でない」「コードが正しく提示されてない」など、明確に「質問としてなってない」「解決する気があるのかすら不明」が理由で、個人的に気に入らないと思うような質問はそうはないです。 個人攻撃に終始する人とか、話通じない人とかは別ですけどね。 「指摘する」=「ちゃんと投稿修正すれば解決する可能性が高まる」 と思ってのコメントが殆どです。 一部しか見てないから「気に入らないなら」なんて前提が出来上がるんじゃないでしょうか。 >お前ごときが偉そうに騒がなくても勝手に淘汰されるよ。 いきなり偉そうにぶちぎれてるあなたにそのままお返しします。 その理論からするとあなたは淘汰される対象になりますよ。 >お前が言うところの「ルールにのっとってない質問」のせいでお前に何か迷惑かけたか? >お前の貯金が減ったりしたか? お前が無視すりゃいいんだよ。わざわざ時間と労力かけて説教コメントして、そのほうがお前にとって損だろう。 前述の通り「追記修正依頼」に書くのは「気に入らない」が理由ではないのでその理論は成り立ちません。 単にそれが説教だマウントだと思うのなら、その人はプログラミングに向いてないんでしょう。それまでの人です。 >なお、今後お前が何をわめこうが 今このやり取りを赤の他人が見てどちらが「わめいている」と感じるでしょうか。 なお私はあなたに対し「あ、この人は何か別でストレスたまって喧嘩したいだけの人なんだな」と感じております。 なので「何に触れたのか分からない」と前にコメントしてます。
teratail_begin

2021/06/19 08:57

>kainaさん とても建設的で価値のあるアドバイスありがとうございます。 ご助言通り、タイトルを変更いたしました。
68user

2021/06/19 10:55

質問ページにはこうあります。 > 問題・課題が含まれていない質問 > teratailは困っている人の質問を解決するサービスです。そのため、漠然とした興味から票を募るような質問や、意見の主張をすることを目的とした投稿は推奨していません。 > 何か困っている理由があり、最適解を見つける為の知見を得たい場合は、その理由や何が知りたいのかを明確に記述してください。 > > ×悪い例:「オススメの開発環境構築方法を教えてください」 > ○良い例:「Dockerで開発環境を構築していて、ファイルの書き込みができません」 本質問は「漠然とした興味から」「票を募る」ものではないと思いますし、「何か困っている理由があり、最適解を見つける為の知見を得たい場合」に該当し、「その理由や何が知りたいのかを明確に記述」されているので私は問題ないと思うんですが、残念ながら「オススメの開発環境構築方法を教えてください」に近い質問なんですよね。 一方で私はこういう質問は好物なので積極的に回答します。意見が分かれるようなネタほど (私にとっては) おもしろい。また、「オススメの開発環境構築方法を教えてください」的な質問に回答してはいけないとは書かれていないので規約的に問題なし。 私の中の結論としては、  ・この注意書きが変  ・好意的に見るなら、議論で場が荒れることを防ぎたいのであろうけれども、   もうちょっとうまい書き方はないか (代案はないけど) です。以上、単なる感想でした。
hentaiman

2021/06/19 12:33

改善したい点はなんだかんだで改善しているようだし現状で困って無いならそのままで良いと思いますが gitやdockerが難しいというより、本気で導入しようとか利用するパターンが見えておらず実践に即して学習出来ないから難しく感じるだけでしょう 本番で直接作業するのやめとけば?というぐらいだけど、困って無いにしろまずい自覚はあるようだし特に他者が意見する事もなさそうです あえて意見するなら自身で挙げている技術を挫折してやめるなどと言わずに頑張って学習してから活用方法が分からなければ質問すれば?という感じ
teratail_begin

2021/06/19 13:09

>68userさん 建設的なご意見ありがとうございます。初心者を委縮させるようなつまらない規約や注意書き自体が変だと私は思います。だから過疎ってしまい、うるさい常連ばかりが跋扈する場になるのだろうな~と。田舎のスナックと同じで、これでは新規客がどんどん逃げていきますよ。 >hentaimanさん 「20年近くも特に困ってないのに、これから新たな学習コスト(時間・労力)をかけてでも、それを上回るほどのメリットが個人開発でも得られるのかな?」という根本的な疑問もあったうえでの質問です。皆さんはどうしてるのかな?と。
hentaiman

2021/06/19 13:45

> 個人開発でも得られるのかな? 有償サービスだとか収益源であるとか将来的に複数人で運営する可能性を考えているとかならメリットしかないと思いますけど、そうではなさそうなので学習コストがどれだけかかるかだけで考えるしかないですね 挫折するまでにどの程度勉強したんでしょう?2~3日ぐらいならもう一回やってみれば?と思うし、1~2ヵ月頑張ったけど分からなかったってんならやらなくて良いと思います
teratail_begin

2021/06/19 14:07

>hentaimanさん 無料サービスですが広告収益があります。あなたが想像しているレベルの低い額ではありません。でも今まで特に困ったことがない、だけど一般的な基準からは外れてるし…と悩んでます。
Zuishin

2021/06/19 14:09

> これでは新規客がどんどん逃げていきますよ。 こういうことを言うのはだいたいモンスターと相場は決まってるけど、金を払わないのにお客様風だけ吹かせるモンスターはどんどん逃げてもらって結構。
hentaiman

2021/06/19 14:15

> あなたが想像しているレベルの低い額で いや想像も何もしてませんけど・・・その手の情報何にも書かれてないし なので、こちらで勝手にメリットと感じられる場合の条件を勝手に提示したし、メリットでない場合も併せて提示してますよ?
teratail_begin

2021/06/19 14:17

「そうではなさそうなので」という文言に対応した返信のつもりでした。
68user

2021/06/19 14:20

一般的なエンジニア採用ではそういうやり方で20年やって来た人はあまり好まれませんが、今後20年なり30年なり、今のスタイルで食うのに困らないといえるのであればこのままでいいんじゃないですか。少なくとも LAMP 環境ならサービス売却も容易でしょう。 勉強する価値があるかという話なら、GitHub くらいはやってみてはと思います (git・subversion 等のソース管理ツールを使ったことがないなら特に)。
hentaiman

2021/06/19 14:22

ああ、それは収益に関する記載が無いので収入源では無さそうなので、という事です。だから条件次第でメリットが大きいですよと書きましたよね? 作業量の大小に関わらずまたその収益金額の大小に関わらず、独立して確保できている収益源なら維持出来る方が良いと思うのでgitはやった方が良いと思いますよ まあそれを学習するせいで極めて長期間収益が減るというのなら学習しないという選択もありだと思いますが
teratail_begin

2021/06/19 14:27

>68userさん そうですね、もう企業に雇ってもらうのは無理だと思いますが、なまじ食えてしまっているので危機感も薄く、ここまで来てしまいました。 githubは、dropboxでの単純なバージョン管理と比べて何が優れているのでしょうか? 勉強してみても、その複雑さによるデメリットのほうが気になってしまって…。
teratail_begin

2021/06/19 14:28

>hentaimanさん まあ今のサービスの多くはもうほとんど何も手を加えることもなく安定稼働で不労所得状態なので、時間だけはたっぷりあります。でも頭がもう劣化してきていて…。
hentaiman

2021/06/19 14:38

時間があるならgitだけはやった方がいいですね、一緒にgithubがgitlab使いましょう それと追記の部分は思い込みだと思うので実際にローカルで使って体験してみてはどうでしょう?WEBで遅い原因のほとんどんはネットワークIOです。チューニングミスっててディスクIOが原因と言う事もあるでしょうけど、それはdockerやフレームワークの利用が原因と言う事はないです gitとdockerどちらか新しく覚えるならgit一本でしょう
teratail_begin

2021/06/19 14:46 編集

>hentaimanさん ありがとうございます。とりあえずgit頑張ってみたいと思います! あと、たとえばヨドバシドットコムが異常に重いのはDB周りの設計が悪いような気がするのですが、あれもネットワークIOの問題なんですかね??
hentaiman

2021/06/19 15:00

かもしれませんね DBが遅いのかWEBアプリが重いのか画像の転送で帯域食ってんのか分かりませんけど ログイン画面のようなページの表示も重いならネットワークの問題でしょうね 裏でなにやってるのか分からないので予想しかできません 少し外れた質問なのでこの手の回答はこれのみとします
teratail_begin

2021/06/20 03:55

>hentaimanさん いろいろ教えていただいてありがとうございました。
guest

回答5

0

現状の運用に問題が無いのであれば特に何も変える必要は無いと思います。新しい技術も、現状困っていないのであれば、むりやり取り入れる必要はないと思います。

と、書きましたが、ここで質問しているということは現状を変えて行きたいということでしょうから、思いついたことを書いてみます。

開発環境

ローカル環境と本番環境とではいろいろ異なるので結局余計な手間や作業が増えて面倒になり、やめました。
ローカルのエディタ等で書いたPHPのファイルをいきなり本番サーバ上にアップする方法に変えました。
すでに運用を開始しているサービスでさえ、修正時や新機能実装時にも本番サーバでそのままデバッグしてます(なるべく影響が少なそうな深夜帯などにやるようにはしてますが)

※ 引用一部改変

本番環境と同じ環境をローカルに作ることで少なくとも深夜作業はしなくてもよくなりますね。昔であれば別のマシンを用意するしか無いという感じ(現在でも可能であれば望ましいですが)でしたが、現在であれば、

  • 仮想環境を作る(VirtualBoxとか)
  • コンテナを使う(Dockerとか)
  • WindowsであればWSLを使う

などの選択肢があります。これらは複製したり再構築したりするのが比較的簡単なので、本番環境と同じ環境を手軽に使うことができます。作業の効率は飛躍的に上がると思いますよ。少なくとも、深夜にこそこそやる必要は無くなると思います。

自分の現状の環境は、

  • 開発用のサーバを用意。 仮想化した複数台。
  • ローカルはWSL上で開発。(数年前までだVirtualBox利用)

という感じです。

文書管理

ソースや設計資料はgitで管理してます。 また、社内環境でgitlabを運用しています。
複数人で開発しているので、git/gitlabが無いと運用不能ですね。

一人で開発していて、作業がシーケンシャルに進むのであれば、gitのような管理は不要なのかもしれませんね。

ただ、自分は、趣味で一人で開発しているコードもgitで管理しています。慣れていると改変の履歴や情報が残っていないのはもったいなくて耐えられません。また、思いつきをブランチとして試しておいて未来に残しておくのもよくやっています。

デプロイ

基本的にはコードをtarで固めてsftpで転送して展開ですね。

ただし、サーバが複数あるのでansibleを利用しています。

投稿2021/06/19 15:58

TakaiY

総合スコア12666

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

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

teratail_begin

2021/06/20 03:57

貴重なご意見ありがとうございます。 Dockerとかを使った場合、ドメインの扱いってどうなるのでしょうか? 本番サーバで直接開発の場合、本番のURL構造(たとえば https://example.com/xxx/yyy?hoge=fuga みたいな)でアクセスして動作確認とか出来るわけですが、ローカルのコンテナの場合はどういうURLでのアクセスになるのでしょう?
TakaiY

2021/06/20 10:01

設定にもよりますが、いずれにしても、仮想環境そのものにIPアドレスが振られることになるので、IPそのものでのアクセスは可能です。 URLを使いたいということであればDNSが必要ですが、dnsmasqあたりと使えば手軽にDNSサーバを立てることもできます。
teratail_begin

2021/06/20 15:03

ありがとうございます。 となると、やはり本番環境と開発環境(Docker内)とでは、ドメインなどはソースコード内で決め打ちは出来ず、変数として持っておいて適宜切り替えないといけないわけですね。…ま、当たり前か笑
TakaiY

2021/06/21 14:16

やろうと思えば、ローカルの環境に商用と同じ名前空間を作ってしまうこともできますよ。 ですが、URLなどは、ソースに埋め込むのではなく、パラメータ化して設定ファイルなどで設定できるようにしておくと、テストのときなどに楽ですね。
teratail_begin

2021/06/22 00:46

ありがとうございます。参考になりました。
guest

0

個人ならサーバー上で直接エディタで編集しちゃうのもありかと思いますよ

投稿2021/06/19 12:02

a.com

総合スコア871

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

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

Zuishin

2021/06/19 12:16

「あり」というのはどういう意味で「あり」なんでしょうか? その方法にあるメリットとデメリットをリストアップし、比較してみてください。
a.com

2021/06/19 12:36

バージョン管理とか覚えなくて済むじゃないですか
Zuishin

2021/06/19 13:08

覚えた方がいいでしょう。
Zuishin

2021/06/19 13:10

「一般」が「ど素人」を意味するなら話は別ですが、ここでの「一般」って「そこらの一般人」という意味なんですか?
teratail_begin

2021/06/19 13:18 編集

>a.comさん サーバ上で直接いじるとやっぱりレスポンスが悪いので、さすがにそれはローカルでやっています。 また、質問文にも記載した通り、バージョン管理はDropboxでやっています。「やっぱり昨日の状態に戻したい!」とかはちょくちょくあるので。Gitのように何か覚える必要もなく、誰でも簡単にマウスクリックだけで任意の日時のファイルに戻せるので便利です。
Zuishin

2021/06/19 13:13

Dropbox で困ってないならそれを使えばいいし、プロの使っている方法を教えてほしいなら、こういう勘違いをされないように、そう書いたらどうですか?
a.com

2021/06/20 02:15

別にプロだとか関係なくないですか?
Zuishin

2021/06/20 02:19 編集

一般人の方法が知りたいということですか? ならば一般人が好きにすればいいのでは? Dropbox で何の不都合があるんでしょう?
teratail_begin

2021/06/20 03:39

>a.comさん 私もプロとかなんとか、あまり関係ないとは思います。 技術力が高いアマもいれば、低いプロもいますしね。 それに、「カネを稼ぐ」のがプロの定義だと思いますが、そうなると私も立派な「プロ」であり、たぶん多くのプロの皆さんよりたくさん稼いでますので…。
Zuishin

2021/06/20 03:46

一般人の方法が知りたいなら質問をそう編集し直さないと。
Zuishin

2021/06/20 03:55 編集

困ってないなら今まで通りメモ帳で書いて FFFTP でアップしてればいいんじゃないの? 昔はそういう人がたくさんいたから今でもいるでしょ。 20 年前から PHP があったのかどうかまで知らないけど、当時なら Perl が主流だったんじゃないかな。 アンケート調査の質問ならヘルプを読んで出直せば?
guest

0

・開発環境や開発手法は具体的にどんな感じにしてますか?

中小零細企業のシステムを担当しています

運用開始後も開発が必要なシステムの場合、システム導入時に
仮想化基盤上でシステムを動作させるように、導入案件を誘導(もしくは自分で設計、または自分で設置)しています。

仮想基盤は、世の中にいろいろありますが、「コレ!」といった1つに限定しておらず、
コストと、設備条件さえ合えば、何でもありです。
( VMWare , Xen, Hyper-V , VirtualBOX, クラウドサービス, etc ※コンテナは無し)

また、下記の話は、中小零細企業であっても同じ状況です

企業の方から見ればありえないことかと思いますが、個人運営の無料webサービスなので効率優先です。

最初はその通りにやってみたのですが、ローカル環境と本番環境(レンタルサーバでのLAMP)とではいろいろ異なる(PHPのバージョンとかWindowsとLinuxのディレクトリ構造の違いとか実際のドメインを使えるかどうか等々)ので結局余計な手間や作業が増えて面倒になり、やめました。

10年前までは、私も全く同じことをやっていました。

しかし現代では、さすがに本番環境をいきなりいじるのはリスクが大きいと感じ、
「仮想化は必須」として、システム運用を考えています。

開発以外にも、バックアップ対策としても有効なので、運用担者として何かと重宝しております。

Dockerとかコンテナとか聞いたことはありますが全く理解できていません。

私は、現行は「サーバー仮想化技術」の環境ですが、実際に運用すると課題も残っています

課題をクリアにするため、今後は、「サーバー仮想化技術」ではなく「コンテナ技術」を採用しようと考えています。

投稿2021/06/18 21:07

Yoshi88

総合スコア623

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

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

teratail_begin

2021/06/19 04:52

リアルで参考になる情報ありがとうございます。 そうですよね、零細企業ですと結局スピードや手軽さも大事な一面だと思います。 システムに携わる人が一人だけだったりするので、ある意味自由と言うか。 誰にも文句言われずにやれるので、私ももし雇われの一人情シスだったら、やはり本番環境でいきなりやっちゃうと思います。 皆さんのご意見を集約すると、やはり今のトレンドはコンテナでありDockerのようですね。
guest

0

ベストアンサー

レベルが低いとは思いませんが、ただ、ちょっと古いスタイルだなって思いました。

VSCode、WSL2、Docker、Git、Github ​で開発すれば環境の差異がなくなるし、ソースコードの変更履歴が残り、かつバックアップにもなります。

Docker Desktop WSL2 バックエンド
Windows上でDockerを利用することで環境の差異をなくすことができます。
WindowsでDockerを使う場合は、WSL2を利用すると効率的です。
ご参考)https://docs.docker.jp/docker-for-windows/wsl.html

GitとGithub
個人開発の場合、あまり恩恵はありませんが、ファイルのバージョン管理をすることで、変更履歴が残りますし、Githubにプッシュすればバックアップにもなります。

VSCode
高機能なテキストエディタで開発環境とも言えるツールです。これを使うと効率があがります。Git、Docker、WSL2 ともに相性がよく VSCode の中で作業が完結するのが良いところです。

デプロイは特にこだわってないので、サーバーにログインして、手動でGithubからCloneして所定のディレクトリにコピーして終わりです。もしも頻度が高くなればGithub Actionsで自動化することを考えようと思っています。

投稿2021/06/18 21:02

編集2021/06/22 17:03
take88

総合スコア1351

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

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

teratail_begin

2021/06/19 04:48

具体的で参考になる情報ありがとうございます。 WSL2というのは初めて知りました! 便利そうですね。 Docker、過去に何度も最初の一歩で挫折してきましたが、なんとか頑張って勉強してみたいと思います。
K_3578

2021/06/22 07:40 編集

>take88さん VScodeは統合開発環境ではないのでは。
take88

2021/06/22 16:59

@K_3578 ご指摘ありがとうございます。確かに統合開発環境だと誤解がありますね。修正します。
guest

0

関係ありそうな単語を並べておきますので、興味があれば調べてみてください。

・環境を分ける。最低でも開発と本番の 2つ。
言うまでもなく本番のみではリスクがあります。環境差異の切り出し方は
たとえば「PHP 環境差異 環境変数」などでぐぐってみては。

・github 等でソース管理
履歴を残すため、複数人で並行開発するため (ブランチ/マージ)、
プルリクエストで他メンバのレビューを受けるため

・デプロイ
別に scp でもいいと思います。もうちょっとかっこよくやるなら、
ブルーグリーンデプロイなど。あるいは後述の Docker などのコンテナ
技術を使ったデプロイも。

・CI/CD
簡単に言うと、自動テストや自動デプロイ的なこと。
github にソースを登録すると自動的にテストが走り、テストが通った場合のみ
自動的にデプロイできる、みたいな感じ。

・Docker
環境再現性がある。OS・ミドルウェア・ライブラリ等のバージョン差異が (あまり)
出ないように 管理できる。ローカル・開発・ステージング・本番で同じ環境を
再現しやすい。アプリのソースも含めることができるので、新しいソースを含む
Docker イメージを指定すればデプロイ完了、ということも。

・クラウド
レンタルサーバのような使い方もできますし、DB をクラウドにまかせるとか、
PHP などのミドルウェアもクラウドにまかせるとか、Firebase のような統合的な
バックエンドサービスとか、いまどきはいろいろあります。

投稿2021/06/18 17:27

68user

総合スコア2005

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

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

teratail_begin

2021/06/19 04:44

とても参考になるご回答ありがとうございます。 環境変数って何に使うんだろう?と、ずっと疑問だったのですが、こういう時に使うんですね! ただ、いずれにせよxamppのようなローカル環境では本番環境と挙動が微妙に異なったりなどいろいろ面倒なので、やっぱり今はDockerなどを使ったほうがよさそうな感じですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問