Zugriffssteuerung des Webservers mittels einer htaccess-Datei |
|
Vorab noch zwei Hinweise: Betreibt man einen eigenen Apache-Webserver auf dem lokalen Rechner muß man die Verwendung von htaccess-Dateien erst aktivieren, denn standardmäßig nach der Installation ist der Server so konfiguriert, daß er selbige ignoriert. Unter Debian ändert man in der Datei /etc/apache2/sites-available/default folgende Einstellung: |
|
|
|
Anschließend startet man den Server mit /etc/init.d/apache2 restart neu. Sollte da eine Meldung auftauchen, daß der Domain-Name nicht sicher bestimmt werden konnte, kann man selbigen in der Datei /etc/apache2/httpd.conf mittels ServerName localhost eintragen. Bei einem anschließendem Neustart des Servers ist die Meldung verschwunden. Und noch ein Hinweis für Joomla: Joomla benötigt Schreibrechte im Apache-Verzeichnis /var/www wenn man z.B. Templates bearbeitet. Der Standard-User und die Standard-Gruppe für Apache ist www-data, daher sollten alle Dateien auf dem Webspace diesem User und der Gruppe mittels chown -R www-data:www-data zugeordnet werden. |
|
PHP-Version anzeigen lassen Welche php-Version standardmäßig auf dem Webspace verwendet wird, kann man sich mittels einer Webseite anzeigen lassen. Welchen Namen das html/php Dokument hat, spielt keine Rolle, da man es sowieso über die url (z.B., http://localhost/test.php) im Browser aufrufen muß. Die Datei muß den php-Befehl |
|
|
|
enthalten. Bei einem Aufruf wird die verwendete php-Version, sowie die Umgebungsvariabeln und Einstellungen angezeigt. Ein Hinweis: wird durch den Aufruf der Seite das Download-Fenster aufgerufen, anstatt der php-Versions-Seite, ist php nicht installiert und man sollte das unter Debian mittels # apt-get install php5 nachholen. |
|
PHP-Version auswählen
Beim Aufruf unserer Testseite kann es nun vorkommen, daß dort eine veraltete php-Version wie z.B. PHP Version 4 angezeigt wird. Manche Provider wie z.B. 1und1 bieten alle PHP-Versionen an, also 4, 5 und 6 und überlassen es dem Anwender selbst, welche php-Version er verwenden will. Dafür gibt es zwei Möglichkeiten. Entweder benennt man alle seine html/php-Dokumente mit der entsprechenden Endung, z.B. .php5 für PHP Version 5, oder man stellt die Verwendung global für alle Dateien mit der Endung .php mittels der .htaccess-Datei ein. Dazu legt man die .htaccess-Datei im root-Verzeichnis an. Für z.B. php5 muß sie folgenden Inhalt haben: |
|
|
|
Die in der .htaccess enthaltenen Informationen vererben sich in alle Unterverzeichnisse. Bei 1und1 ist das mittlerweile nicht mehr nötig, da man die gewünschte PHP-Version im Control-Center einstellen kann. Siehe hierzu auch:
http://hilfe-center.1und1.de/ |
|
Zugriffs-Einstellungen Mittels der .htaccess-Datei ist es auch möglich, den Zugriff auf bestimmte Verzeichnisse zu verwehren oder diese mit einem Paßwort zu versehen, so daß nur authorisierte Benutzer Zugang zu diesem Verzeichnis erlangen. Für eine komplette Sperrung legt man in dem betreffendem Verzeichnis die htaccess-Datei mit folgendem Inhalt an: |
|
|
|
Zusätzlich könnte man noch eine index.php anlegen mit dem Hinweis <h1> Access denied </h1>, welche dann bei einem Zugriff auf das Verzeichnis angezeigt wird. |
|
Für einen Paßwort-Schutz sieht die htaccess-Datei z.B. so aus: | |
|
|
Für eine korrekte Authentifizierungs-Datei benötigt man mindestens vier Angaben: AuthType, AuthName, AuthUserFile und eine Require Anweisung. Die zweite Zeile definiert die Authentifizierungs-Type. Bei Basic werden die Authentifizierungs-Daten unverschlüsselt übertragen, was natürlich eine unsichere Methode darstellt. Leider wird die Alternative Digest, welches Paßwörter verschlüsselt überträgt, nicht von allen Browsern unterstützt, daher bleibt oftmals nur Basic. AuthUserFile legt das Passwort-File für die Authentifizierung fest. Der Pfad zum File sollte eine absolute Angabe sein, was aber in den meisten Fällen nicht zu realisieren ist, da man auf andere Verzeichnisse als sein eigenes beim Webhosting-Provider keinen Zugriff hat. Genau aus diesem Grund kann man auch nicht die sicherere Methode wählen und die Passwort-Datei in einem anderem Verzeichnis als dem eigenem Webspace speichern. Require user legt nun die Benutzer fest, welche sich authentifizieren können. Diese müssen nun auch in der Datei .htpasswd eingetragen werden. Unter Debian gibt es dafür den Befehl htpasswd, welcher die Eintragung automatisch erledigt. Mittels # htpasswd -c .htpasswd udo wird die Datei .htpasswd angelegt und nach dem Passwort für den User udo gefragt. Selbiges wird dann verschlüsselt in der Datei hinterlegt. |
|
Einstellungen für PHP mittels php.ini Möchte man Einstellungen für PHP vornehmen, legt man dazu in dem Verzeichnis in dem sich das betreffende php-Skript befindet die Datei php.ini an. In selbige kann man z.B. Variablen definieren, wie z.B.: |
|
|
|
Abschließend ein Hinweis: Die Einstellungen der php.ini vererben sich nicht in die Unterverzeichnisse, sondern müssen für jedes Verzeichnis separat erstellt werden. | |
Zurück zur Auswahl | |