PHP ist eine Scriptsprache mit der dynamische Webseiten erstellt werden können. Auf allen unseren Linux-Servern kann .php ohne Mehrkosten benutzt werden.
ACHTUNG: Bei einigen Webserver-Produkten wie z.B. "Root-Servern" können die Angaben unten abweichen.
Die offizielle Webseite von PHP:
http://www.php.net
Das PHP Center:
http://www.php-center.de
PHP Anleitung;
SelfPHP
Versionen
Es stehen jeweils alle aktuellen PHP Version zur Auswahl.
Umgebung
Die erlaubten Maximalwerte unterscheiden sich je nach Webserver-Abo (Mikro / Mini / Profi).
PHP Wert | Mikro | Mini | Profi |
memory limit | 256M | 512M | 1024M (Einstellbar 256M, 512M, 1024M, 2048M) |
max execution time | 60 | 120 | 240 (Einstellbar 60,120, 240, 360, 720) |
max input time | 60 | 120 | 240 (Einstellbar 60,120, 240, 360, 720) |
post max size | 128M | 256M | 256M (Einstellbar 128M, 256M, 512M, 1024M) |
upload max filesize | 128M | 256M | 256M (Einstellbar 128M, 256M, 512M, 1024M) |
max_input_vars | 1000 | 1500 | 6000 |
Tipps und Tricks
Damit PHP-Code mit alten Funktionen (deprecated) noch läuft, müssen entsprechende Fehlermeldungen deaktiviert werden. Deaktivieren Sie die Fehlerausgabe daher in Ihren Scripts Z.B. in dem Sie error_reporting
auf "E_ALL & ~E_DEPRECATED & ~E_NOTICE
" stellen.
Wir empfehlen nur schon aus Sicherheitsgründen dringend nur aktuelle Software zu benutzen!
- Es sind sehr viele Erweiterungen (auch GD) installiert. Eine Liste erhalten Sie mit phpinfo() oder im Webserver-Portal.
- Folgende Funktionen sind nicht erlaubt:
dl
,shell_exec
,proc_open
,posix_mkfifo
,passthru
,exec
,system,
disk_free_space
,put_env
,popen
,pcntl_exec
,proc_close
,proc_get_status
,proc_nice
,proc_terminate
,disk_total_space
- Der ioncube loader ist installiert und kann benutzt werden.
allow_call_time_pass_reference
ist off oder je nach PHP Version nicht mehr unterstützt.- PHP-Kennzeichen: Auch das Kürzel <? ist erlaubt. Aber dies ist nicht empfohlen und wird zukünftig nicht mehr unterstützt.
Fehleranzeige
Bei Webserver "Profi" kann man die Anzeige von PHP-Fehlern in der Webadministration Plesk aktivieren.
Bei allen anderen Webservern kann man das in den PHP Scripts selber steuern.
Dazu folgenden Code hinzufügen:
<?php
// alle Fehler anzeigen
error_reporting(E_ALL);
ini_set('display_errors', 'On');
// Optional Fehler in Log-Datei schreiben (absolut oder relativ)
// ini_set('error_log', '/var/www/vhosts/meine-domain.ch/htdocs/php-fehler.log');
// ini_set('log_errors', 'On');
// Hier folgt das Script oder zum Testen hier einen Fehler einbauen
echo "Hier ein Testfehler:";
echo $unbekannteVariable;
?>
Falls man nichts sieht weil das Script grundsätzlich nicht funktioniert, kann man eine separate start.php Datei mit folgenden Inhalt erstellen und darin das effektive fehlerhafte Script aufrufen:
<?php
error_reporting(E_ALL);
ini_set("display_errors", 'On');
include("script-datei-mit-fehlern.php");
?>
Beachten
Nach Gebrauch sollten diese Fehleranzeigen unbedingt deaktiviert werden.
Sicherheit
open_basedir
wird bei virtuellen Webservern auf das Root des virtuellen Servers gesetzt. Dies ist ein Verzeichnis oberhalb des Document-Roots, also oberhalb von htdocs. Dies bewirkt dass man mit einem .php Script nur Dateien im eigenen Webspace bzw einem Verzeichnis darüber (z.B. für Logdateien) bearbeiten kann.- Bei normalen Homepages ist das
open_basedir
auf das aktuelle Verzeichnis (.) gesetzt, in dem das Script läuft. Dadurch kann ein .php Script nur Dateien im gleichen oder in Unterverzeichnissen bearbeiten. include
von anderen Webservern ist nicht erlaubt. Benutzen Sie statt dessen z.B.file_get_contents
.- Der File-Upload ist für alle virtuellen Server erlaubt.
- Bei normalen Homepages ist der File-Upload nicht erlaubt.
register_globals
ist deaktiviert.- Benützen Sie wenn immer möglich Hochkomma ' statt Anführungszeichen. Bereiche in Hochkomma werden von .php nicht ausgewertet und sind daher sicherer.