Anleitung um .htaccess in den Projektverzeichnissen zu aktivieren

Tundra

Tundra

Aktives Mitglied
Thread Starter
Dabei seit
20.12.2006
Beiträge
1.064
Reaktionspunkte
48
Hi,

in der httpd.conf ist z. B. eine Beschränkung auf 2 oder 8 MB beim Upload von Dateien.
Um größere Dateien in einem Projekt über ein Upload-Formular hoch laden zu können, kann man dies mit einer .htaccess-Datei im Projekt-Ordner steuern.

Standardmässig ist aber das Ausführen von .htaccess-Dateien nicht möglich und muss erst "frei geschaltet" werden, dazu soll die folgende Anleitung helfen.


Programm „Terminal“ starten

cd /private/etc/httpd/
sudo pico httpd.conf

Pico ist ein Texteditor.
Mit „ctrl + w“ und dem Suchbegriff „Override“ suchen wir nach dem Begriff „Override“. Allerdings benötigen wir hier das zweite Suchergebnis, einfach noch einmal „ctrl + w“ ausführen.

#
# This controls which options the .htaccess files in directories can
# override. Can also be "All", or any combination of "Options", "FileInfo",
# "AuthConfig", and "Limit"
#
AllowOverride None

Damit .htaccess Dateien in den Projektverzeichnissen ausgelesen werden können, muss dieser Wert auf „All“ gesetzt werden.

AllowOverride All

Der Editor wird nun mit „ctrl + x“ beendet und die Rückfrage bestätigen wir mit „y“, um die Änderung zu bestätigen.

Nun muss noch die „benutzer.conf“ Datei angepasst werden.
Man bleibt dazu im Terminal-Fenster und führt die folgenden beiden Befehle aus:

cd users
ls

Angezeigt werden jetzt die Konfigurationsdateien sämtlicher Benutzer z. B.
guido.conf

Starten des Editors:
sudo pico guido.conf

Der Inhalt ist sehr übersichtlich. :)
<Directory "/Users/guido/Sites/">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>

Hier wird der Eintrag „None“ durch „All“ ersetzt.

AllowOverride All



Quellenachweis zu „AllowOverride“
http://httpd.apache.org/docs/1.3/mod/core.html#allowoverride


Beispiel für eine .htaccess Datei
php_value upload_max_filesize 200M
php_value post_max_size 210M
php_value max_execution_time 6000
php_value max_input_time 3200
php_value memory_limit 35M
 
Nunja :rolleyes:

die Werte sind, wie an den Namen zu erkennen, in der php.ini enthalten und nicht in der http.conf ! Nat. kann man diese so setzen wie oben beschrieben. Allerdings stellt diese Öffnung des Webservers so ein Sicherheitsrisiko für .htaccess-Dateien dar ( allow ALL), zum andern ändert man die httpd.conf wo die php.ini geändert werden müßte und zum Dritten sind die hier gegebenen Werte für einen stabilen Serverbetrieb viel zu hoch eingestellt. Eine MaxExecutein-Time von 6000s heißt, das ein Skript fast 90Minuten laufen könnte ohne abgebrochen zu werden...

Also eine Lösung ist es, die Glücklichste ist es IMHO jedoch nicht!
 
  • Gefällt mir
Reaktionen: Pingu
Es ist eine Lösung und die .htaccess ist ein Beispiel, dass jeder selber anpassen muss und dabei wissen muss, was er tut.
Auf meinem MBP habe ich es nicht geschafft mit einer lokalen php.ini den Wert für den Upload hoch zu setzen. Die php.ini wurde sowohl im Benutzerverzeichnis, als auch im Projektordner ignoriert. Bei Windows wird sie allerdings im Projektordner ausgelesen.

Auf meinem Mac hat es nur geholfen die httpd.conf wie in der Anleitung zu editieren.
Ich denke, wer eine .htaccess mit eigenen Parametern benötigt, wird sich auch mit dem Thema Sicherheit beschäftigen. Beim Parameter AuthConf habe ich Webserver-Fehler bekommen.

Meine Lösung brauche ich für eine firmeninterne DB-Lösung, um auch Dateien mit 100 MB hoch laden zu können. Wobei natürlich der Wert von 90 Min. zu hoch ist und wahrscheinlich auf 2 Min. reduziert wird.

Wie gesagt, es ist lediglich eine Anleitung wie man auf einem Mac mit einer .htaccess arbeiten kann und die Werte dienen als Beispiel und nicht um 1 zu 1 übernommen zu werden.

Eine Anleitung mit einer php.ini auf dem Mac arbeiten zu können, habe ich leider nirgendwo entdeckt. Hast Du es mal ausprobiert, kannst Du eine Anleitung dazu schreiben?
 
Es ist relativ einfach:

Wo die php.ini liegen muß, ist dummerweise in das jeweilige Binarie eincompiliert. Das heißt also unter php ein Script erstellen das phpinfo() aufruft und die Ergebnisse anschauen. Dort nach dem Eintrag php.ini suchen und man sieht den Pfad wo das jeweilige PHP die ini-Datei erwartet. Dort eine der typischen php.ini.default als php.ini hin kopieren, dafür sorgen das apache die Datei lesen darf und die ini wie gewünscht anpassen, sudo apachectl restart aufrufen et C'est ca!

Ist an der Stelle keine ini vorhanden nimmt PHP einfach die eincompilierten Vorgaben. Kann man auf die php.ini nicht zugreifen, so kann man globale Einstellungen per .htaccess vornehmen oder ( weil meist bei mangelndem Zugriff auf php.ini auch der Zugriff vi httpd.conf oder .htaccess beschränkt ist), die Werte in den Skripten selbst setzen ( die Funktionen dazu stehen im PHP-Manual). Wenn man schon Zugriff hat auf den Webserver ist die sauberste und beste Lösung das in der php.ini direkt selbst zu ändern.
 
Zurück
Oben Unten