| Die Konfiguration der Programmiersprache PHP lässt sich auf mehreren Ebenen genau an die jeweilige Anwendung anpassen. | Neben einer fixen Grund-Konfiguration ist auch die Live-Änderung zur Ausführungs-Zeit möglich. |
PHP-Umgebung
|
Test von PHP, der Konfiguration und der Umgebung |
| Konfiguration | Eigene Methoden mit unterschiedlicher Reichweite |
| php.ini | Die PHP-Konfigurations-Datei |
| get_cfg_var() | Funktion liefert alle Einstellungen der Konfigurations-Datei |
| php_value | Individuelle Konfiguration für PHP als Apache-Modul |
| PHPRC | Individuelle Konfiguration für PHP als CGI-Programm |
| ini_get() | Funktion liefert die Konfiguration des laufenden Scripts |
| ini_set() | Funktion ändert die Konfiguration des laufenden Scripts |
| Verwandte Themen | Installation und Konfiguration von PHP auf Windows |
Konfiguration von PHP |
|
|
Die Konfiguration der Programmiersprache PHP kann auf mehreren
Ebenen mit unterschiedlicher Reichweite erfolgen. Das ist in der Praxis sehr angenehm, für AnfängerInnen jedoch zunächst verwirrend. In der Regel ist PHP jedoch unmittelbar nach Installation so konfiguriert, dass alle einfachen Script-Programme problemlos laufen. Die einfachste Methode, um umfassend Auskunft über die PHP Konfiguration zu erhalten, ist die Funktion phpinfo(INFO_CONFIGURATION) |
Das Verhalten von PHP lässt sich individuell steuern: ● Je nach Anwendungs-Gebiet der PHP-Programme (Webserver, Konsolen-Programm): ↓ Kapitel php.ini ● Individuell für jeden Kunden eines Web-Providers: ↓ Kapitel PHPRC ● Individuell für jedes einzelne PHP Script-Programm oder für einen Abschnitt innerhalb eines Programms: ↓ Kapitel ini_set |
php.ini |
|
Am eigenen (Server)-PCDie Text-Datei php.ini steuert die gesamte (Grund)-Konfiguration von PHP.Die Datei liegt normalerweise auf diesen oder ähnlichen Pfaden (Linux, Windows):
/etc/php.ini /etc/php5/apache2/php.ini C:\Programme\php\php.ini C:\WINDOWS\php.ini |
Diese Datei kann auf einer Webseite nicht direkt angezeigt werden, weil der Webserver auf dieses Verzeichnis keine Zugriffsrechte haben sollte. Der Pfad zur Konfigurationsdatei (am Webserver !) lässt sich mit der PHP-Funktion get_cfg_var ausgeben. Live-
get_cfg_var('cfg_file_path') = /etc/php5/apache2/php.ini
|
Am Webserver des ProvidersFalls sie keinen Zugang zu einem Webserver haben, besorgen sie sich eine Download-Version von php.ini von der PHP-Homepage:Die PHP-Installation enthält ein gut kommentiertes Muster der Datei (meist unter dem Namen php.ini-dist ) |
Auch als Kunde eines Web-Providers haben sie die Möglichkeit, PHP in weiten Grenzen zu konfigurieren. Der Provider hat zu diesem Zweck eine eigene → Umgebungs-Variable PHPRC definiert. Sie laden eine private Version der Datei php.ini an den von PHPRC angegbenen Pfad in ihrem Web-Verzeichnis. |
|
♣
Tipp: Erzeugen sie vor jeder Änderung der Konfiguration eine
Sicherungskopie, z.B. php_ini.bak ♣ Überschreiben oder löschen sie niemals die Original-Einstellung, sondern schalten sie diese mit einem ; Strichpunkt (Kommentar-Zeichen) am Zeilen-Beginn ab und schreiben sie ihre geänderte Einstellung in die nächste Zeile. |
Die Original Konfigurationsdatei ist gut kommentiert. Zusätzliche Informationen finden sie im Internet. ♣ Schalten sie am eigenen PC oder Server alle Variablen ab, vor denen (deprecated, auslaufend) im Kommentar gewarnt wird. Am Server ihres Providers sind diese Variablen ebenfalls abgeschaltet, ab PHP Version 6 nicht mehr verfügbar ! |
PHP-Funktion get_cfg_var() zeigt die Einstellung der Konfiguration |
|
|
Diese PHP-Funktion liefert sämtliche einstellbare Variablen der
Datei php.ini und damit die Standard-Konfiguration
für alle PHP-Scripts auf diesem Server. ► Ein leeres Resultat bedeutet normalerweise 'abgeschaltet'. Wenn zahlreiche Resultate scheinbar fehlen, dann sind vermutlich (in der Datei php.ini) die Zugangsrechte dafür eingeschränkt worden. ♦ Details zum Thema PHP-Fehler. |
Syntax (Grammatik): get_cfg_var($name); Sowohl der Name der Variablen als auch ihr aktueller Wert werden als String übergeben. Eine genaue Beschreibung der einzelnen Variablen, ihrer Einstellung und ihrer Wirkung finden sie im Internet, auf der PHP-Homepage sowie in der ausgezeichnet kommentierten Datei selbst. Nachfolgend einige ausgewählte Live-Beispiele: |
|
Sicherheit:
Hinweis: Die gesamte Option safe_mode ist
wahrscheinlich in PHP Version>=6 nicht mehr enthalten !
get_cfg_var('safe_mode') =
get_cfg_var('safe_mode_allowed_env_vars') = PHP_ get_cfg_var('safe_mode_protected_env_vars') = LD_LIBRARY_PATH get_cfg_var('disable_functions') = exec, shell_exec, shell, system, passthru, popen, pclose, proc_open, proc_nice, proc_close, phpinfo, show_source, symlink, escapeshellcmd, escapeshellarg, ini_restore get_cfg_var('disable_classes') = get_cfg_var('expose_php') = Pfade:
get_cfg_var('cfg_file_path') = /etc/php5/apache2/php.iniget_cfg_var('extension_dir') = get_cfg_var('error_log') = get_cfg_var('upload_tmp_dir') = |
|
|
URLs:
get_cfg_var('allow_url_fopen') = get_cfg_var('default_socket_timeout') = 60 |
Java:
get_cfg_var('java.class.path') = get_cfg_var('java.home') = |
|
Resourcen:
get_cfg_var('max_execution_time') = 30get_cfg_var('max_input_time') = 60 get_cfg_var('memory_limit') = 64M |
SQL:
get_cfg_var('sql.safe_mode') = get_cfg_var('mysql.allow_persistent') = 1 get_cfg_var('mysql.connect_timeout') = 60 |
|
Fehlerbehandlung:
(Details)
get_cfg_var('error_reporting') = 22519 get_cfg_var('display_errors') = 1 get_cfg_var('log_errors') = get_cfg_var('error_log') = get_cfg_var('ignore_repeated_errors') = get_cfg_var('track_errors') = |
Übergabe von Argumenten an PHP:
get_cfg_var('variables_order') = EGPCSget_cfg_var('register_globals') = get_cfg_var('register_argc_argv') = 1 get_cfg_var('magic_quotes_gpc') = get_cfg_var('default_mimetype') = text/html |
|
Dateien:
get_cfg_var('cgi.force_redirect') = get_cfg_var('file_uploads') = 1 get_cfg_var('upload_max_filesize') = 8M |
Session:
get_cfg_var('session.save_handler') = filesget_cfg_var('session.use_cookies') = 1 get_cfg_var('session.name') = PHPSESSID get_cfg_var('session.gc_maxlifetime') = 1440 get_cfg_var('session.cache_expire') = 180 |
|
Tipp: Bei der Einstellung (↑
Sicherheit) von safe_mode=On
oder safe_mode=1 ist der Datei-Zugriff mit Angabe
relativer Pfade verboten. Beispiele:
include('lib.php');
show_source('demo.php'); |
Verwenden sie für kritische Anweisungen (z.B.include(),
show-source(), ...prinzipiell nur absolute Pfade. Beispiel: show_source('/srv/www/htdocs/demo.php');
|
PHP-Funktion ini_get |
|
| Diese PHP-Funktion liefert die individuelle Konfiguration des laufenden PHP-Scripts. Da man unter bestimmten Bedingungen diese Einstellung ändern kann (↓ Funktion ini_set() ), kann sich das Ergebnis dieser Funktion von jenem der ↑ Funktion get_cfg_var() unterscheiden. |
Syntax (Grammatik): ini_get($name); Sowohl der Name der Variablen als auch ihr aktueller Wert werden als String übergeben. Die Namen sind die gleichen wie in der Datei php.ini und in der Funktion get_cfg_var() verwendet. |
|
Beispiel:
Die Ausführungszeit ('Rechenzeit') für ein PHP-Script ist zur
Sicherheit (u.a. gegen endlose Schleifen) begrenzt, meist auf 60 Sekunden.Das Beispiel zeigt Live die Änderung dieser Konfigurations-Variablen: Sie gilt temporär nur für dieses Script-Programm und ändert die globale Konfiguration von PHP nicht ! |
Live-
get_cfg_var('max_execution_time') = 30
ini_get('max_execution_time') = 30 ini_set('max_execution_time','33'); ini_get('max_execution_time') = 33 get_cfg_var('max_execution_time') = 30 |
PHP-Funktion ini_set |
|
Diese Funktion dient zur Änderung der Konfiguration (nur) für
ein einzelnes Script-Programm.Syntax (Grammatik)ini_set($name,$value);
Sowohl der Name der Variablen als auch ihr neuer Wert werden als String
übergeben.Ein Beispiel finden sie im Kapitel zur ↑ Funktion ini_get() Diese Funktion sollten sie nur in Ausnahmefällen verwenden. Viele Argumente sprechen dagegen: ● Fast jedes Problem dieser Art lässt sich wesentlich besser durch geschickte Programmierung lösen - Das hat meist auch noch den Vorteil größerer Sicherheit. Fehler in fremden Programmen kann man damit manchmal kompensieren - aber nicht beseitigen ! |
●
Wenn die Konfiguration am eigenen Server geändert werden muss, dann
erfolgt das besser (zentral, übersichtlich) durch Änderung in der
Konfigurations-Datei
php.ini ● Falls sie ihr Web bei einem Provider betreiben, dann sollte ihr eigener Webserver möglichst ähnlich konfiguriert sein, sonst laufen ihre Script-Programme nur lokal und nicht im Internet. In diesem Fall kommt die Konfiguration mit ↑ PHPRC in Betracht. ● Die Funktion ini_set() ist bei den meisten Providern abgeschaltet. Sie kann daher bestenfalls am eigenen Webserver verwendet werden. ● Die Wirkung der Funktion ini_set() ist auf ein einziges PHP Script-Programm begrenzt. |
|
Letzte Änderung dieser Seite: 2012-02-08 23:32:47
|