J'ai configuré le bureau Ubuntu 11.04 32 bits sur une machine virtuelle VirtualBox avec un dossier partagé sur l'hôte. Le dossier partagé est
/media/sf_Dev/
Je veux changer Apache2 pour pointer le DocumentRoot
vers ce dossier, j'ai donc modifié /etc/apache2/sites-available/default
pour remplacer les deux chemins existants dans ce fichier vers / media / sf_Dev / au lieu de / var / www et il n'affichera pas index.html.
Quand je regarde /var
avec ls -l
je vois
drwxr-xr-x 2 root root ... www
et quand ls -l /media/
je vois
drwxrwx--- 1 root vboxsf ... sf_Dev
et Apache ne semble pas voir l'index.html que je mets dans ce répertoire ( cp /var/www/index.html /media/sf_Dev/
iirc)
J'ai également essayé d'éditer des envvars pour que le groupe soit vboxsf mais je pense que j'ai mal fait cette partie.
export APACHE_RUN_GROUP=www-data
à
export APACHE_RUN_GROUP=vboxsf
Que fais-je de mal, que dois-je faire pour qu'Apache2 serve les fichiers de ce répertoire? (techniquement, je veux servir des fichiers pour apache, /media/sf_Dev/apache/www
mais je figure une étape à la fois, donc si cela vous aide à court-circuiter les choses, qu'il en soit ainsi)
la source
Cela ressemble à un problème d'autorisations. Vous aurez besoin d'une autorisation de lecture et d'exécution sur
/media/sf_Dev/
"autre" (le troisième groupe de bits d'autorisation, qui ne sont actuellement aucune autorisation ou---
).Donc, vous devrez exécuter cette commande (puisque c'est Ubuntu, notez le sudo):
sudo chmod 775 /media/sf_Dev/
Cela ajoutera lecture et exécution pour "autre" et laissera toutes les autorisations pour le propriétaire et le groupe.
Assurez-vous également que le fichier d'index existe réellement dans / media / sf_Dev /. (Je suppose que vous avez oublié le sudo dans la commande cp et que vous ne vous exécutez pas en tant que root.)
la source
sudo apache2ctl restart
sudo su
dedans une fois qu'il a commencé à être une garce pour que je puisse aller dans tous les répertoires et voir ce qui était "cassé" ... Je vais faire ce que Josh a suggéré plus tard avec le fichier PHP.Vous n'avez pas dit quelle était l'erreur spécifique, seulement
L'erreur spécifique aiderait. Vous pouvez le déposer dans Apache
error_log
, qui est généralement/var/log/apache2/error.log
sous Ubunt, mais peut être configuré via uneErrorLog
directive dans votre<VirtualHost>
Sans l'erreur réelle, je suppose que George Marian est correct et qu'il s'agit d'une erreur d'autorisation. Vous pouvez vérifier sous quel groupe Apache est exécuté en utilisant:
Essayez de modifier les autorisations
/media/sf_Dev/
comme il l'a dit.Je pense que vous feriez mieux de gérer cela avec une directive Alias car cela vous permettra de ne faire que certaines parties de votre DocumentRoot pointer vers des emplacements à l'extérieur:
EDIT: Si le serveur Apache a
mod_php
(et non FastCGI PHP) et ne l'utilise passuexec
, vous pouvez déterminer si Apache s'exécute sous le GID (ID de groupe) approprié avec l'extrait PHP suivant:Assurez-vous que renvoie le même GID que
vboxsf
. (Vous pouvez trouver le GID pour vboxsf dans/etc/groups
)la source
vboxsf
. Pouvez-vous modifier et publier les parties pertinentes où vous avez modifié leGroup
?Si vous avez configuré le dossier partagé pour qu'il soit monté automatiquement. Ensuite, vous devez d'abord désactiver le même et monter le dossier partagé manuellement. Si vous avez besoin de le monter automatiquement chaque fois que vous démarrez le vm, vous devez ajouter une entrée respective dans votre / etc / fstab. (Il semble qu'il y ait un problème de montage du dossier partagé vbox via fstab. L'ajout de la commande mentionnée ci-dessous dans /etc/rc.local a donc fonctionné pour moi pour le monter au démarrage).
Charger le dossier partagé avec le bon utilisateur / groupe
Pour autant que je sache, cette erreur est due au propriétaire et au groupe du dossier partagé. Apache s'attend à ce que les fichiers à rendre appartiennent au groupe www-data. Par défaut, cependant, le dossier partagé dans VirtualBox appartient à l'utilisateur vboxsf. Nous ajouterons cet utilisateur au groupe www-data. Pour ce faire, modifiez les propriétés du groupe sur l'invité:
sudo usermod -a -G vboxsf www-data
Nous allons maintenant monter le dossier partagé et l'affecter à l'utilisateur et au groupe www-data. Pour vérifier l'ID utilisateur et de groupe, vous pouvez consulter le fichier / etc / passwd sur la machine invitée (cat / etc / passwd | grep 'www-data'). Sur un système d'exploitation basé sur Debian, les deux identifiants sont généralement définis sur la valeur 33. Donc, lancez simplement la commande suivante sur l'invité:
mount -t vboxsf -o rw,uid=33,gid=33 website /media/sf_website
Notez que le site Web est le nom du dossier partagé (comme illustré dans la capture d'écran ci-dessus) et / media / sf_website est l'endroit où le dossier sera monté.
Pour plus de détails, reportez-vous à ce lien http://jimmybonney.com/articles/configure_virtualbox_shared_folder_apache_virtual_host/
la source