Как легко запустить веб-сервер в любой папке?


115

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

Я часто пробую новые вещи, такие как фреймворки JS или около того, в новой папке где-то здесь:

/home/alexander/code/angularjs/

Тогда было бы удобно просто зайти в этот каталог и набрать что-то вроде:

start-webserver-here 

так что веб-сервер начинает прослушивать порт 80 и обслуживать этот каталог, и я могу попробовать все, над чем работаю.

Я установил XAMPP, но кажется, что это базовый apache с корнем документа, который я должен изменить, даже с привилегиями root, наряду с предоставлением разрешений для каждой папки и т. Д.

Есть ли более простой способ?


Кто-то составил большой список лайнеров, чтобы добиться этого: gist.github.com/willurd/5720255
Абхинав Бхатия,

Ответы:


174

использование

python2 -m SimpleHTTPServer 80

или же

python3 -m http.server 80

запустить простой HTTP-сервер.

Замените 80на другой номер, если вы хотите, чтобы он прослушивал другой порт. Для портов <1024 он должен работать с правами root.


1
Это именно то, что я искал! Danke!
Александр Рехштайнер

1
Можете ли вы запустить это параллельно с Apache? Конечно, в другом порту (хотя я бы хотел, чтобы вы взорвали мне голову, сказав, что они могут использовать одни и те же порты).
бабки

3
@dibs Да, они могут работать параллельно. Но нет, не на том же порту.
Дан

11
Эквивалент Python 3.x этоpython3 -m http.server
Стефано Палаццо

1
Вот почему я так люблю stackoverflow. Пришёл искать здесь точную проблему, для которой я хотел найти решение для ... запуска angularjs с веб-сервера. Большое спасибо Флориан Дайш
SK176H

24

Мне также нравится использовать PHP для этой цели, так как он позволяет мне запускать такие вещи, как WordPress, на лету и легче разрабатывать темы (хотя вам все еще нужен MySQL):

php -S 0.0.0.0:8000

В том же самом скрипте, который запускает это, я также запускаю Guard , который автоматически обновляет браузер при изменении файла.


2
Обратите внимание, что встроенная функция сервера была добавлена ​​в 5.4.0
sierrasdetandil

Да, вам нужна одна из более новых версий. Версия в репозиториях 13.10, если вы делаете sudo apt-get install php5это 5.5.3, так что вы должны быть в порядке.
metakermit

Отлично ! Как раз то, что я искал!
Пракаш Раман

17

если вы больше рубин нравом, то служить камень велик

serve

или для меня другой порт:

serve 9000

установить с gem install serve


Это отлично работает, но требует ruby> = 1.9.3
Валерио Скьявони

Да, но также 1.9.3 является eol . Исправления безопасности больше не бэкпортируются. Рекомендую rvm для управления устаревшими рубинами. Они не должны быть вашей системой по умолчанию
will-ob


6

Просто используйте http-server, это сервер командной строки с нулевой конфигурацией.

Самый простой способ установить это через npm:

sudo npm install http-server -g

Использование:

http-server [path] [options]

[path]по умолчанию, ./publicесли папка существует, и в ./противном случае.

Чтобы увидеть ваш сервер в действии, посетите http: // localhost: 8080 . Используйте -pопцию, чтобы установить другой порт.

Для других вариантов посетите: https://www.npmjs.com/package/http-server .


Единственная причина не использовать это - то, что для этого требуется rpm, который не установлен изначально. Другие решения, в которых упоминаются ruby ​​и python, предустановлены практически на каждой ОС, поэтому нет никаких предварительных условий, связанных с установкой команды для запуска сервера.
Jamescampbell

3

Поскольку в названии вашей папки есть angularjs, похоже, это угловое приложение js. В таком случае не забудьте проверить Йомана .

Цитировать это сайт

Yeoman 1.0 - это больше, чем просто инструмент. Это рабочий процесс; набор инструментов и лучших практик, работающих в гармонии, чтобы сделать разработку для Интернета еще лучше.

Одна из многих других вещей - это связанный gruntсервер.


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.