Zum Inhalt springen

Forum

PHPWelt.net Blog - Ein weiteres tolles WordPress-Blog


WP-Super Cache und Lighttpd

Da .htaccess Dateien unter Lighttpd nicht funktionieren, war bisher an die verwendung von wp-super cache nicht zu denken.

Hier stehts wie es geht: http://www.thedomz.com/index.php/2008/11/15/getting-wp-super-cache-to-work-with-lighttpd/


Apache optimieren

Wenn der Apache zuviel Arbeitsspeicher frist ist es unabdingbar. Anfangen kann man mit der Datei server-tuning.conf .
Meine Konfiuartion auf einer VPS mit 128 Mb Arbeitsspeicher. Es kamen zwar ab und zu QoS Meldungen, aber die Reaktionszeit war 1a:

<IfModule prefork.c>
    # number of server processes to start
     StartServers 5
    # minimum number of server processes which are kept spare
     MinSpareServers 10
    # maximum number of server processes which are kept spare
    MaxSpareServers      25
    # highest possible MaxClients setting for the lifetime of the Apache process.
     ServerLimit 150
    # maximum number of server processes allowed to start
     MaxClients 100
    # maximum number of requests a server process serves
    MaxRequestsPerChild  0
</IfModule>

Um die Arbeitspeicherauslastung zu verringern kann man auch ein paar ungenutzte Module deaktivern:

vi /etc/sysconfig/apache2

In der Zeile “APACHE_MODULES=…” alle nicht benötigten Module rausnehmen

Infos über die Module: Apache 2.2 bzw. Apache 2.0

Alternativ: Lighttpd installieren, das eine menge Resourcen, ist aber umständlicher zu konfigurieren da u.a. keine .htaccess gibt.


Wie kann ich meinen Server absichern?

Ein Webserver sendet von Haus aus viele Informationen mit um sich zu identifizieren. Dem normalen Webseiten besucher nützen die Zusatzinformationen recht wenig. Sie werden eigentlich nur für Statistikzwecke verwendet. Eigentlich.. uneigentlich kann ein angreifer so verwundbare Systeme erkennen. So sendet der Server z.B. folgendes: “Apache/1.3.27 (Linux/SuSE) PHP/4.3.1″ Ist nun im Apache oder PHP dieser Version ein Fehler, ist es für den Angreifer einleichtes. Um es potentiellen Angreifern etwas zu erschweren kann man die mitgesanten Informationen etwas beschneiden.
Apache
In der http.conf den Eintrag “ServerToken Prod” editieren/erstellen.
Lighttpd
in der lighttpd.conf den Eintrag server.tag editieren/erstellen.
PHP
Bei PHP lässt sich die Ausgabe nur unterdrücken und leider nicht modifizuiern. Editiere/erstelle dazu in der php.ini den Eintrag expose_php und setze in auf off.

Sonstige
Nicht nur der Webserver “verrät” potentielle Sicherheitslücken, sondern auch die FTP-Software ist gesprächig:
vsFTPD
In der vsftpd.conf den Eintrag ftpd_banner editieren/erstellen.


Lighttpd auf Debian Etch installieren

Wer sich über den Speicherhunger vom Apachen ärgert wird um Lighttpd nicht herumkommen. Mit Apache hatte ich andauert Qos Meldungen, trotz Stunden langen optimierungen. Ich hab denn nach “Alternative zu Apache” gegooglet und bin auf Lighttpd gestoßen.
Installiert wird er via:

apt-get install lighttpd

die Hauptkonfigurationsdatei befindet sich nach der Installation unter

/etc/lighttpd/lighttpd.conf

Dort kann man nahezu alle möglichen Konfigurationen vornehmen. Allerdings hat der Lighttpd ein Manko was mich persönlich sehr ärgert, er unterstützt kein .htaccess . Und wenn etwas geändert wurde z.B. an einer .htusers dann muss der Lighttpd immer neugestartet werden. Vieleicht resultiert daher ein großer Geschwindigkeitsvorteil?


HTTP-Statuscodes

Da ich die HTTP-Statuscodes nun zum, x-mal ewig gesucht habe und sie immer wieder benötige…

<?php
   header( 'HTTP/1.1 404 Not Found' );
   header( 'Status: 404 Not Found' );
   header( 'Connection: close' );
   echo "404";
   exit;
?>

1xx Informational
100 Continue
101 Switching Protocols
2xx Successful
200 OK
201 Created
202 Accepted
203 Non-Authoritative Information
204 No Content
205 Reset Content
206 Partial Content
3xx Redirection
300 Multiple Choices
301 Moved Permanently
302 Found
303 See Other
304 Not Modified
305 Use Proxy
306 (Unused)
307 Temporary Redirect
4xx Error
400 Bad Request
401 Unauthorized
402 Payment Required
403 Forbidden
404 Not Found
405 Method Not Allowed
406 Not Acceptable
407 Proxy Authentication Required
408 Request Timeout
409 Conflict
410 Gone
411 Length Required
412 Precondition Failed
413 Request Entity Too Large
414 Request-URI Too Long
415 Unsupported Media Type
416 Requested Range Not Satisfiable
417 Expectation Failed
5xx Server Error
500 Internal Server Error
501 Not Implemented
502 Bad Gateway
503 Service Unavailable
504 Gateway Timeout
505 HTTP Version Not Supported


WordPress und lighttpd

Wer auf seinem Server lighttpd anstatt Apache installiert hat muss bei der installation von WordPress folgende änderung an der Konfigurationsdatei ( /etc/lighttpd/lighttpd.conf ) vornehmen:

url.rewrite = (
    "^/(wp-admin/|wp-content/|wp-includes/|wp-login\.php|xmlrpc\.php|robots\.txt|sitemap\.xml|wp-).*" => "$0",
    "^" => "index.php"
)

.