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 8000Python 3.x
$ python -m http.server 8000Python Twisted
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'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 plack
$ 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 8000Node.js #2
No directory listings.
$ npm install -g node-static # install dependency
$ static -p 8000PHP >= 5.4
Credit: /u/prawnsalad, @MattLicense
No directory listings.
php -S 127.0.0.1:8000Erlang
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