Wie kann ich mod_suphp zusammen mit Apache 2.2 verwenden?
May 5th, 2008 by matthias
- PHP-Scripts sollen mit mod_php funktionieren (statt als CGIs ausgefürt zu werden). Dazu braucht man
(unter Ubuntu 7.4): die symbolischen Links /etc/apache2/mods-enabled/php5.conf und
/etc/apache2/mods-enabled/php5.load und den Standard-Inhalt von /etc/apache2/mods-available/php5.conf:-
<IfModule mod_php5.c>
-
AddType application/x-httpd-php .php .phtml .php3
-
AddType application/x-httpd-php-source .phps
-
</IfModule>
Diese Zeilen sind nicht einmal erforderlich weil: in /etc/mime.types sind die Mime-Typen gelistet die in Apache 2.2 bekannt sind, darunter (zumindest auf einem Ubuntu 7.4 System) auch: »application/x-httpd-php phtml pht php«.
-
- Es ist nicht klar wie mod_suphp Scripts ausführen kann die nicht unter DocumentRoot liegen sondern mit mod_alias angebunden wurden. Hinweise:
- Alias
- ScriptAlias
- ScriptAliasMatch
- Options ExecCGI
- ScriptAliasMatch ^/jipakiza/administrator/?$ /home/path/index.php
- ScriptAliasMatch ^/jipakiza/?$ /home/path/index.php
- ScriptAliasMatch ^/jipakiza(.*) /home/path/homepagename.de$1
- Einfacher ist es, einen eigenen VirtualHost einzurichten: in /etc/apache2/ports.conf eine zusätzliche Listen-Direktive für einen zusätzlichen Port eintragen (z.B. 81); /etc/apache2/sites-available/default an einen Ort im selben Verzeichnis kopieren, entsprechend abändern; symbolischen Link auf die neue VirtualHost-Konfigurationsdatei von /etc/apache2/sites-enabled aus anlegen.
- mod_suphp als Handler für PHP-Dateien einrichten. Dazu schreibt man in /etc/apache2/mods-available/suphp.conf
»suPHP_AddHandler application/x-httpd-php«. Diesen Handler nehme man außerdem in /etc/suphp/suphp.conf auf sonst entsteht der Fehler »[error] [client 127.0.0.1] SecurityException in Application.cpp:437: Handler not found in configuration«. - Problem:
-
[error] [client 127.0.0.1] SoftException in Application.cpp:199: Script "[...]" resolving to
-
"[...]" not within configured docroot
Der Fehler tritt auch auf wenn man »DocumentRoot /« einstellt und dann eine PHP-Datei aufruft. Er tritt nur mit PHP-Dateien auf, ist also ein Fehler in mod_suphp. Der Fehler liegt daran dass nicht Apaches DocumentRoot sondern das von suphp gemeint ist, zu konfigurieren in /etc/suphp/suphp.conf . Siehe: www.mail-archive.com/suphp@lists.marsching.biz/msg00105.html . Am einfachsten könnte man den Fehler wohl verhindern indem man dort einstellt: »check_vhost_docroot=false«. Das funktionierte im vorliegenden Fall jedoch nicht, also wurde »docroot=/home/matthias« gesetzt (ein Pfad in dem sich alle PHP-Dateien befinden werden).
-
- Um Probleme mit Zugriffsrechten bei der Webentwicklung zu vermeiden setze man relaxte Sicherheitsoptionen in /etc/suphp/suphp.conf :
-
; Security options
-
allow_file_group_writeable=true
-
allow_file_others_writeable=true
-
allow_directory_group_writeable=true
-
allow_directory_others_writeable=true
-
Posted in Apache Webserver |