php Datei Upload Limit erhöhen

Grafik php Datei Upload Limit erhöhen

Viele Open Source Systeme und Frameworks bieten die Möglichkeit Dateien aufzuladen. So zum Beispiel Drupal, Joomla, Wordpress, Magento Commerce, OwnCloud uvm.

Gemeinsam haben alle genannte Systeme, dass Sie auf der Script Programmiersprache PHP basieren. Fast alle Webhosting Pakete bieten das mittlerweile schon mit PHP Version 7 an. Ein kleines Problem, das häuftig auftritt sind die Limitierungen der Dateigröße beim Upload. Meist können Dateien um die 2 MB (Megabyte) nicht mehr aufgeladen werden.

Bevor man jedoch daran geht an den Servereinstellungen etwas zu ändern, darauf achten, dass z. B. bei Drupal Module selber Limitierungen als Einstellung anbieten. Also zuvor erst dort kundig machen.

PHP Upload Limit ändern

Es gibt 3 Möglichkeiten, die jedoch von der jeweiligen Serverkonfiguration abhängen. Was in allen Fällen gleich bleibt sind die Parameter Namen oder Konfigurationsvariablen.

  1. memory_limit
  2. upload_max_filesize
  3. post_max_size

Es gilt zudem die Bedingung: post_max_size >= upload_max_filesize. Außerdem sollte das memory_limit gut bemessen

sein.

1. php.ini Konfigurations Datei ändern

Diese Änderung ist global meist für alle virtuellen Hosts, sofern man nicht per .htaccess Datei arbeiten möchte.

Folgendes bitte beachten

  • Man muss  "root" Benutzer sein bzw. "admin" Rechte haben um die Datei z. B. per Befehlszeile (Command Line) ändern zu können.
  • Backup bzw. Kopie machen der php.ini Datei
  • Pfad der geladenen php.ini Datei ermitteln mit dem Kommando php -i |grep php\.ini

Command Line (CLT) Serversystem Debian 6

php -i | grep php\.ini
vim /etc/php5/cli/php.ini

php.ini Werte anpassen für Upload. Bitte auf Schreibweise beachten.

memory_limit = 128M
upload_max_filesize = 48M
post_max_size = 64M

Abschließend muss der Webserver neu gestartet werden.

apachectl restart

oder

/etc/init.d/apache2 restart

Tipp: Persönlich find ich den NANO Editor angenehmer für kleine Änderungen. Wenn jedoch der VIM Editor nur verfügbar ist dann hier die wichtigsten Befehle:

Befehl Aufgabe
i einsetzen
ESC Modus einsetzen beenden
CTRL f Seitenweise nach vorne
CTRL b Seitenweise nach zurück
:q! Beenden ohne zu speichern
:wq! Beenden mit speichern

Command Line Mac OS X

php -i | grep php\.ini
nano /etc/php.ini
sudo apachectl restart

2. .htaccess Datei ändern

Je nach Hosting Umgebung kann diese Datei auch über eine Administration Oberfläche geändert werden. Zuvor prüfen:

  • Lokalisieren vom Wurzelverzeichnis ( Root )
  • Lese und Schreibrechte erforderlich

Beachten: Hier werden die Werte in der Syntax abweichend notiert.

php_value memory_limit 128M php_value upload_max_filesize 48M php_value post_max_size 64M

Etwas eleganter ist es wenn man die Anweisungen gleich mit der Apache Direktrive ausstattet. Denn wenn das PHP5 Modul deaktiviert wird, bringt der Server einen Error 500.

<IfModule mod_php5.c>
php_value memory_limit 128M
php_value upload_max_filesize 48M
php_value post_max_size 64M
</IfModule>

3. FastCGI bzw. fcgid Umgebung

Zuvor genannte Möglichkeiten funktionieren ggf. nicht, was aus einer anderen Konfiguration resultiert. Am sinnvollsten ist es wenn man die Umgebung prüft über folgende Möglichkeiten

  • Textdatei z. B. info.php erstellen mit dem Code Schnitzel <?PHP phpinfo(); ?> und in das root Verzeichnis aufladen und über Browser aufrufen.
  • Alternativ per Befehlszeile: apachectl -M . Dies zeigt auf ob das FastCGI Modul installiert ist.
  • Zusätzlich kann man die jeweilige Apache .conf Datei zum virtuelle Host prüfen.
  • Außerdem sollte im Root Verzeichnis die Datei php-cgi.conf liegen
  • Oder mit find Kommando suchen: find /var -name "php-cgi*" -type f

PHP max. upload Dateien / Files ändern

cd /Pfad-zum-Verzeichnis
vim php-cgi.conf

 

Dort befindet sich die Zeile mit shell command "exec". Dahinter können die Werte angepasst werden.

exec /usr/bin/php5-cgi -d memory_limit=128M -d post_max_size=64M -d upload_max_filesize=48M

Fazit

Obgleich die Änderung banal ist, können verschiedene Konfigurationen und Server Betriebssysteme dem Webentwickler das leben schwer machen. Daher ist zuerst die Server Umgebung gut zu prüfen welche Datei geändert werden muss.

Weiterführende Informationen