PHP.INI-Datei-Konfiguration: Ein Leitfaden für Anfänger

Hallo da draußen, zukünftige PHP-Zauberer! Heute begeben wir uns auf eine aufregende Reise in die Welt der PHP-Konfiguration. Keine Sorge, wenn du noch nie eine Zeile Code geschrieben hast - ich werde dein freundlicher Guide durch dieses Abenteuer sein. Am Ende dieses Tutorials wirst du PHP wie ein Profi konfigurieren können!

PHP.INI File Configuration

Was ist PHP.INI?

Bevor wir eintauchen, lassen Sie uns darüber sprechen, was PHP.INI eigentlich ist. Stell dir vor, du richtest ein neues Smartphone ein. Du würdest wahrscheinlich einige Einstellungen anpassen wollen, damit es genau nach deinem Geschmack funktioniert, oder? PHP.INI ist wie das Einstellungsmenü für PHP. Es ist eine Konfigurationsdatei, die PHP anweist, wie es sich verhalten soll.

Geladene Konfigurationsdatei

Zuerst einmal, lassen wir herausfinden, welche PHP.INI-Datei dein System tatsächlich verwendet. PHP kann abhängig von seiner Konfiguration verschiedene Konfigurationsdateien verwenden. Hier ist eine einfache Möglichkeit, dies zu überprüfen:

<?php
phpinfo();
?>

Speichere dies als PHP-Datei (nennen wir sie info.php) und führe sie in deinem Webbrowser aus. Such nach dem Eintrag "Loaded Configuration File". Das ist deine aktive PHP.INI-Datei!

Häufige PHP.INI-Einstellungen

Nun, lassen uns einige der wichtigsten Einstellungen in PHP.INI erkunden. Ich werde erklären, was jede von ihnen macht und dir Beispiele geben, wie man sie verwendet.

short_open_tag = Off

Diese Einstellung legt fest, ob PHP die Kurzform des PHP-Öffnungszeichens (<?) zulassen soll. Wenn sie ausgeschaltet ist, musst du das vollständige PHP-Öffnungszeichen (<?php) verwenden.

<?php
echo "Hallo, Welt!";
?>

Mit short_open_tag = On könntest du schreiben:

<? echo "Hallo, Welt!"; ?>

Es wird jedoch generell empfohlen, es ausgeschaltet zu lassen für bessere Kompatibilität.

safe_mode = Off

Der sichere Modus war eine Sicherheitsfunktion in älteren PHP-Versionen. Er ist jetzt veraltet und ab PHP 5.4.0 entfernt. Wenn du eine moderne PHP-Version verwendest, wirst du diese Einstellung nicht sehen.

disable_functions = [funktion1, funktion2...]

Dies ist eine mächtige Sicherheitsfunktion. Sie ermöglicht es dir, spezifische PHP-Funktionen zu deaktivieren, die du als riskant erachtest. Zum Beispiel:

disable_functions = exec,passthru,shell_exec,system

Das würde verhindern, dass PHP Systembefehle ausführt, was ein Sicherheitsrisiko sein könnte.

max_execution_time = 30

Dies setzt die maximale Zeit in Sekunden, die ein Skript ausführen darf, bevor es beendet wird. Es ist wie ein Timer für deine Skripte.

<?php
// Dieses Skript wird maximal 30 Sekunden lang ausgeführt
for ($i = 0; $i < 1000000; $i++) {
echo $i . "<br>";
}
?>

error_reporting = E_ALL & ~E_NOTICE

Diese Einstellung kontrolliert, welche Fehler gemeldet werden. E_ALL bedeutet, alle Fehler zu melden, und ~E_NOTICE bedeutet, außer Notices.

<?php
// Mit E_ALL & ~E_NOTICE wird dies keinen Fehler anzeigen
echo $undefinedVariable;
?>

register_globals = Off

Dies ist eine alte und unsichere Funktion. Sie wurde veraltet und ab PHP 5.4.0 entfernt. Halte sie immer in älteren Versionen ausgeschaltet.

magic_quotes_gpc = On

Diese Einstellung escaped automatisch Eingabedaten, um sie vor SQL-Injektionen sicher zu machen. Sie wurde jedoch veraltet und ab PHP 5.4.0 entfernt. In modernem PHP solltest du stattdessen Prepared Statements verwenden.

file_uploads = [on/off]

Dies kontrolliert, ob Datei-Uploads erlaubt sind.

<?php
if ($_FILES) {
$uploaddir = '/var/www/uploads/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
echo "Datei ist gültig und wurde erfolgreich hochgeladen.\n";
} else {
echo "Upload fehlgeschlagen.\n";
}
}
?>

session.save-handler = files

Diese Einstellung bestimmt, wie Sitzungsdaten gespeichert werden. Die Voreinstellung ist 'files', was bedeutet, dass Sitzungsdaten in Dateien auf dem Server gespeichert werden.

<?php
session_start();
$_SESSION['user'] = 'John Doe';
echo "Sitzungsdaten gespeichert!";
?>

ignore_user_abort = [On/Off]

Dies bestimmt, ob ein Skript weiterlaufen soll, nachdem der Benutzer die Verbindung geschlossen hat.

<?php
ignore_user_abort(true);
set_time_limit(0);

// Dieses Skript wird weiterlaufen, selbst wenn der Benutzer den Browser schließt
while (true) {
file_put_contents('log.txt', date('Y-m-d H:i:s') . "\n", FILE_APPEND);
sleep(1);
}
?>

MySQL-Einstellungen

PHP.INI enthält auch Einstellungen für MySQL-Verbindungen:

Einstellung Beschreibung Beispiel
mysql.default_host Standard-MySQL-Server mysql.default_host = localhost
mysql.default_user Standard-MySQL-Benutzername mysql.default_user = root
mysql.default_password Standard-MySQL-Passwort mysql.default_password = password123

Denke daran, es ist generell besser, diese in deinem Skript而不是 in der PHP.INI zu setzen, aus Sicherheitsgründen.

<?php
$conn = mysqli_connect('localhost', 'root', 'password123');
if (!$conn) {
die("Verbindung fehlgeschlagen: " . mysqli_connect_error());
}
echo "Erfolgreich verbunden";
?>

Und das war's, Leute! Du hast gerade deine ersten Schritte in die Welt der PHP-Konfiguration unternommen. Denke daran, dass jede dieser Einstellungen erheblichen Einfluss darauf hat, wie deine PHP-Skripte sich verhalten, also verwende sie weise. Während du deine Reise mit PHP fortsetzt, wirst du immer vertrauter mit diesen Einstellungen und deren Anwendung werden.

Frohes Coden und möge deine PHP-Skripte stets reibungslos laufen!

Credits: Image by storyset