Ist es möglich, in einer NTFS-Partition einen virtuellen Host zu erstellen?

Ist es möglich, in einer NTFS-Partition einen virtuellen Host zu erstellen?

Ich verwende Ubuntu und Windows. Wenn ich Windows verwende, kann ich nicht auf meine Dateien in var/wwwmeiner 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-dataBenutzer-ID und ersetzen Sie sie uid=1000durch 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.devsich 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

https://stackoverflow.com/questions/89118/apache-gives-me-403-access-forbidden-when-documentroot-points-to-two-different-d

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.

verwandte Informationen