Zurück   HTML Forum > Server > Webserver

Webserver Technische Hilfe und Tutorials gibt es im Webserver Forum.

Neues Thema erstellen  Antwort
 
Themen-Optionen Thema durchsuchen
Alt 31.03.2009, 08:12   #1
Administrator
 
Benutzerbild von developr
 
Registriert seit: 11.11.2008
Ort: Bremen
Beiträge: 333
developr eine Nachricht über ICQ schicken developr eine Nachricht über MSN schicken
Standard Apache2 Worker mit PHP5 fcgi und SuExec

Ich hatte am vergangenen Wochenende versucht, auf meinen 2. Server (Debian Lenny) PHP5 als fcgi mit SuExec einzurichten und ich muss gestehen, es hat eine Weile gedauert. Um euch viel Zeit zu sparen, gebe ich hier meine Erfahrungen weiter.

  1. Wie immer, loggen wir uns auf unserern Root per SSH ein und statten uns mit Root-Rechten aus.
    Nun laden wir uns einige Pakete. Sollte der Apache mpm-prefork vorhanden sein, wird dieser vorher automatisch entfernt.
    Code:
    apt-get install libapache2-mod-fcgid php5-cgi apache2-common apache2-mpm-worker apache2-suexec
  2. Anschließend aktivieren wir unsere Module fcgi und suexec.
    Code:
    a2enmod fcgid
    a2enmod suexec
  3. Nun brauchen wir einen Account bzw. einen User, unter desses Rechten PHP5 in Zukunft läuft. Danach muss er noch der Gruppe www-data zugewiesen werden.
    Code:
    adduser example
    usermod -G www-data example
  4. Verzeichnisse anlegen
    Nun legen wir die Verzeichnisse für den User an und weisen ihm die Rechte zu:
    Code:
    mkdir /var/www/example.de
    chown root:example /var/www/example.de
    chmod 750 /var/www/example.de
    mkdir /var/www/example.de/conf
    mkdir /var/www/example.de/www
    mkdir /var/www/example.de/logs
    mkdir /var/www/example.de/tmp
    mkdir /var/www/example.de/php5
    chown example:example /var/www/example.de/*
    chmod 750 /var/www/example.de/*
  5. php.ini anpassen
    Nun kopieren wir die php.ini in das Userverzeichnis.
    Code:
    cp /etc/php5/cgi/php.ini /var/www/example.de/conf
  6. Anschließend sorgen wir noch für ein bisschen Sicherheit und editieren die php.ini (optional). Diese Einstellungen sind dafür da, um den Zugriff des PHP Prozesses auf das Userverzeichnis zu beschränken und die Sessiondaten, sowie die Uploads in ein eigenes temporäres Verzeichnis zu speichern.
    Code:
    mcedit /var/www/example.de/conf/php.ini
    Code:
    open_basedir = /var/www/example.de/www/:/var/www/example.de/tmp/
    upload_tmp_dir = /var/www/example.de/tmp
    session.save_path = /var/www/example.de/tmp
  7. fcgi Starter erstellen
    Code:
    cat > /var/www/example.de/php5/php-fcgi-starter << "EOF"
    #!/bin/sh
    PHPRC="/var/www/example.de/conf/"
    export PHPRC
    exec /usr/bin/php5-cgi
    EOF
  8. Nun müssen wir wieder mal Benutzer- und Zugriffsrechte setzen.
    Code:
    chown example:example /var/www/example.de/php5/php-fcgi-starter
    chmod 750 /var/www/example.de/php5/php-fcgi-starter
  9. Nun setzen wir einen Schreibschutz auf unseren Starter, damit sie nicht mehr verändert werden kann. Um dies Rückgängig zu machen, muss statt dem Parameter +i, -i verwendet werden.
    chattr +i -V /var/www/example.de/php5/php-fcgi-starter
  10. Vhost anlegen
    Code:
    cat > /etc/apache2/sites-available/example.de << "EOF"
    <VirtualHost *>
        ServerAdmin [email protected]
        ServerName example.de
        SuexecUserGroup example example
        AddHandler fcgid-script .php
        DocumentRoot "/var/www/example.de/www"
        DirectoryIndex index.htm index.html index.php
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory "/var/www/example.de/www">
        Options Indexes MultiViews FollowSymLinks +ExecCGI
        FCGIWrapper /var/www/example.de/php5/php-fcgi-starter .php
        Order allow,deny
        allow from all
    </Directory>
    ErrorLog /var/www/example.de/logs/error.log
    LogLevel warn
    CustomLog /var/www/example.de/logs/access.log combined
    ServerSignature On
    </VirtualHost>
    EOF
  11. Nun muss der Vhost noch aktiviert werden:
    Code:
    a2ensite example.de
  12. Apache neu starten nicht vergessen ;-).
    /etc/init.d/apache2 restart
Herzlichen Glückwunsch.
developr ist offline   Mit Zitat antworten
Alt 30.04.2009, 21:06   #2
Neuer Benutzer
 
Registriert seit: 30.04.2009
Beiträge: 2
Standard AW: Apache2 Worker mit PHP5 fcgi und SuExec

Hallo developr,
vielen dank für deine super Anleitung.

Ich bin Schritt für Schritt genau deiner Anleitung gefolgt, jedoch stoße ich auf das Problem,
das die Dateien im VHost (im Beispiel example.de/www) nicht aufgerufen werden.
Im Log (/var/log/apache2/error.log) finde ich den Eintrag "(13)Permission denied".

Mittlerweile habe ich schon soviel ausprobiert, das ich nicht mehr weiter weiß.
Den VHOST rufe ich im Browser doch über http://DOMAIN/example/www auf, oder?


Was mache ich verkehrt?


vielen Dank

PS: Die einzige Veränderung die ich entgegen deiner Anleitung gemacht habe ist, das ich in der
VHOST-Datei die ServerName-Direktive auf den Namen meiner Domain geändert habe.
Moestchen ist offline   Mit Zitat antworten
Alt 01.05.2009, 18:14   #3
Administrator
 
Benutzerbild von developr
 
Registriert seit: 11.11.2008
Ort: Bremen
Beiträge: 333
developr eine Nachricht über ICQ schicken developr eine Nachricht über MSN schicken
Standard AW: Apache2 Worker mit PHP5 fcgi und SuExec

Wie schaut denn der Inhalt deiner vHost Datei aus ?
developr ist offline   Mit Zitat antworten
Alt 01.05.2009, 18:50   #4
Neuer Benutzer
 
Registriert seit: 30.04.2009
Beiträge: 2
Standard AW: Apache2 Worker mit PHP5 fcgi und SuExec

Genauso, wie deine oben beschriebene VHOST-Datei.

Einzige Ausnahme, das ich
Code:
ServerName sub.domain.de
(mein Domainnamen bzw. Subdomain).

Die Pfade hab ich alle entsprechend deiner Anleitung gelassen, weil ich das Vorgehen
erst nachvollziehen wollte (in einer Test-VM) und dann, wenn alles funktioniert,
mit "richtigen" Benutzernamen und Pfaden erstellen wollt.

Das seltsame ist bspw. auch, das ich keine /var/log/apache2/suexec.log bei mir vorfinde!

Viele Grüße
Moestchen ist offline   Mit Zitat antworten
Alt 01.05.2009, 19:34   #5
Administrator
 
Benutzerbild von developr
 
Registriert seit: 11.11.2008
Ort: Bremen
Beiträge: 333
developr eine Nachricht über ICQ schicken developr eine Nachricht über MSN schicken
Standard AW: Apache2 Worker mit PHP5 fcgi und SuExec

Ist das Modul suexec denn vorhanden und aktiviert?
Schau mal unter /etc/apache2/enable-modules/ nach.
developr ist offline   Mit Zitat antworten
Neues Thema erstellen  Antwort

Stichworte
apache, apache2, fcgi, php5, suexec, worker
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.