Ich richte den Ubuntu 11.04-Desktop 32-Bit auf einer VirtualBox-VM mit einem freigegebenen Ordner auf dem Host ein. Der freigegebene Ordner ist
/media/sf_Dev/
Ich möchte Apache2 so ändern DocumentRoot
, dass es auf diesen Ordner verweist. Daher habe ich /etc/apache2/sites-available/default
die vorhandenen zwei Pfade in dieser Datei zu / media / sf_Dev / anstelle von / var / www geändert und es wird nicht index.html angezeigt.
Wenn ich mich /var
mit ls -l
ich sehe ,
drwxr-xr-x 2 root root ... www
und wenn ich ls -l /media/
ich sehe
drwxrwx--- 1 root vboxsf ... sf_Dev
und Apache scheint die index.html nicht zu sehen, die ich in dieses Verzeichnis gestellt habe ( cp /var/www/index.html /media/sf_Dev/
iirc)
Ich habe auch versucht, envvars so zu bearbeiten, dass die Gruppe vboxsf wird, aber ich glaube, ich habe diesen Teil falsch gemacht.
export APACHE_RUN_GROUP=www-data
zu
export APACHE_RUN_GROUP=vboxsf
Was mache ich falsch, was muss ich tun, damit Apache2 Dateien aus diesem Verzeichnis bereitstellt? (Technisch möchte ich Dateien für Apache bereitstellen, /media/sf_Dev/apache/www
aber ich stelle es mir Schritt für Schritt vor. Wenn Ihnen das hilft, Dinge kurzzuschließen, ist es das auch.)
quelle
Das sieht nach einer Berechtigungsfrage aus. Sie benötigen eine Lese- und Ausführungsberechtigung
/media/sf_Dev/
für "Sonstige" (die dritte Gruppe von Berechtigungsbits, bei denen es sich derzeit um keine Berechtigungen oder handelt---
).Sie müssen also diesen Befehl ausführen (da es sich um Ubuntu handelt, beachten Sie das sudo):
sudo chmod 775 /media/sf_Dev/
Das fügt read and execute für "other" hinzu und überlässt dem Eigentümer und der Gruppe die vollständigen Berechtigungen.
Stellen Sie außerdem sicher, dass die Indexdatei tatsächlich in / media / sf_Dev / vorhanden ist. (Ich gehe davon aus, dass Sie das sudo im Befehl cp vergessen haben und nicht als root ausgeführt werden.)
quelle
sudo apache2ctl restart
sudo su
als es anfing, eine Frau zu sein, damit ich in alle Verzeichnisse gehen und sehen konnte, was "kaputt" war ... Ich werde tun, was Josh später mit der PHP-Datei vorgeschlagen hat.Sie haben nicht gesagt, was der spezifische Fehler war, nur
Der spezifische Fehler würde helfen. Sie können dies in Apache's ablegen, was
error_log
normalerweise/var/log/apache2/error.log
unter Ubunt zu finden ist, aber Sie können es über eineErrorLog
Direktive in Ihrem Apache konfigurieren<VirtualHost>
Ohne den eigentlichen Fehler gehe ich davon aus, dass George Marian korrekt ist und es sich um einen Berechtigungsfehler handelt. Sie können überprüfen, unter welcher Gruppe Apache ausgeführt wird:
Versuchen Sie, die Berechtigungen
/media/sf_Dev/
wie gesagt zu ändern .Ich denke, Sie sollten dies besser mit einer Alias-Direktive handhaben , da Sie dann nur bestimmte Teile Ihres DocumentRoot auf Orte außerhalb von:
BEARBEITEN: Wenn der Apache-Server
mod_php
(nicht FastCGI PHP) hat und nicht verwendetsuexec
, können Sie feststellen, ob Apache unter der richtigen GID (Gruppen-ID) mit dem folgenden PHP-Snippit ausgeführt wird:Stellen Sie sicher, dass dieselbe GID wie zurückgegeben wird
vboxsf
. (Sie finden die GID für vboxsf in/etc/groups
)quelle
vboxsf
. Können Sie die relevanten Teile bearbeiten und veröffentlichen, in denen Sie die geändert habenGroup
?Wenn Sie den freigegebenen Ordner so konfiguriert haben, dass er automatisch bereitgestellt wird. Dann müssen Sie zuerst das gleiche deaktivieren und den freigegebenen Ordner manuell bereitstellen. Wenn Sie es bei jedem Start von vm automatisch bereitstellen müssen, müssen Sie den entsprechenden Eintrag in Ihrer / etc / fstab hinzufügen. (Es scheint ein Problem mit dem Mounten des freigegebenen vbox-Ordners über fstab zu geben. Das Hinzufügen des unten genannten Befehls in /etc/rc.local hat sich also als hilfreich erwiesen, um ihn beim Start zu mounten.)
Laden Sie den freigegebenen Ordner mit dem richtigen Benutzer / der richtigen Gruppe
Soweit ich das beurteilen kann, ist dieser Fehler auf den Eigentümer und die Gruppe des freigegebenen Ordners zurückzuführen. Apache erwartet, dass die gerenderten Dateien zur Gruppe www-data gehören. Standardmäßig gehört der freigegebene Ordner in VirtualBox jedoch dem vboxsf-Benutzer. Wir werden diesen Benutzer zur www-Datengruppe hinzufügen. Bearbeiten Sie dazu die Gruppeneigenschaften des Gasts:
sudo usermod -a -G vboxsf www-data
Wir mounten nun den freigegebenen Ordner und weisen ihn dem Benutzer und der Gruppe www-data zu. Sie können die Benutzer- und Gruppen-ID in der Datei / etc / passwd auf dem Gastcomputer überprüfen (cat / etc / passwd | grep 'www-data'). Unter Debian-basierten Betriebssystemen werden normalerweise beide IDs auf den Wert 33 gesetzt. Geben Sie einfach den folgenden Befehl für den Gast ein:
mount -t vboxsf -o rw,uid=33,gid=33 website /media/sf_website
Beachten Sie, dass Website der Name des freigegebenen Ordners ist (siehe Abbildung oben) und / media / sf_website der Ort, an dem der Ordner bereitgestellt wird.
Weitere Details finden Sie unter folgendem Link: http://jimmybonney.com/articles/configure_virtualbox_shared_folder_apache_virtual_host/
quelle