
Das Hochladen von Dateien über meine Website schlägt fehl, da Apache keinen Schreibzugriff zu haben scheint. Meine Berechtigungen zeigen jedoch etwas anderes an. Irgendwelche Ideen?
Beim Hochladen per Skript gibt das Skript zurück
Error: Directory is not writable
Verzeichnis ist /home/username/public_html/uploads
Verzeichnisberechtigungen sind drwxrwsr-x
Verzeichnis ist im Besitz von username:webadmins
Apache wird ausgeführt als www-data
und ist Mitglied von Gruppenwww-data webadmins
Was muss ich ändern, damit www-data (Apache) in dieses Verzeichnis schreiben kann? Danke.
Antwort1
Sie können versuchen, die Rechte des Upload-Ordners auf 777 zu setzen (Lese- und Schreibzugriff für alle Benutzer). Dies ist jedoch nicht sicher. Sie sollten dies nicht auf einem Produktionssystem oder einem System mit mehreren Benutzern verwenden. Jedenfalls würde dies so funktionieren
sudo chown -R 777 /home/username/public_html/uploads
Die andere (und bessere) Möglichkeit wäre, mod_ruid2 für Apache zu verwenden. Sie können es hier herunterladenhttp://sourceforge.net/projects/mod-ruid/
Sie müssen es kompilieren und danach das Modul aktivierensudo a2enmod ruid2
Wenn dies installiert und aktiviert ist, können Sie die Konfigurationsdatei des Userdir-Moduls bearbeitensudo nano /etc/apache2/mods-enabled/userdir.conf
Fügen Sie Folgendes hinzu
<IfModule mod_ruid2.c>
RMode stat
RUidGid username usergroup
RGroups username usergroup
</IfModule>
Danach müssen Sie den Apache-Dienst neu startensudo service apache2 restart
Mit dieser Konfiguration können Sie das Verzeichnis public_html mit Ihrem Benutzer und Ihrer Benutzergruppe verwenden.
Dies funktioniert jedoch nur, wenn Sie nur einen Benutzer mit einem Benutzerverzeichnis „public_html“ von Apache haben.