あなたのウェブサイトをテストするには、ローカルのApache/NGinXサーバーを必要としない理由
Disclaimer: when I say "local webserver" I'm referring to software with advanced features installed globally on your machine. Throughout this article, you'll see that we'll indeed use servers too to fulfill our needs but the requirement is to have almost zero configuration and to run our resources in isolation.
2000年代初期に、我々が我々のウェブサイトを開発したかったとき、我々は一般的に、PHP、MySQLとPhpMyAdminでApacheローカルをインストールしていましたを参照).このセットアップは、Apacheの設定ファイルで何を達成したいかによって、数日から数時間かかることがありました.
また、あなたは多くの時間を節約するためにeasyphpやwampをインストールすることができますが、これらのツールは常に対応して来て、今日は良いアプリ/ウェブサイトは、独自のプロジェクトディレクトリ(例えばGitリポジトリ)に含まれている必要があります.
2020年(OMG、私は古いですか?)開発ツールは大いに改善しました.これは、もはや複雑な設定をローカルWebサーバーをインストールする必要はありません.さらに、マシンプロジェクトの依存関係とリソースの間で同じ振る舞いを最大化するためには、分離して実行する必要があります.
のいくつかの最もトレンド言語のそれを達成する方法を見てみよう!
非常に汚い方法
These different methods will rely on having a static website or internal routing in your application. Any more complex routing/rewriting will, of course, require a real webserver. The same to note if you need to use a database that you cannot mock. These specific needs are handled in the next section.
すべての次のコマンドは、
http://localhost:8080/
現在のディレクトリにアクセスし、フレームワークから可能なすべての選択肢を一覧表示していませんでした.またはこの記事を短く保つために利用可能なパッケージ.私はMakefileの使用を奨励するNPM scripts ) それで、あなたはもうそのコマンドですでに何を悩ます必要はありませんか質問別のプロジェクト間の切り替え.例えば、
< div >
それから、いつでも、プロジェクト全体を入力するのと同じコマンドがあります.
make serve
.とにかくここに行きましょう!p >
静的ウェブサイト
を使用することができますhttp-server NPMパッケージこれは、GZIP、SSLのサポート、またはすべてのルーティングをキャッチする非常に強力なWebサーバーです.プロジェクトのdev依存関係にインストールして実行してください
npx http-server
.他にもいくつかのWebサーバライブラリがありますglance or harp .
DENOプロジェクト
あなたは標準を使うことができます
file_server
lib : < br/><> P >
クラスをハイライト表示する
$ deno install -f -allow-net -allow-read file_server https://deno.land/std/http/file_server.ts
$ ~/.deno/bin/file_server -port 8000
< div >PHP 5.4 +アプリケーション
< tt > PHPバイナリ自体を使用します.
php -S localhost:8080
.<高橋潤子> <高橋潤子>p >
Rubyプロジェクト
< tt > 1.9.2以降で使用する
ruby -run -e httpd . -p 8080
.古いバージョンでは< p >
ruby -rwebrick -e'WEBrick::HTTPServer.new(:Port=>8080,:DocumentRoot=>Dir.pwd).start'
.Pythonで
PHPのように、Pythonもその統合サーバを持っています!p >
< 2 >とPython 2
python -m SimpleHTTPServer 8080
.<堀田>
python3 -m http.server 8080
.囲碁で
あなたはスパークを使用できます
<> P >
クラスをハイライト表示する
$ go get github.com/rif/spark
$ spark -port 8080
< div >インクリスタル
< p >標準ライブラリを利用できる:< br/>
<> P >
クラスをハイライト表示する
crystal eval 'require "http/server"; HTTP::Server.new(8000, HTTP::StaticFileHandler.new(".")).listen'
< div >さびプロジェクトのために
私は忘れませんでしたRustaceans 人々😉️
<> P >
クラスをハイライト表示する
$ cargo install https
$ http
< div >< p >使用することもできますminiserve .
最後に、エリクサー
クラスをハイライト表示する
elixir --no-halt --app inets -e ":inets.start(:httpd,[{:server_name,'s'},{:document_root,'.'},{:server_root,'.'},{:port,8080}])"
< div >最も長く信頼できる方法
< P >
あなたは既にDockerを知っているでしょうか?これは、コンテナの管理ツールは非常に最近では、その基礎的なスタックを使用してアプリケーションを出荷するために使用されます(データベース、サーバー、ログマネージャなど).p >
ローカルのウェブサイトをテストするには、あなたの生産サーバと同じ構成でDockerイメージを作成することは明らかに好ましい方法です.リソースをコンテナ化しておくと、コードによって異なる環境の副作用が最小化され、チームが幸せになります.p >
私たちの例では、私はイメージの作成のすべての詳細に入力されませんが、私はそれがどのように行われるかを示すためにサンプルのウェブサイトでgithubリポジトリを作成しました.この例では、NGINXとPHP 7でDockerイメージを扱います.https://github.com/pyrsmk/docker-nginx-example . しかし、同じ原則は簡単にApacheと他の言語にカスタマイズ可能ですp >
<市川>p >
< hr/>
次のためには、必要がありますinstall docker on your system . それが完了したら、ユーザーを
docker
グループ:< br/><> P >
クラスをハイライト表示する
$ sudo usermod -aG docker ${USER}
$ su - ${USER}
< div >現在、アカウントを作成するDockerHub , and log in これにp >
< p >では、私たちのイメージがどのように見えるかを見てみましょう.p >
< hr/>
ここに我々の
Dockerfile
:< div class ="LagagCount - gig - Link - tag "
"スクリプトのID "https://gist.github.com/pyrsmk/5b90ceb921c78b386b7ad13dfdfd04de.js//>
< div >
コメントでは、何が起こっているのかを理解するのはとても簡単ですが、ここで注意するいくつかの事柄があります.
<ウル>
bash
デバッグ目的だけの依存関係としてetc
サンプルのリポジトリその他の興味深いファイルは
Makefile
(以下の例は、簡単にするために、サンプルリポジトリの両方のMakefileの連結です.< div class ="LagagCount - gig - Link - tag "
"スクリプトのID "https://gist.github.com/pyrsmk/9713d6e7d79cea5c35b8f775dd15e541.js//>
< div >
のためのコード
build
タスクは少し複雑なようですが、それは私たちが他のすべてのタスクを自動化したいからですset a version number for each image we're building . それは本当に必要でありません、そして、このコードは単純化されることができます、しかし、なぜ良い実行から始めませんか?p >タスクを実行しているビットを説明しましょう.
<ウル>
make build
: それは私たちに現在のDockerのイメージバージョンを示し、新しいバージョンのために私たちを求めmake publish
: これは、私たちのイメージDockerHubでは、特に有用なときにチームでの作業も、バックアップを行うにはmake bash
: 我々が我々のイメージ(Dockerfile、構成ファイルなど)に取り組んでいるとき、我々がデバッグする必要があるとき、本当に役に立ちます、それは容器の中でbashを走らせますmake serve
: これは我々が興味を持っている、それはイメージを実行し、内部サーバーを公開するlocalhost:8080
< tt >自分のアカウントに依存して直接倉庫からのコマンドを実行してはいけません
pyrsmk
😉️< hr/>
私たちは今日しています!p >
あなたが質問をするならば、私がDockerがステップに容易なものでないということを知っているように尋ねるのを躊躇しないでください!p >
あなたがDockerについてもっと知りたいならば.there are many useful official resources to read .
< hr/>
あなたは私の購読することができますmailing list .
あなたが私の仕事に感謝するならば、あなたはコーヒーの小さい価格のために私を支持したいかもしれません☕️ 経由Ko-fi (または)Patreon .
Reference
この問題について(あなたのウェブサイトをテストするには、ローカルのApache/NGinXサーバーを必要としない理由), 我々は、より多くの情報をここで見つけました https://dev.to/pyrsmk/you-don-t-need-a-local-apache-nginx-server-anymore-to-test-your-website-3nh1テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol