Einen Webserver in einem beliebigen Verzeichnis starten


von Marc

Achtung: Dieser Beitrag ist alt.
Es kann gut sein, dass seine Inhalte nicht mehr aktuell sind und es ist auch möglich, dass niemand mehr auf neue Kommentare antwortet.

Eine Sache, die ich neulich bei der Entwicklung der kleinen, feinen Website unserer Firma nützlich fand, war eine Bash-Funktion von Mathias, die auch schon seit geraumer Zeit in meinen dotfiles ihre Daseinsberechtigung hat:

# Start an HTTP server from a directory, optionally specifying the port
function server() {
    local port="${1:-8000}"
    sleep 1 && open "http://localhost:${port}/" &
    # Set the default Content-Type to `text/plain` instead of `application/octet-stream`
    # And serve everything as UTF-8 (although not technically correct, this doesn’t break anything for binary files)
    python -c $'import SimpleHTTPServer;\nmap = SimpleHTTPServer.SimpleHTTPRequestHandler.extensions_map;\nmap[""] = "text/plain";\nfor key, value in map.items():\n\tmap[key] = value + ";charset=UTF-8";\nSimpleHTTPServer.test();' "$port"
}

Damit kann man in einem beliebigen Verzeichnis durch Ausführen von server einen einfachen HTTP-Server starten und seine Seiten testen.

Für PHP-Nutzer steht seit PHP 5.4 auch ein eingebauter Server bereit, den nutze ich allerdings (leider) so gut wie nie:

# Start a PHP server from a directory, optionally specifying the port
# (Requires PHP 5.4.0+.)
function phpserver() {
    local port="${1:-4000}"
    local ip=$(ipconfig getifaddr en1)
    sleep 1 && open "http://${ip}:${port}/" &
    php -S "${ip}:${port}"
}

Dennoch: Praktische Sache für die Freunde der Kommandozeile!

Keine Kommentare Kommentare abonnieren

Es gibt noch keinen Kommentar hierzu. Du könntest der Erste sein!

Was meinst Du dazu?

Wenn Du Feedback, Fragen oder konstruktive Kritik zu diesem Beitrag hast, dann freue ich mich über Deinen Kommentar. Bleib aber höflich und beim Thema!