少し曖昧に聞こえるかもしれませんので、もう少し説明してみましょう...
長年自営業の開発者でしたが、今では商用のWeb開発者の役割を探しています。サーバーとホスティングに関する私の唯一の経験は、FTPを介してアップロードし、CPanel/WHMで少し遊んだことです。私が目指している役割は、Web開発のPHP、MySQL、HTML、CSSタイプの役割ですが、最近のインタビューでは、サーバーでの設定について質問されました。これは理想的ではありませんでした!
私が何をしているのかを知らなければ、何を学びたいのか正確に説明することは困難ですが、それは基本的に、Web開発者として知っておくべきサーバー要素だけなのでしょうか。あなたがWeb開発者であれば、ファイルのアップロード以外にサーバーとのやり取りはありますか? Subversion(SVN)やバージョン管理システムのようなものがWeb開発チームによってセットアップされることがよくありますか、それが彼らが話していたことでしょうか?
これは一連の大きな質問ですが、多くの人が、特にフロントエンドに重点を置いて始まったキャリアで前進し始めたときに、対処する必要があると思います。
あなたは、PHPとMySQL開発を含む役割を担当するつもりです。これらはサーバー上で実行する必要があるものです。開発者が適切な技術的判断を下せるようになるには、これらのものがサーバーでどのように機能するか、およびWebフロントエンドとどのように相互作用するかを理解しているため、サーバーについて理解を深める必要があります。
サーバーについて必要な知識を正確に把握しようとするのではなく、サーバー側のすべてのソフトウェアを自分でインストールするなど、何かを調べて構築することをお勧めします。 足を濡らす優れた方法は、コンピュータにLinuxをインストールすることです。VirtualBoxのようなものを使用して、現在のOSと一緒に実行させることができます。 MySQLをインストールし、PHPのサーバーをインストールして設定し、すべてを一緒に動作させるようにします。素晴らしいのは、最近、適度に設備の整ったラップトップです。これはすべて実行でき、「サーバー」になることができます。これは、特にLinuxとコマンドラインの使用経験がない場合、最初は難しいかもしれません。開発者として、少なくとも、この演習を完了するのに十分な知識があれば、知識をさらに深める方法を理解するためのジャンプスタートになります。
速度を上げる必要のある分野は3つあります。
Ubuntuを使用する場合は、基本的な手順ここを実行して実行できます。 Linuxサーバーの基本をかなり強化してから、Webサーバー/データベースコンポーネントのインストールと操作を開始する必要があることに注意してください。
開発者がファイルをアップロードするだけでなく、サーバーと対話する方法についても、これは組織によって大きく異なると思います。
ポイントは、サーバーにどのように触れる必要があるかについて正確な答えは1つではないということですが、キャリアの中で、FTPのようなものを介してファイルをアップロードするだけでは不十分です。今すぐ基本を学ぶことから始めましょう。
私の最初のアドバイスは、自分を特定の役割に限定することではありません。スペシャリストになり、特定のスキルセット(PHPなど)について深い知識を持つことは素晴らしいことです。ただし、ドメインの他の部分にまたがる幅広い知識を持つことも同様に重要です。
私の経験では、ほとんどのチームは、PHPのコア機能を書き換える知識のある人を雇うのではなく、投げかけられた問題を処理できる人を雇うことを望んでいます(そのレベルの知識があっても確かに害はありません)。または、少なくともチームが遭遇する問題の解決を助けることができる誰か。たとえば、アプリケーションがダウンし、顧客が影響を受けている状況を想像してみてください。手を挙げて「何をすべきかわからない」と言うか、サーバーにSSHでログインしてログのスキャンを開始し、特定のファイルシステムのディスク領域がいっぱいになっていることを確認して、それをクリーンアップします。これはマイナーな例ですが、ポイントは明らかだと思います。その基本的な知識があれば、開発者は特定のファイルシステムを監視し、特定のしきい値に達したときにそれを消去するスクリプトを作成できます。あなたは今、あなたのマネージャーにとってはるかに貴重な存在となっています。
私のキャリアの中で私が学んだもう1つのことは、物事が速く動くことです。もし追いつかなければ、あなたは取り残されることになります。環境全体(ビジネス面を含む)についての知識が多ければ多いほど、より良い状態になります。それはあなたがあなたがするすべてのことの専門家である必要があると言っているわけではありませんが、少なくとも無知であると分類されないための知識を持っています。身近になればなるほど、順応性が高まり、会社にとって資産の価値が高まります。
特にあなたの質問に答えるために...
アプリケーションスタック全体に精通してください。使用されているWebサーバー、データベース、キャッシングメカニズムなどを把握します。そして、どのバージョンも。自分のサーバーで環境を再作成できる十分な知識があります。これは、それ自体、非常に重要です。サプライズが減るので、開発と本番環境で多かれ少なかれ同じ環境を持つように努力する必要があります( http://12factor.net/dev-prod-parity )。
これは本当にチームに依存します。私の特定のケースでは、開発者は環境のステージングで大きな役割を果たします。私たちはアプリケーションの内部動作に最も精通しているので、アプリケーションを実行するためにどのサーバーテクノロジーが配置されているかを判断するのに最適な立場にあります。すべてのチームがそのような実践的なアプローチを持っているわけではないと思いますが、ディスカッションに参加できるように十分な親しみがあることは大きな利点です。具体的には、バージョン管理に関して、開発者としてのあなたは、選択されたテクノロジー(Git、Subversion、Mercurialなど)に大きく影響を受けるため、意思決定プロセスに関与するよう努めるべきです。
んで、どうする?
このすべてを学ぶのにどのようにアプローチするのが最善かについての私の提案については? 足を動かす 。テーマについてできる限りすべてを読み込もうとすることを心配しないでください。ほとんどの場合、終了するまでに脳から漏れるだけです。代わりに、ゼロから何かを開発し始めます。 Vagrant ;で始めます。新しい遊び場として使用できる仮想マシンを簡単に作成および管理できます。次に、Webサーバーとデータベースをインストールし、作成を開始します。アプリのアイデアがある場合は、完璧です。それがない場合は、チュートリアルを見つけるか、既存のアプリを再作成してください。プロセス全体に慣れることがポイントです。また、PHP開発者として、ぜひチェックしてください PHP:The Right Way ...本当にすばらしい情報がたくさん含まれています。そして最も重要なのは、それはあなたが楽しんでいて情熱的であるので、あなたは開発者の道をたどったと思います...それを見失わないでください!
Web開発者になるためにサーバーについて知っておくべきことは何ですか? ...
実際には驚くほど少ない。主な知識分野は、プログラミング、html、phpなどです。
知っておくべきことは、物事をローカルで実行する方法であり、これを実行するときは、ボックスを「サーバー」として使用しています。したがって、ローカルで実行するときは、インターネットサイトと同じように、Webブラウザを使用してページを表示します。ただし、あなたのサイトはhttp://localhost
またはhttp://127.0.0.1
になります。
Cgiやhttpなどの設定に関しては、あなたがそれを知っている必要はないと思います。作業しているOS用のWebサーバーの設定については、いつでも一般的な本を読むことができます。これは、一般的な用語を知るのに十分な範囲です。
全体像としては、Linuxにアクセスして、Webサーバーなどのマシンをセットアップおよび構成する方法を学ぶことをお勧めします。しかし、あなたが実際にものに興味を持っている場合のみ。インタビューで印象づけるだけではありません。
最後に、面接時に十分に知らない領域についてメモを取ることを検討することをお勧めします。あなたの質問が、あなたが知らなかった用語などについてより具体的である場合に役立ちます。
Web開発サイクルを完了するには、以下のことを知る必要があります。
1)IDE(NetbeansおよびEclipseなど)
2)コーディング用のプログラミング言語。 (PHP、Javaなど)
3)ページデザインのフロントテクノロジー(HTML、CSSなど)
4)データを格納および取得するためのバックアップされたデータベース。 (MySQLなど)
3)コードフォームリポジトリをチェックおよび取得するためのバージョン管理システム。
4)依存ファイルを使用してコードをコンパイルするためのビルドツール。 (アリ、メイベン)
6)コードをデプロイして実行するWebサーバー。
7)Webおよびejbコンポーネントを実行およびテストするには、サーバーを介した基本的な展開プロセスを知る必要があります。 (Tomcat、Web-Logicサーバー)
DemetriKotsの回答に加えて、自動展開と継続的統合のソリューションについても見ていきます。サーバーの初期設定は1つのステップにすぎず、FTPを介したデプロイは面倒でエラーが発生しやすく、不適切なデプロイをロールバックするための適切なソリューションがありません。