ich hab eigentlich nix großes vor. Ich will mit PHP ne Datei auf meinen Server schreiben:
- Code: Select all
$pfad = 'hier/hin';
chmod($pfad, 0777);
$datei = fopen('hier/hin/test.txt', 'w');
fwrite($datei, 'Hallo Welt!');
fclose($datei);
chmod('hier/hin/test.txt', 0755);
chmod($pfad, 0755);
Leider wirft dieser Code diverse Fehlermeldungen:
- Warning: chmod(): Operation not permitted
- Warning: fopen(hier/hin/test.php): failed to open stream: Permission denied
- Warning: fwrite() expects parameter 1 to be resource, boolean given
- Warning: fclose() expects parameter 1 to be resource, boolean given
- Warning: chmod(): Operation not permitted in
- Warning: chmod(): Operation not permitted in
Die dritte und vierte Warnung ist die logische Folge auf die zweite. Die könnte ich wegbekommen, indem ich allen Schreibrechte auf den Ordner einräume. Das möchte ich aber nicht, weil das eigentlich chmod übernehmen soll. Ich verwende XAMPP lediglich zur Entwicklung, die Software läuft nachher auf einem anderen Server und da brauche ich chmod - da funktioniert das sogar genau so, aber ich möchte nicht jedesmal zum Testen die ganze Seite hochladen, das muss sich doch auch irgendwie in XAMPP einstellen lassen.
Was ich bisher probiert habe:
- Ordner, Unterordner und enthaltene Dateien im XAMPP-Ordner für alle les- und schreibbar machen (Datei wird erstellt, chmod wird immernoch nicht akzeptiert, nach ner Weile verabschiedet sich MySQL weil es mit den neu vergebenen Rechten nicht klar kommt)
- Meinen Projektordner im Ordner htdocs für alle les- und schreibbar machen (Datei wird erstellt, chmod wird immernoch nicht akzeptiert)
- Im Apache Config-File User und Gruppe verändert in den verschiedensten Variationen (ich in Gruppe daemon, ich in Gruppe admin) kein Effekt auf chmod
- Im Appache Config-File den folgenden Punkt verändert:
- Code: Select all
# Deny access to the entirety of your server's filesystem. You must
# explicitly permit access to web content directories in other
# <Directory> blocks below.
#
<Directory />
AllowOverride All
Require all granted
</Directory>
da stand vorher none und denied - Ich hab mir auch die php.ini angesehen, aber da wollte ich nicht zu viel dran rumspielen, um nix kaputt zu machen.
Ich vermute mal der Schlüssel liegt entweder im config-file von apache oder in der php.ini.
Wäre euch dankbar für nen Tipp.
Viele Grüße und schonmal Danke!
Waggs
PS: Ich verwende XAMPP 7.2.0 auf MacOS High Sierra