Ich verwende Ubuntu und Windows. Wenn ich Windows verwende, kann ich nicht auf meine Dateien in var/www
meiner Linux-Partition zugreifen. Daher versuche ich, einen virtuellen Host und ein DirectoryRoot in meiner NTFS-Partition zu erstellen.
Ich werde das WAMP-Verzeichnis in Windows und das Stammverzeichnis des virtuellen Hosts in Ubuntu kombinieren, aber es funktioniert nicht. Es erscheint immer error 403 forbidden access
. Und wenn ich die Berechtigungen ändere, chmod
ändert sich nichts.
Was soll ich machen?
Antwort1
Einstellungen für die NTFS-Partition
Zuerst müssen Sie über Ubuntu auf Ihre NTFS-Partition zugreifen können. Führen Sie die folgenden Schritte aus, wenn dies nicht der Fall ist.
sudo apt-get install ntfs-3g
Suchen Sie den Namen Ihrer NTFS-Partition(en). Beispiel:
sudo fdisk -l | grep NTFS
Holen Sie sich die UUID Ihrer NTFS-Partition.
$ sudo blkid
/dev/sda1: LABEL="windows" UUID="4ED2A451B2A23F59" TYPE="ntfs"
Konfigurieren Sie die Partition in /etc/fstab (erstellen Sie vorsichtshalber eine Sicherungskopie).
sudo cp /etc/fstab /etc/fstab.bak
sudo vim /etc/fstab
Ich habe meine wie folgt erstellt (basierend auf der UUID). Die folgenden Optionen legen Lese-, Schreib- und Ausführungsberechtigungen fest und mit uid=1000 werden Sie beim Booten des Betriebssystems als Benutzer der NTFS-Partition festgelegt. Dadurch wird auch sichergestellt, dass der Apache-Benutzer auf Ihren virtuellen Host zugreifen kann (das hat mein Problem gelöst).
/dev/disk/by-uuid/4ED2A451B2A23F59 /media/windows ntfs-3g defaults,permissions,users,uid=1000,utf8 0 0
Wenn Sie die Partition stattdessen als Benutzer mounten möchten www-data
, suchen Sie die www-data
Benutzer-ID und ersetzen Sie sie uid=1000
durch Folgendes:
id -u www-data
Beachten Sie, dass Sie möglicherweise das Verzeichnis /media/windows erstellen müssen, falls es nicht vorhanden ist.
cd /media
sudo mkdir windows
sudo chown sagun:users windows
Starten Sie Ihren Computer neu und vergewissern Sie sich, dass Ihr NTFS-Laufwerk automatisch mit aktivierten Lese-, Schreib- und Ausführungsberechtigungen bereitgestellt wird.
Einstellungen zum Konfigurieren des virtuellen Hosts in Apache
Erstellen Sie Verzeichnisse zum Speichern Ihrer Protokolldateien (falls gewünscht):
sudo mkdir /var/log/apache2/projects.dev
Erstellen Sie eine neue Konfigurationsdatei im Verzeichnis /etc/apache2/sites-available. Beispiel:
sudo vim /etc/apache2/sites-available/projects.dev.conf
Stellen Sie Ihre Konfiguration etwa so ein und speichern Sie die Datei:
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName projects.dev
ServerAlias projects
DocumentRoot /media/windows/Users/sagun/Dropbox/projects
<Directory />
Options FollowSymLinks
AuthType None
AllowOverride None
Order deny,allow
Deny from all
</Directory>
<Directory /media/windows/Users/sagun/Dropbox/projects/>
Require all granted
Options Indexes FollowSymLinks MultiViews
AuthType None
AllowOverride None
Order allow,deny
allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/projects.dev/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/projects.dev/access.log combined
</VirtualHost>
Bearbeiten Sie als Nächstes die Datei /etc/hosts.
sudo vim /etc/hosts
Fügen Sie die folgende Zeile hinzu und speichern Sie:
127.0.0.1 projects.dev
Aktivieren Sie den Host mit dem folgenden Befehl:
sudo a2ensite projects.dev
Starten Sie Apache neu
sudo service apache2 restart
Endlich konnte ich von meinem Browser aus auf meinen gesamten Code zugreifen, der http://projects.dev
sich in der NTFS-Partition von Windows und Ubuntu befand. Ich hoffe, jemand findet das nützlich. Prost!
Antwort2
Das brauchen Sie zur Behebung des Problems
Grundsätzlich benötigen Sie einen Eintrag wie diesen in Ihrer httpd.conf-Datei
<Directory "physical path to the directory">
Order Allow,Deny
Allow from All
# Any other directory-specific stuff
</Directory>
Antwort3
Die beste Lösung für mich war, den Apache-Benutzer zu ändern. Das kann ein gewisses Risiko darstellen, hat bei mir aber gut funktioniert.
sudo vim /etc/apache2/envvars
Antwort4
Wenn Sie Ihre Festplatte für die automatische Einbindung eingerichtet haben, funktioniert die Bearbeitung der Umgebungsvariablen wahrscheinlich nicht, da sich die Partition im Verzeichnis /mnt befindet.
Dieses Verfahren ist möglicherweise nicht so sicher, hat aber mindestens eine Minute lang funktioniert. Ich habe den WWW-Data-Benutzer auch in den Umgebungsvariablen belassen und den Apache-Benutzer zur Stammgruppe hinzugefügt.
sudo usermod -G root www-data
Da es nur lokal wirkt, sind meiner Meinung nach keine größeren Risiken gegeben.