«Специальный веб-сервер» для статических файлов в UNIX / MacOSX? - PullRequest
42 голосов
/ 27 сентября 2010

Существует ли такая вещь, как крошечный веб-сервер, который я могу вызвать из командной строки, который просто извлекает файлы из локальной файловой системы и передает их через HTTP на определенный порт?

Я бы хотел сделать что-то вроде этого:

$ cd ~/Sites/mysite
$ serve . 10.0.1.1 8080

Это должно запустить веб-сервер, который прослушивает 10.0.1.1:8080 и обслуживает файлы из текущего каталога (".") - без PHP, ASP или чего-либо из этого.

Любое предложение с благодарностью.

Ответы [ 4 ]

71 голосов
/ 27 сентября 2010

Если у вас установлен Python:

$ python -m SimpleHTTPServer
Serving HTTP on 0.0.0.0 port 8000 ...
5 голосов
/ 27 сентября 2010

$ python -m SimpleHTTPServer [port]

запустит веб-сервер в текущем каталоге, обслуживающий все найденные там файлы.

В некоторых случаях это не будет работать хорошо, например, сервер один- многопоточный (так что одновременных загрузок нет) и не обрабатывает запросы диапазона байтов (клиенты ожидают Range: поддержка часто дает сбой).

2 голосов
/ 18 июля 2014

Python3 может обслуживать текущий каталог через HTTP, используя http.server :

$ python3 -m http.server

Где

  • python3 текущая версия python
  • -m обозначает модуль
  • http пакет http
  • http.server модуль сервера (из пакета http)

По умолчанию http.server прослушивает порт 8000, но вы можете указать другой, например:

$ python3 -m http.server 8080
2 голосов
/ 27 сентября 2010

Apache HTTPD встроен в Mac OS X - просто включите «Общий веб-доступ» в настройках общего доступа.

Чтобы он также работал через порт 8080, вам необходимо добавить некоторую конфигурацию. См. статью о Serverfault для начальной точки.

...