Als Alternative zum Apache-Webserver können Sie papaya CMS auch mit Lighttpd betreiben. Dazu sind folgende Einstellungen notwendig:
Aktivieren Sie alle notwendigen Module, insbesondere mod_rewrite und mod_fastcgi.
Aktivieren Sie PHP im Fastcgi-Modus.
Fügen Sie der Konfigurationsdatei die Rewrite-Direktiven für papaya CMS hinzu.
Im Gegensatz zu Apache kennt lighttpd keine
.htaccess-Dateien. Alle Konfigurationsoptionen
werden in einer zentralen Datei mit dem Namen gespeichert. Diese Datei
hat den Namen lighttpd.conf.
Module aktivieren
Öffnen Sie die Datei lighttpd.conf und
bearbeiten Sie die Option server.modules = (). Fügen Sie
ggf. die notwendigen Einträge mod_rewrite und
mod_fastcgi hinzu. Beachten Sie dabei die vorgegebene
Reihenfolge der Module, wie sie in der unten dargestellten Datei
abgebildet ist:
Beispiel 2.6. Module für lighttpd aktivieren
server.modules = (
"mod_rewrite",
"mod_redirect",
"mod_alias",
"mod_access",
"mod_cml",
"mod_trigger_b4_dl",
"mod_auth",
"mod_status",
"mod_setenv",
"mod_fastcgi",
"mod_proxy",
"mod_simple_vhost",
"mod_evhost",
"mod_userdir",
"mod_cgi",
"mod_compress",
"mod_ssi",
"mod_usertrack",
"mod_expire",
"mod_secdownload",
"mod_rrdtool",
"mod_accesslog"
)PHP im Fastcgi-Modus aktiveren
Um PHP im Fastcgi-Modus zu betreiben, müssen Sie die Option
fastcgi.server wie folgt konfigurieren:
Beispiel 2.7. Option fastcgi.server einstellen
#### fastcgi module
## read fastcgi.txt for more info
## for PHP don't forget to set cgi.fix_pathinfo = 1 in the php.ini
fastcgi.server = ( ".php" =>
( "localhost" =>
(
"socket" => "/tmp/php-fastcgi.socket",
"bin-path" => "/usr/local/bin/php"
)
)
)Rewrite-Direktiven in die Konfigurationsdatei einfügen
papaya CMS benötigt für den korrekten Betrieb unbedingt
Rewrite-Regeln, die Sie in die Option url.rewrite-once
eintragen müssen:
Beispiel 2.8. Rewrite-Regeln für papaya CMS
#### papaya-rewrites
url.rewrite-once = (
# admin pages
"^/?(?:sid[a-z]*(?:[a-zA-Z0-9,-]{32}|[a-zA-Z0-9,-]{40})/)?papaya/module\_([a-z\_]+)\.[a-z]{3,4}(?:\?(.+))?$" => "/papaya/module.php?p_module=$1&$2",
# pages
"^/?(?:sid[a-z]*(?:[a-zA-Z0-9,-]{32}|[a-zA-Z0-9,-]{40})/)?[a-zA-Z0-9_-]+(?:(?:\.[0-9]+)?\.[0-9]+)(?:(?:\.[a-z]{2,5})?\.[a-z]+)(?:(?:\.[0-9]+)?.preview)?(\?.+)?$" => "/index.php$1",
# index page
"^/?(?:sid[a-z]*(?:[a-zA-Z0-9,-]{32}|[a-zA-Z0-9,-]{40})/)?index(?:(?:\.[a-z]{2,5})?\.[a-z]+)(?:(?:\.[0-9]+)?.preview)?(\?.+)?$" => "/index.php$1",
# media files
"^/?(?:sid[a-z]*(?:[a-zA-Z0-9,-]{32}|[a-zA-Z0-9,-]{40})/)?[a-zA-Z0-9_-]+\.(?:media|thumb|download|popup|image)(?:\.(preview))?(?:(?:\.(?:[a-zA-Z0-9_]+))?(?:\.[a-zA-Z0-9_]+))(\?.+)?$" => "/index.php$1",
# sid only
"^/?(?:sid[a-z]*(?:[a-zA-Z0-9,-]{32}|[a-zA-Z0-9,-]{40}))(/.*)(\?.+)?$" => "$1$2"
)Zudem können Sie lighttpd mitteilen, dass papaya CMS das Handling für den HTTP-Fehlercode 404 übernimmt:
Beispiel 2.9. Error-Handling für 404-Fehler an papaya CMS delegieren
server.error-handler-404 = "/index.php"
