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

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

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

/home/alexander/code/angularjs/

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

start-webserver-here 

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

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

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

10 ответов

Решение

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

python2 -m SimpleHTTPServer 80

или же

python3 -m http.server 80

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

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

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

php -S 0.0.0.0:8000

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

Если вы более рубиново настроены, жемчужина великолепна

serve

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

serve 9000

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

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

ruby -run -e httpd . -p5000

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

busybox httpd -f -p 8080

затем откройте http://localhost:8080

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

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

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

Для этого вы можете использовать Nginx: https://gist.github.com/asterite3/89236d1753a669e173531aca4b87afdc

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

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

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

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

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

Вам нужен JS Lightning. Это как раз то, что доктор прописал. Это приложение Node JS.

Установите его. Введите «js-lightning» в любом каталоге с сервильными файлами, и он будет работать на порту 7000. Дайте ему другой порт, и вместо этого вам будет хорошо. Много хороших функций, чтобы сделать его полезным.

На всякий случай он будет обслуживать в каталоге все, что может «требовать()». Другими словами, он обслуживает файлы .js способом, вдохновленным PHP.

http://jsLightning.com

Вы можете использовать кросс -платформенный статический http-сервер, не зависящий от языка.

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