Skip to content

Instantly share code, notes, and snippets.

@StevenBlack
Forked from willurd/web-servers.md
Created June 7, 2013 00:58
Show Gist options
  • Save StevenBlack/5726345 to your computer and use it in GitHub Desktop.
Save StevenBlack/5726345 to your computer and use it in GitHub Desktop.

Discussion on reddit.

Each of these commands will run an ad hoc http static file server in your current (or specified) directory. Use this power wisely.

Python 2.x

$ python -m SimpleHTTPServer 8000

Python 3.x

$ python -m http.server 8000

Twisted (Python)

Depends on Twisted.

$ python -c 'from twisted.web.server import Site; from twisted.web.static import File; from twisted.internet import reactor; reactor.listenTCP(8000, Site(File("."))); reactor.run()'

Ruby

Credit: Barking Iguana

$ ruby -rwebrick -e'WEBrick::HTTPServer.new(:Port => 8000, :DocumentRoot => Dir.pwd).start'

adsf (Ruby)

Credit: @twome

No directory listings.

$ gem install adsf   # install dependency
$ adsf -p 8000

Perl

Credit: Anonymous Monk

$ perl -MCPAN -e "install HTTP::Server::Brick"   # install dependency
$ perl -MHTTP::Server::Brick -e '$s=HTTP::Server::Brick->new(port=>8000); $s->mount("/"=>{path=>"."}); $s->start'

Plack (Perl)

Credit: miyagawa

$ curl -L http://cpanmin.us | perl - --sudo App::cpanminus   # install cpanminus
$ cpanm Plack                                                # install dependency
$ plackup -MPlack::App::Directory -e 'Plack::App::Directory->new(root => ".");' -p 8000

Node.js #1

$ npm install -g http-server   # install dependency
$ http-server -p 8000

Node.js #2

No directory listings.

$ npm install -g node-static   # install dependency
$ static -p 8000

PHP >= 5.4

Credit: /u/prawnsalad, @MattLicense

No directory listings.

php -S 127.0.0.1:8000

Erlang

Credit: @nivertech (with the addition of some basic mime types)

No directory listings.

erl -s inets -eval 'inets:start(httpd,[{server_name,"NAME"},{document_root, "."},{server_root, "."},{port, 8000},{mime_types,[{"html","text/html"},{"htm","text/html"},{"js","text/javascript"},{"css","text/css"},{"gif","image/gif"},{"jpg","image/jpeg"},{"jpeg","image/jpeg"},{"png","image/png"}]}]).'

IIS Express

Credit: /u/fjantomen

No directory listings. /path must be an absolute path.

Depends on IIS Express.

C:\> "C:\Program Files (x86)\IIS Express\iisexpress.exe" /path:C:\MyWeb /port:8000
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment