Datei Upload mit PHP - PHP.ini welche Änderungen sind nötig
Jeder der einen Server hat kennt dieses Problem wohl, man möchte mal wieder ein kleines Upload-Script schreiben und man ist sich sicher der Code ist richtig doch es will einfach nicht funktionieren. Nun überlegt man hin und her und irgendwann fällt einem dann wieder mal die PHP.ini ein, diese Datei ist die Konfigurationsdatei von PHP und lägt globale und wichtige Einstellungen fest. Unter diesen Einstellungen sind auch die Werte die angepasst werden müssen um einen Dateiupload erfolgreich zu tätigen. Welche ihr braucht findet ihr im unteren Teil der News.
Ihr findet die PHP.ini häufig im Verzeichnis /etc/php/apache oder in ähnlichen, dort müsst ihr die folgenden Änderungen eintragen. Es wäre allerdings gut vorher ein Backup zu erstellen, falls etwas schief geht.
- file_uploads = On - Dies sorgt dafür das Dateiuploads an sich möglich sind
- upload_max_filesize = xxM - Hier (xx durch Wert ersetzen) wird die maximale Dateigröße in MB für einen Upload angegeben
- post_max_size = xxM - Da die meisten Uploads via POST übertragen werden ist es hier wichtig einen Wert zu wählen der größer ist als die maximale Dateigröße für Uploads. Dies lässt sich dadurch begründen, dass der POST Request zusätzlich zur Datei auch alle anderen eventuell weiter geschickten Daten des Scripts enthält.
- memory_limit = xxM - Hier wird die maximale größe des genutzten Rams für PHP und seine Scripte festgelegt. Bei einem Upload werden einige Teile der Datei im Ram abgelegt, dieser Wert sollte also auch nicht zu klein sein. Doch ist hier auch Vorsicht geboten, denn bei einem zu hohen Wert und zu vielen gleichzeitigen Uploads kann es sonst Probleme mit dem Server geben, man sollte also etwas herumprobieren, bzw. den Wert an seine Hardware anpassen.
- max_execution_time = xxxx und max_input_time = xxxx - Diese beiden Werte legen fest wie lange Scripte brauchen dürfen bis sie fertig sind, bzw. wie lange ein Script maximal rechnen darf bis es abgebrochen wird. Diese Werte müssen auch angepasst werden, denn ein Upload von mehreren MB kann bekanntlich ja einen Moment dauern. Die Angabe des Wertes (xxxx) erfolgt in Sekunden.