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.
- memory_limit
- upload_max_filesize
- 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