Problemlösung: PHP- Fastcgi und HTTP-Auth

Aug 29, 2009 Author administrator

Ich hatte festgestellt , dass wenn PHP über CGI oder wie bei meinem Hoster über Fastcgi läuft die HTTP -Auth Funktionen nicht laufen (der Passwort-Dialog erscheint immer wieder).

Google lieferte mir Vorschläge wie ModfastCGI patchen oder FastCGI mit Parametern starten . Dies ist bei meinen Hoster nicht möglich , da ich keine Rootrechte hab.

Mit folgenden Anpassungen läuft es:

Datei .htaccess :


RewriteEngine on
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]

Am Anfang der PHP Datei muss folgendes stehen:

// split the user/pass parts
list($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']) = explode(':', base64_decode(substr($_SERVER['Authorization'], 6)));

Hier eine Beispiel Testanwendung:

< ?php
// split the user/pass parts
list($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']) = explode(':', base64_decode(substr($_SERVER['Authorization'], 6)));

// open a user/pass prompt
if (!isset($_SERVER['Authorization'])) {
   header('WWW-Authenticate: Basic realm="My Realm"');
   header('HTTP/1.0 401 Unauthorized');
   echo 'Abrechen gedrückt ';

   exit;
 } else {
   echo "

Hallo, ".$_SERVER['PHP_AUTH_USER'];
   echo "

Dein Password: 

".$_SERVER['PHP_AUTH_PW'];
 }
?>

Apache Virtueller Host

Jun 3, 2006 Author administrator

Wenn man auf einer IP-Adresse verschiedene Domains / Subdomains einrichten will geht mal folgendermassen vor.

Erstmal sollten die DNS Einträge  auf den Server verweisen.

Dann richten wir Apache ein:

Dazu editieren wir die Datei /etc/apache/httpd.conf und fügen folgendes ein:

###############################################

NameVirtualHost *:80
NameVirtualHost *:443 #nur wenn ssl aktiv ist

ServerAdmin email@adesse.de
ServerName meine.domain.de
ServerAlias meine2.domain.de # Weitere aliase die den gleichen Inhalt bringen möglich

DocumentRoot /verzeichnis/wo/daten/auf/server/liegen
DirectoryIndex index.php index.html index.htm

SuexecUserGroup user user # wenn Scripte unter anderen User laufen sollen

Options FollowSymLinks
AllowOverride None

Options FollowSymLinks
AllowOverride AuthConfig
Order allow,deny
allow from all

ScriptAlias /cgi-bin/ /verzeichnis/wo/daten/auf/server/liegen/cgi-bin/

AllowOverride None
Options +ExecCGI -MultiViews -Indexes
Order allow,deny
Allow from all

ErrorLog /Pfad/zum/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog /pfad/zum/access.log combined
ServerSignature On

Alias /icons/ “/usr/share/apache2/icons/”

Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all

###################################################

Für jede Weitere Domain machen wir das gleiche  .

Apache Virtualhost mit eigenen Logfiles

Apr 4, 2006 Author administrator

Normalerweise schreibt Apache alle Zugriffe  in die Datei access.log . Wenn man mehrere Virtual Hosts auf seinen Server hat , ist es schwer zuzuordnen auf welchem der Zugriff erfolgt. Daher ist es besser Verschiedene Access.log Dateien zu haben.
Damit man für jeden Virtualhost eine eigene Logdatei hat , passt man die httpd.conf wie in folgenden  Beispiel an:

DocumentRoot “/var/srv/www/server.de”
ServerName www.server.de
ServerAdmin webmaster@server.de
ErrorLog /var/log/apache/server.de/error_log
#TransferLog /var/log/apache/server.de/access_log
CustomLog /var/log/apache/server.de/access_log “%h %l %u %t \”%r\” %>s %b \”%{Referer}i\” \”%{User-agent}i\”"

apache auf neue URL umleiten mit PHP

Mrz 28, 2006 Author administrator

Hat man die Verzeichnistrktur auf seinem Server geändert , kann man mit Hilfe folgendes PHp-Script auf die neue neue seite umleiten. Man legt ihn an der alten Url ab:

apache: .htaccess bestimmte IP-Adressen blocken.

Mrz 27, 2006 Author administrator

Hat man eine Störenfried mit fester IP-Adresse kann man ihm auf folgende weise den Zugang verwehren .

In die .htaccess Datei oder der httpd.conf folgenden Eintrag :

Order deny,allow
Deny from 15.5.5.5
oder wenn man alle IPs aus dem Bereich  15.5.5.x blockieren will
Order deny,allow
Deny from 15.5.5

Apache .htaccess Modrewrite bestimmte Useragents ausperren

Mrz 18, 2006 Author administrator

Man ertellt in das Verzeichnis eine Datei namens htaccess mit folgenden Inhalt :

#######################

RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} ^Wget [OR]
RewriteCond %{HTTP_USER_AGENT} ^curl
RewriteRule ^.* – [F]

#############

nun können wget und curl auf die Seite nicht mehr zugreifen.

apache: .htaccess deaktivieren

Mrz 16, 2006 Author administrator

Wenn in der httpd.conf


AllowOverride None

eingetragen ist, werden alle .htaccess Dateien deaktiviert.

Einen Webdavserver mit Apache einrichten.

Mrz 11, 2006 Author administrator

Als erstes installieren wir Apache2 inclusiv den Modulen mod_dav und mod_dav_fs

Wir erstellen die Verszeichnisse /var/dav und /var/dav/mydavserver mit

mkdir -p /var/dav/mydavserver

Wir richten Benutzernamen und Passwort ein:

htpasswd -c /var/dav/.davpasswd benutzername

Wir ertstellen eine Datei namens mod_conf.conf ins /verzeichnis /etc/apache mit folgenden Inhalt:
###################################

LoadModule dav_module modules/mod_dav.so

LoadModule dav_fs_module modules/mod_dav_fs.so

Alias /mydavserver /var/dav/mydavserver
DavMinTimeout 600

Options None
Dav On
Order allow,deny
Allow from all

AuthType Basic
AuthName “WebDAV Restricted Repository”
AuthUserFile /var/dav/.davpasswd
Require valid-user
# Location of the WebDAV lock database.
DavLockDB /var/lib/dav/lockdb
################ENDE mod_dav.conf ##########

in die Datei /etc/apache/httpd.conf

fügen wie folgende zeile ein:

include /etc/apache/mod_dav.conf

nun starten wir apache neu :

apachectl restart

5 Besucher online
0 Gäste, 5 Bots, 0 Mitglied(er)
Meiste Besucher heute: 6 um/am 04:53 pm UTC
Diesen Monat: 12 um/am 05-19-2012 08:29 am UTC
Dieses Jahr: 52 um/am 01-22-2012 04:50 am UTC
Jederzeit: 52 um/am 01-22-2012 04:50 am UTC