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

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

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

/home/alexander/code/angularjs/

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

start-webserver-here 

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

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

Есть ли проще? путь?

119
задан 13 April 2017 в 09:49

8 ответов

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

php -S 0.0.0.0:8000

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

0
ответ дан 13 April 2017 в 09:49

Если вы более рубиново настроены, драгоценный камень serve великолепен

serve

или для другого порта:

serve 9000

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

0
ответ дан 13 April 2017 в 09:49
  • 1
    Интересный. Выполнение gksu pm-suspend в терминале никогда не предлагает мне пароль (с пополудни - уже приостанавливают набор к NOPASSWD в sudoers). Как насчет того, чтобы делать ярлык /bin/sh -c "sudo pm-suspend"? – Sergiy Kolodyazhnyy 13 May 2015 в 23:18

Это также возможно в Ruby без установки драгоценного камня.

ruby -run -e httpd . -p5000

0
ответ дан 13 April 2017 в 09:49

Просто используйте 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 .

0
ответ дан 13 April 2017 в 09:49

Используйте

python2 -m SimpleHTTPServer 80

или

python3 -m http.server 80

для запуска простого HTTP-сервера.

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

0
ответ дан 13 April 2017 в 09:49

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

Цитировать его сайт

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

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

0
ответ дан 13 April 2017 в 09:49

Можно использовать Nginx для этого: https://gist.github.com/asterite3/89236d1753a669e173531aca4b87afdc

Это не является однопоточным (сервер не зависнет для других клиентов, если получено доступ от, скажем, Google Chrome), и очень настраивается и является эффективным.

2
ответ дан 9 October 2019 в 12:00

В Ubuntu (и, вероятно, почти во всех других дистрибутивах Linux) у вас уже установлен BusyBox. Таким образом, вы можете запустить httpd:

busybox httpd -f -p 8080

, затем открыть http://localhost:8080

В источниках httpd.c вы можете найти более подробную информацию. Он очень ограничен, но имеет почти все основные функции, такие как базовая аутентификация, сжатие gzip и сценарии CGI.

Кстати, BusyBox также широко используется во встроенных устройствах: WiFi-маршрутизаторах, телевизионных приставках и т. д. Но OpenWrt, прошивка с открытым исходным кодом для маршрутизаторов WiFi, использует собственный http-сервер: uhttpd. И вы можете скомпилировать и установить его на любой другой Linux. Да, он не встроен в Ubuntu и его не так просто установить, но это может быть полезно, если вам все еще нужен небольшой веб-сервер, но bb-httpd не соответствует вашим потребностям.

4
ответ дан 5 July 2020 в 14:10

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

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