web-dev-qa-db-ja.com

最も単純なHTTPローカルサーバーを設定するにはどうすればよいですか?

R Studio IDE を使用して多くのことを行いますが、そのうちの1つは blogdownパッケージ のフォークである hugo を使用してローカルWebサイトを提供することです。 R Studioでコードを記述し、blogdown::serve_site()コマンドを使用してサイトをプレビューします。これは、静的HTMLサイトをプレビューする最も簡単な方法です。 hugoR Studioを使用すると、ブラウザーが127.0.0.1:XXXXの場所に移動し、ローカルサイトが目の前でプレビューされます。

Ubuntu 18.04でネイティブにローカルサイトを提供できますか? それは非常にシンプルであるべきだと思います。オンラインで検索しても、簡単な方法は見つかりません。静的なHTMLファイルをブラウザーで直接開くと、それらは不安定になります。すべての画像リンクはすぐに壊れます。見出し、ハイパーリンクなどの書式設定は、 hugo でページをローカルに提供する場合と同じではありません。

EDIT-「シンプル」という用語を実際に定義しなかった。 (これまでのところ)答えには2つの異なるアプローチがあります。1つはエンドユーザーにとって最も単純なアプローチであり、もう1つはコンピューターで実行される操作に関して単純なアプローチです。私は両方のアプローチが好きで、私がそれらをテストするとき、どんなアプローチを利用する答えも歓迎します。ありがとう。

29
Jason Hunter

Ubuntuはデフォルトとしてpython3を使用して出荷されますが、これを非常に簡単にするためにかなりの時間を費やしました:D

ポートportでhttpサーバーを起動するには、単に入力します

python -m http.server port

ファイルとディレクトリを共有する場合は、提供するディレクトリに移動します

cd /my/html/files
python -m http.server 8080

デフォルトの0.0.0.0以外のアドレスを使用する場合は、--bindを使用できます

例:python -m http.server 8080 --bind 127.0.0.1はアドレス127.0.0.1:8080で提供します:)

編集:それが本当に長かったかどうかにかかわらず、私はそれを読者に任せます

また、ドキュメントへのリンクもあります https://docs.python.org/3/library/http.server.html

58
j-money

ここ は1行のHTTPサーバーのリストです。私はあなたの目的/既存のツールに合うものがあると確信しています。

以下はリンクのサブセットで、私の意見では最も便利なものが含まれています。

Python:

python -m http.server 8000

ルビー:

Ruby -run -ehttpd . -p8000

ノード:

npm install -g http-server
http-server -p 8000

PHP:

php -S 127.0.0.1:8000
32
Richard

静的httpサイトを設定する簡単な方法の1つは、 darkhttpd を使用することです

そのためのパッケージはubuntuにはありませんが、ソフトウェアはサイト上のtarballまたはgitでダウンロードできる1つのソースファイルにすぎません:

git clone https://unix4lyfe.org/git/darkhttpd
cd darkhttpd

次にmakeを実行すると、darkhttpd実行可能ファイルができます。 (/usr/local/binに配置して、すべてのユーザーが利用できるようにします)

走る

./darkhttpd /path/to/wwwroot

または

./darkhttpd --help

コマンドに関するヘルプを取得するには

使用するディレクトリまたはポート、および他の多くのオプションを指定できます。

5
solsTiCe

Sudo apt install Apache2はApache2 Webサーバーをインストールします。デフォルトでは、index.htmlフォルダー内の/var/www/htmlへのアクセスを提供します。このファイルをあなたがホストしたいものに置き換えるのが最も簡単な方法です、そしてあなたは http://127.0.0.1 にあなたのローカルマシン、またはあなたのネットワークのあなたのマシンのIPアドレスにナビゲートできますそしてそれはページを提供します。

4
Minty

pythonコマンドの引数を覚えたくない場合は、woofを使用します。

Description: share files through HTTP protocol
 Woof (Web Offer One File) is a tool to copy files among hosts. It can serve a
 specified file on HTTP, just for a given number of times, and then exits.

Features include:
 * it can share stuff "one shot" and exit just after he served that file.
 * it can share things among different operating system or different devices
   (e.g.: a smartphone), and allows one to upload files easily.
 * it can also show a simple html form in order to upload file (useful if the
   client hasn't a way to serve the file).

次のコマンドでDebian/Ubuntuにインストールできます

apt install woof

として使用

woof kittens.png

URLを印刷して、反対側のブラウザーに配置します。

2
Edheldil

Google Chromeユーザーの場合、 Chrome用Webサーバー を使用するのと同じくらい簡単です。単純にインストールして起動し、をクリックしてフォルダを選択し、静的ファイルを保持するディレクトリを選択します。

2
Diego Bernal

この記事 で説明されているように、最も単純な(そして最も限定的な)ソリューションの1つはnetcatを使用することです。

while true; do { echo -e "HTTP/1.1 200 OK\r\n$(date)\r\n\r\n<h1>hello world from $(hostname) on $(date)</h1>" | nc -vl 8080; } done

この例では、ポート8080でサービスを提供しています。最初の1024ポートでサービスを提供するには、Sudoを使用する必要があります。 cat filenameを使用するだけで、この方法でファイルを提供することもできます。

より複雑な例については、 bashttpd をご覧ください。

netcat-traditionalnetcat-openbsd の違いにも注意してください。 Ubuntuは両方のバージョンを提供します。

0
CYB3R