Як легко запустити веб-сервер у будь-якій папці?


115

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

Я часто випробовую нові речі, такі як рамки JS або інше, в новій папці десь тут:

/home/alexander/code/angularjs/

Тоді було б зручно просто зайти в цей каталог і набрати щось на кшталт:

start-webserver-here 

так що веб-сервер починає слухати порт 80 і обслуговувати цей каталог, і я можу спробувати все, над чим працюю.

Я встановив XAMPP, але здається, що це основний апарат з коренем документа, який я повинен був би змінити, навіть з правами root, а також наданням дозволів для кожної папки тощо.

Чи є простіший спосіб?


Хтось склав великий список одного лайнера, щоб досягти цього: gist.github.com/willurd/5720255
Bhatia

Відповіді:


174

Використовуйте

python2 -m SimpleHTTPServer 80

або

python3 -m http.server 80

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

Замініть 80на інший номер, якщо ви хочете, щоб його слухали на іншому порту. Для портів <1024 він повинен працювати з привілеями root.


1
Це саме те, що я шукав! Данке!
Олександр Рехштайнер

1
Чи можете ви запустити це паралельно Apache? З іншого боку, звичайно (хоча б я радий вам думати про себе, сказавши мені, що вони можуть використовувати ті самі порти).
dibs

3
@dibs Так, вони можуть працювати паралельно. Але ні, не в тому ж порту.
День

11
Еквівалент цього пітона 3.xpython3 -m http.server
Стефано Палаццо

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

24

Мені також подобається використовувати PHP для цієї мети, оскільки це дозволяє мені легше запускати такі речі, як WordPress та розробляти теми (все ж вам потрібен MySQL):

php -S 0.0.0.0:8000

У тому ж сценарії, який починається цим, я також запускаю охорону , яка автоматично оновлює браузер при зміні файлів.


2
Зауважте, що вбудована функція сервера була додана в 5.4.0
sierrasdetandil

Так, вам потрібна одна з новіших версій. Версія в репортажі 13.10, якщо ви це робите, sudo apt-get install php5- 5.5.3, тож вам слід добре.
metakermit

Ідеально! Тільки те, що я шукав!
Пракаш Раман

17

якщо ви більше рубін вдачею, то служити камінь великий

serve

або для іншого порту:

serve 9000

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


Це добре працює, але для цього потрібен рубін> = 1.9.3
Валеріо Скіавоні

Так, але також 1.9.3 - це еол . Патчі безпеки більше не підтримуються. Рекомендую rvm для управління застарілими рубінами. Вони не повинні бути за замовчуванням у вашій системі
буде


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. У такому випадку не забудьте перевірити yoman .

Цитувати це сайт

Yeoman 1.0 - це не просто інструмент. Це робочий процес; колекція інструментів та кращих практик, що працюють в гармонії, щоб зробити розвиток для Інтернету ще кращим.

Однією з багатьох інших речей є пакетний gruntсервер.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.