Как я настраиваю самый простой локальный сервер HTTP? [дубликат]

Этот вопрос уже имеет ответ здесь:

Я использую Studio R IDE, чтобы сделать много вещей, одна из которых должна служить локальным веб-сайтам, использующим blogdown пакет, который является ветвлением hugo. Я пишу код в Studio R и предварительно просматриваю сайт, использующий blogdown::serve_site() команда. Это - самый легкий способ, которым я знаю о предварительном просмотре статических сайтов HTML. Использование hugo R Studio принуждает мой браузер для движения в 127.0.0.1:XXXX местоположение и мой локальный сайт предварительно просматриваются на моих глазах.

Я могу служить локальным сайтам исходно с Ubuntu 18.04? Как? Я предполагаю, что это должно быть очень просто. Поиск онлайн я не могу найти простой способ сделать это все же. Если я просто открываю статические файлы HTML непосредственно в моем браузере они разоблачение wonky. Все связи изображения сразу разорваны. Форматирование заголовков, гиперссылок, и т.д. не является тем же как тогда, когда я служу странице локально с hugo.

РЕДАКТИРОВАНИЕ - я действительно не определил свой термин 'простота'. Существует два разных подхода (до сих пор) в ответах, тот, который является самым простым конечному пользователю, и тот, который прост относительно операций, выполняемых моим компьютером. Я люблю оба подхода и буду приветствовать ответы, использующие любой подход, поскольку я тестирую их.Спасибо.

31
задан 18 December 2018 в 11:39

7 ответов

Поставки Ubuntu с помощью python3 как ее значение по умолчанию, и они пошли на многое для создания этого чрезвычайно легким для нас :D

Для запуска http сервера на порте порта просто вводят

python -m http.server port

Если Вы хотите совместно использовать файлы и директоров, CD в то, какой бы ни каталог Вы хотите служить

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

61
ответ дан 23 November 2019 в 00:40

Вот список сервера HTTP в одной строке. Я уверен, что существует тот, который будет соответствовать Вашим инструментам целей / существующим инструментам.

После этого подмножество ссылки, которая содержит, по-моему, самые удобные.

Python:

python -m http.server 8000

Ruby:

ruby -run -ehttpd . -p8000

Узел:

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

Php:

php -S 127.0.0.1:8000
32
ответ дан 23 November 2019 в 00:40

Один простой способ установить статический http сайт состоит в том, чтобы использовать darkhttpd

Нет никакого пакета в человечности для этого, но программное обеспечение является всего одним единственным исходным файлом, который можно загрузить tarball на сайте или с мерзавцем:

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

Затем выполненный make и у Вас есть свой darkhttpd исполняемый файл. (Поместите его в /usr/local/bin сделать это доступным для каждого пользователя)

Выполненный

./darkhttpd /path/to/wwwroot

или

./darkhttpd --help

получить справку о команде

Можно указать каталог или порт для использования и много других опций.

5
ответ дан 23 November 2019 в 00:40

sudo apt install apache2 установит apache2 веб-сервер. По умолчанию это обеспечивает доступ к index.html в /var/www/html папка; замена этого файла с тем, что Вы хотите разместить, является самым легким способом сделать вещи, затем можно перейти на http://127.0.0.1 на локальной машине, или на IP-адрес машины в сети, и это будет служить страницам.

4
ответ дан 23 November 2019 в 00:40

Если Вы - пользователь Google Chrome, это может быть столь же легко как использование веб-сервера для Chrome. Просто установите его, запустите его, нажмите Choose Folder для выбора каталога, который содержит статические файлы.

2
ответ дан 23 November 2019 в 00:40

Если Вы не хотите помнить аргументы команды Python, используйте лай:

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 для помещения в браузер в другом конце.

3
ответ дан 23 November 2019 в 00:40

Один из самых простых (и самое ограниченное) решения использовал бы 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, служение на первых 1 024 портах потребует, чтобы Вы использовали sudo. Можно также служить файлу этот путь просто при помощи cat filename.

Поскольку более сложный пример проверяет bashttpd.

Также отметьте различия между netcat-традиционным и netcat-openbsd. Ubuntu обеспечивает обе версии.

0
ответ дан 23 November 2019 в 00:40

Другие вопросы по тегам:

Похожие вопросы: