Pages : 1
#1 Le 24/01/2014, à 15:35
- yeste64
Documentroot sur partition ntfs [Résolu]
Bonjour à tous,
Je suis en dual-boot Windows 8 / Ubuntu 13.10.
Je voudrais pouvoir développer mes sites web sur les 2 plateformes en partageant une partition NTFS qui contiendrait tous les fichiers de mes sites. Sous Windows j'utilise Wamp, et sous Ubuntu j'utilise Apache 2.4.6.
J'ai essayé plusieurs choses mais je n'y arrive pas, voici mes derniers tests :
1. Changement du répertoire de travail vers une partition EXT4
Création d'un lien symbolique vers un dossier spécifique en EXT4 pour ne pas toucher à la config d'Apache :
sudo rm -r /var/www; sudo ln -s /home/dam/www;
Don des droits nécessaires pour le fonctionnement d'Apache :
sudo chown -R www-data:www-data /home/dam/www/
--> Ceci fonctionne parfaitement
2. Changement du répertoire de travail vers une partition NTFS
Création d'un lien symbolique vers un dossier spécifique en NTFS pour ne pas toucher à la config d'Apache :
sudo rm -r /var/www; sudo ln -s /media/dam/Data/Dev
Modification du fichier /etc/fstab pour le montage automatique de la partition :
sudo mkdir /media/dam/Data; sudo gedit /etc/fstab;
Et voici les lignes que j'ai testées d'ajouter au fichier tour à tour :
/dev/sda3 /media/dam/Data ntfs auto,users,utf8,uid=1000,gid=1000,umask=002 0 0
--> ne fonctionne pas
/dev/sda3 /media/dam/Data ntfs auto,users,utf8,uid=33,gid=33,umask=002 0 0
--> ne fonctionne pas (33 correspond au user et au group "www-data")
/dev/sda3 /media/dam/Data ntfs-3g
--> ne fonctionne pas
Voilà, je bloque, si quelqu'un a une idée.. Merci d'avance
Dernière modification par yeste64 (Le 31/01/2014, à 22:52)
Si l'important n'est pas de gagner mais de participer, alors pourquoi compte-t-on les points ?
Hors ligne
#2 Le 24/01/2014, à 16:29
- spinoziste
Re : Documentroot sur partition ntfs [Résolu]
Salut .
NTFS ne gère pas les permissions . Il s'agit du système de fichiers le plus pourri de la planète .
Dernière modification par spinoziste (Le 24/01/2014, à 16:33)
Nous mourrons tous .
Hors ligne
#3 Le 24/01/2014, à 16:40
- yeste64
Re : Documentroot sur partition ntfs [Résolu]
Bonjour,
Je sais que NTFS ne gère pas les permissions, mais ceci a déjà fonctionné avec les versions antérieures d'Apache :
Exemple 1
Exemple 2
La ruse étant de donner les "permissions" nécessaires au montage de la partition ntfs.
Mais apparemment sous Apache 2.4 ça ne passe pas.
Dernière modification par yeste64 (Le 24/01/2014, à 16:41)
Si l'important n'est pas de gagner mais de participer, alors pourquoi compte-t-on les points ?
Hors ligne
#4 Le 24/01/2014, à 16:43
- spinoziste
Re : Documentroot sur partition ntfs [Résolu]
Pour ton fstab tu peux essayer :
/dev/sda3 /media/dam/Data ntfs-3g defaults 0 0
Içi il est dit :
You will need to change the gid and umask to equal that of whatever your ntfs usergroup is.
Vérifie que ton user est bien dans le groupe fuse .
Ceci est très utile .
Dernière modification par spinoziste (Le 24/01/2014, à 16:56)
Nous mourrons tous .
Hors ligne
#5 Le 24/01/2014, à 17:27
- yeste64
Re : Documentroot sur partition ntfs [Résolu]
J'ai essayé :
/dev/sda3 /media/dam/Data ntfs-3g auto,uid=33,gid=33,umask=002 0 0
Voici ce que j'obtiens avec un "ls -l /media/dam/Data" :
drwxrwxr-x 1 www-data www-data 4096 janv. 24 16:18 Dev
Pourtant j'ai toujours un "Access Forbidden" ..
Si l'important n'est pas de gagner mais de participer, alors pourquoi compte-t-on les points ?
Hors ligne
#6 Le 24/01/2014, à 18:03
- bruno
Re : Documentroot sur partition ntfs [Résolu]
Tu utilises un lien symbolique. Apache est-il autorisé à suivre les liens symboliques ?
Et tes commandes sur /var/ww et ln -s sont pour le moins curieuses…
Résultat de ls -l /var/www/ ?
Dernière modification par bruno (Le 24/01/2014, à 18:06)
#7 Le 24/01/2014, à 21:10
- Pseudo supprimé
Re : Documentroot sur partition ntfs [Résolu]
Cela fait belle lurette qu'on met les uuid à la place des /dev/sdx.
ls -ls /dev/disk/by-uuid
/etc/fstab
UUID=ee8a084...... /point_de_montage ....
#8 Le 25/01/2014, à 00:35
- yeste64
Re : Documentroot sur partition ntfs [Résolu]
Apache est autorisé à suivre les liens symboliques puisque comme je l'ai marqué dans mon premier poste, la démarche fonctionne quand le répertoire de destination est en EXT4.
Résultat de ls -l /var/www :
lrwxrwxrwx 1 www-data www-data 20 janv. 24 17:06 /var/www -> /media/dam/Data/Dev/
J'ai modifié mon /etc/fstab :
UUID=2A24241B3B13120B /media/dam/Data ntfs-3g defaults,auto,users,uid=33,gid=33,umask=002 0 0
Toujours "Access Forbidden"
Si l'important n'est pas de gagner mais de participer, alors pourquoi compte-t-on les points ?
Hors ligne
#9 Le 25/01/2014, à 01:03
- compte supprimé x0
Re : Documentroot sur partition ntfs [Résolu]
Salut,
Utilise donc un virtual host ! C'est fait pour !
<VirtualHost *:80>
ServerAdmin webmaster@orange.fr
ServerName toto
DocumentRoot /media/dam/Data/toto
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /media/dam/Data/toto/>
Options FollowSymLinks Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access.log combined
</VirtualHost>
Un exemple pour un site nommé toto dans /media/dam/Data
Tu enregistres ça dans /etc/apache2/sites-available sous le nom de toto par exemple
Tu l'actives
sudo a2ensite toto
Tu redémarres apache
sudo service apache2 restart
Et le tour est joué. Et tu vires tes liens symboliques dans /var/ww et toutes tes permissions modifiées. Je te conseille même de virer et de recréer /media/dam/Data avec les permissions d'origine. Sinon tout ça c'est du bidouillage.
Pour le montage de la partition ntfs, ça, ça suffit :
UUID=2A24241B3B13120B /media/dam/Data ntfs-3g defaults 0 0
Je viens de le faire chez moi, en déplaçant un site de son répertoire d'origine dans /media/ntfs (windows xp). J'ai juste changé le chemin dans le virtual host... Et redémarré apache... Le site est parfaitement accessible.
Source : http://httpd.apache.org/docs/2.2/vhosts/
Dernière modification par Dr. Hugo Z. Hackenbush (Le 25/01/2014, à 01:40)
#10 Le 25/01/2014, à 10:08
- bruno
Re : Documentroot sur partition ntfs [Résolu]
+1 pour l'hôte virtuel
Je viens de relire le fil de discussion et je vois que tu as procédé à différents essais. As-tu bien relancé Apache après avoir monté ta partition ntfs ? Il faut sans doute que la partition soit montée avant le lancement d'Apache pour que cela fonctionne.
Sinon il faut aussi vérifier les droits sur /media, sur /media/dam et /madia/dam/data tous ces dossiers doivent être accessibles et lisibles par l'utilisateur www-data (droits dwrxr-xr-x par exemple)
#11 Le 25/01/2014, à 16:42
- compte supprimé x0
Re : Documentroot sur partition ntfs [Résolu]
Il n'y a pas intérêt à changer les droits sur /media. Il n'y a pas qu'apache qui soit concerné par ce répertoire !
En fait, je n'ai jamais changé aucun droit, nulle part ! Je ne fais aucun lien symbolique et je ne fais même pas partie du groupe www-data...
Et j'ai toujours fait ça : http://forum.ubuntu-fr.org/viewtopic.ph … #p15281851
(l'enregistrement dans /etc/hosts permet de router vers apache et non vers internet la requête "toto", ce qui évite juste de devoir taper "localhost/toto")
Dernière modification par Dr. Hugo Z. Hackenbush (Le 25/01/2014, à 16:47)
#12 Le 25/01/2014, à 19:23
- bruno
Re : Documentroot sur partition ntfs [Résolu]
Je n'ai pas dit qu'il fallait les changer mais vérifier que les dossiers étaient bien accessibles à Apache.
#13 Le 25/01/2014, à 20:09
- compte supprimé x0
Re : Documentroot sur partition ntfs [Résolu]
Je n'ai pas dit qu'il fallait les changer mais vérifier que les dossiers étaient bien accessibles à Apache.
Il suffit de faire la requête adéquate dans son navigateur pour ça. Mais ils le sont par défaut !
Quand on crée un nouveau répertoire dans /media, il appartient à root et il a les droits suivants :
$ sudo mkdir /media/test
$ ls -la /media
drwxr-xr-x 10 root root 4096 janv. 25 11:50 test
Et si maintenant on crée un fichier là-dedans, voici ses droits (par défaut, j'insiste)
$ sudo touch /media/test/index.php
$ ls -la index.php
-rwxr-xr-x 1 root root 1031 janv. 25 11:50 index.php
Et voici, enfin, le vhost correspondant.
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName toto
DocumentRoot /media/test
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /media/test/>
Options FollowSymLinks Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
... etc.
</VirtualHost>
Ça fonctionne ! J'ai mis phpinfo() dans le index.php, histoire qu'on voit quelque chose et on le voit en tapant /localhost/toto.
Je ne suis pas assez compétent pour trouver l'explication correcte. Néanmoins :
$ ps aux | grep apache2
root 6893 0.0 0.5 184552 10296 ? Ss 11:56 0:00 /usr/sbin/apache2 -k start
www-data 6913 0.0 0.3 184592 6620 ? S 11:56 0:00 /usr/sbin/apache2 -k start
www-data 6914 0.0 0.3 184704 7132 ? S 11:56 0:00 /usr/sbin/apache2 -k start
www-data 6915 0.0 0.4 185176 8864 ? S 11:56 0:00 /usr/sbin/apache2 -k start
www-data 6916 0.0 0.3 184704 7132 ? S 11:56 0:00 /usr/sbin/apache2 -k start
www-data 6917 0.0 0.3 184576 6368 ? S 11:56 0:00 /usr/sbin/apache2 -k start
www-data 6918 0.0 0.3 184576 6368 ? S 11:56 0:00 /usr/sbin/apache2 -k start
$ pstree | grep apache2
|-apache2---6*[apache2]
Ce qui montre qu'apache2 appartient à root donc ce n'est pas étonnant qu'il arrive à lire dans un répertoire qui appartient à root et qui n'est pas verrouillé en lecture. Tandis que les processus www-data sont des processus enfant. Je ne sais pas quelle est la règle, du point de vue des droits, pour de tels sous-processus. Ont-ils les mêmes par défaut que le processus parent ? Il faudrait fouiller dans la doc d'apache...
De même, si on crée (sans sudo !) un répertoire truc dans /home/$USER et un fichier machin là dedans on obtient les permissions suivantes, par défaut :
mkdir ~/truc
touch ~/truc/machin
ls -la ~/truc
drwxr-xr-x 2 hackenbush hackenbush 4096 janv. 25 19:59 .
drwxr-xr-x 48 hackenbush hackenbush 4096 janv. 25 19:59 ..
-rw-r--r-- 1 hackenbush hackenbush 0 janv. 25 19:59 machin
Le fait est que apache peut lire machin, puisque tout le monde peut le lire (le propriétaire, le groupe et "autres"). Ne reste qu'à faire le vhost correspondant, l'activer et redémarrer apache.
Mais seul hackenbush (et root, comme d'habitude) peut modifier machin, exactement ce qu'il veut faire pour construire son site...
Edit : dans le cas d'un répertoire, la permission d'exécution (x) consiste à pouvoir l'ouvrir. Et donc si apache arrive à rentrer dedans, c'est probablement en tant que processus root...
Dernière modification par Dr. Hugo Z. Hackenbush (Le 25/01/2014, à 20:21)
#14 Le 25/01/2014, à 21:18
- bruno
Re : Documentroot sur partition ntfs [Résolu]
Ça c'est sur ta machine où tu as laissé les umask et autres réglages de la configuration par défaut. Il faut vérifier que l'auteur du message initial n'a pas modifié les droits d'accès par défaut sur les dossiers cités.
Sinon Apache s'exécute sous l'utilisateur www-data par défaut mais c'est modifiable. Regarde donc dans le fichier /etc/apache2/envars, ou affiche tes processus en arborescence et tu comprendras (démon lancé sous root et tous les processus fils sous www-data).
Ton dossier à des droits : drwxr-xr-x , il est donc accessible en lecture à tout le monde (rwx pour le propriétaire, r-x pour le groupe propriétaire, r-x pour le reste du monde).
Je t'invite à tester en changer les droits sur un dossier qui est dans /home/$USER
chmod o-rx
et tu verras qu'Apache ne peut plus y accèder.
#15 Le 26/01/2014, à 17:18
- yeste64
Re : Documentroot sur partition ntfs [Résolu]
Merci de votre aide.
Voici ce que j'ai fait :
1. Modification du fichier "/etc/fstab" :
UUID=2A24241B3B13120B /media/dam/Data ntfs-3g defaults 0 0
Puis exécution de la commande :
sudo umount -a; sudo mount -a;
2. Création du fichier "/etc/apache2/sites-available/dev.conf" :
<VirtualHost *:80>
ServerAdmin webmaster@localhost.fr
ServerName Dev
DocumentRoot /media/dam/Data/Dev
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /media/dam/Data/Dev/>
Options FollowSymLinks Indexes MultiViews
AllowOverride None
Require all granted
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Require all granted
</Directory>
ErrorLog /var/log/apache2/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access.log combined
</VirtualHost>
Puis exécution de la commande :
sudo a2ensite dev.conf
Enabling site dev.
To activate the new configuration, you need to run:
service apache2 reload
Puis
sudo service apache2 reload
Et j'obtiens toujours un "403 Forbidden" en accédant à "localhost" dans mon navigateur.
Voici le log d'erreur d'Apache "/var/log/apache2/error.log" :
[Sun Jan 26 17:17:46.675223 2014] [core:error] [pid 3522:tid 139705302128384] (13)Permission denied: [client 127.0.0.1:50059] AH00035: access to / denied (filesystem path '/media/dam/Data') because search permissions are missing on a component of the path
Dernière modification par yeste64 (Le 26/01/2014, à 17:20)
Si l'important n'est pas de gagner mais de participer, alors pourquoi compte-t-on les points ?
Hors ligne
#16 Le 26/01/2014, à 17:40
- compte supprimé x0
Re : Documentroot sur partition ntfs [Résolu]
Et j'obtiens toujours un "403 Forbidden" en accédant à "localhost" dans mon navigateur.
Voici le log d'erreur d'Apache "/var/log/apache2/error.log" :
because search permissions are missing on a component of the path
localhost appelle le vhost par défaut. Je ne sais pas comment il s'appelle dans ton système (un truc avec default). Regarde dans sites-available... Et regarde ce qu'il y a dedans (DirectoryRoot).
Quand tu as tapé localhost, il parle de /media/dam/Data dans le message d'erreur. Il est fort probable qu'il ait tenté de suivre un lien de /var/www... En tous cas, il n'est pas du tout passé par ton vhost...
En plus, dans celui que tu montres, le ServerName, c'est Dev.
Pour y accéder, il faudrait taper localhost/Dev
Essaye ça, pour commencer !
Enfin, il me semble que tu as modifié les permissions de tout ou partie de /media/dam/Data. Et il se peut bien qu'elles ne soient pas bonnes...
Par défaut (partition démontée) :
Propriétaire : root, peut lire et écrire
Groupe : root, peut lire
Autres : peut lire
Tu peux modifier ça par :
sudo umount /media/dam/Data
gksudo nautilus
Tu sélectionnes dam, tu mets ce qu'il faut, et tu appliques aussi aux sous-répertoires (et tu vérifies que c'est bon). Vérifie aussi que ce sont les mêmes permissions pour /media lui-même... (mais attention, pas de modification récursive dans ce cas...).
Puis tu remontes...
Et je ne sais pas ce que tu as encore fait...
Dernière modification par Dr. Hugo Z. Hackenbush (Le 26/01/2014, à 17:55)
#17 Le 30/01/2014, à 23:19
- yeste64
Re : Documentroot sur partition ntfs [Résolu]
Je n'avais rien modifié, j'avais juste changé mon fstab..
Voici le résultat de la commande "ls -l /" :
...
drwxr-xr-x 3 root root 4096 janv. 24 00:38 media
...
"ls -l /media/dam" :
drwxr-xr-x 1 root root 4096 janv. 30 00:50 Data
drwxr-xr-x 1 root root 12288 janv. 30 00:50 Windows
Et c'est idem pour tous les sous dossiers/fichiers.
J'ai obtenir les même droits pour les sous dossiers et fichier seulement en modifiant le fichier "/etc/fstab" en conséquence, sinon tous mes fichiers étaient en 777. Voici ma ligne dans le fstab pour obtenir les même droits que le dossier /media et le dossier /media/dam :
UUID=2A24241B3B13120B /media/dam/Data ntfs-3g uid=0,gid=0,dmask=022,fmask=133 0 0
Mais j'obtiens toujours la même erreur dans les logs après démontage/remontage des partitions, redémarrage d'apache, avec ou sans "/Dev" après "localhost"... Je désespère..
Dernière modification par yeste64 (Le 31/01/2014, à 16:36)
Si l'important n'est pas de gagner mais de participer, alors pourquoi compte-t-on les points ?
Hors ligne
#18 Le 31/01/2014, à 00:23
- compte supprimé x0
Re : Documentroot sur partition ntfs [Résolu]
Je viens de passer ton vhost en revue. A mon avis c'est ça :
Require all granted
Tu as mis ça pour quelle raison ?
Remplace -le par :
Order allow,deny
Allow from all
Dernière modification par Dr. Hugo Z. Hackenbush (Le 31/01/2014, à 00:24)
#19 Le 31/01/2014, à 01:11
- yeste64
Re : Documentroot sur partition ntfs [Résolu]
J'ai mis ça d'après la doc Apache : Doc
Si l'important n'est pas de gagner mais de participer, alors pourquoi compte-t-on les points ?
Hors ligne
#20 Le 31/01/2014, à 13:40
- bruno
Re : Documentroot sur partition ntfs [Résolu]
Si tu utilises Apache 2.4 la syntaxe Require all granted est parfaitement correcte.
ServerName Dev
C'est étrange et cela risque de poser pas mal de soucis. Dans un premier temps mets simplement :
ServerName localhost
D'après tes logs tu as toujours un problème de droits d'accès, il faut vérifier sur :
/media (ok d'après ton message précédent)
/dam (tu n'as pas donné le résultat)
/Data (ok d'après ton message précédent)
/dev
L'erreur annoncée est typique d'un droit +x (droit d'accès à un dossier) sur un des dossiers du chemin.
#21 Le 31/01/2014, à 16:45
- yeste64
Re : Documentroot sur partition ntfs [Résolu]
Ok j'ai changé mon ServerName en "localhost".
Pour que tout soit clair et plus synthétique, voici le résultat de toutes ces commandes :
1. "ls -l /" :
...
drwxr-xr-x 3 root root 4096 janv. 24 00:38 media
...
2. "ls -l /media" :
drwxr-xr-x+ 4 root root 4096 janv. 24 15:48 dam
3. "ls -l /media/dam" :
drwxr-xr-x 1 root root 4096 janv. 30 00:50 Data
drwxr-xr-x 1 root root 12288 janv. 30 00:50 Windows
4. "ls /media/dam:Data" :
...
drwxr-xr-x 1 root root 4096 janv. 30 23:05 Dev
...
Si l'important n'est pas de gagner mais de participer, alors pourquoi compte-t-on les points ?
Hors ligne
#22 Le 31/01/2014, à 17:29
- bruno
Re : Documentroot sur partition ntfs [Résolu]
Dans ce cas cela devrait fonctionner.
Il y a juste le + sur cette ligne :
drwxr-xr-x+ 4 root root 4096 janv. 24 15:48 dam
qui me fait hésiter (indique la présence d'ACLs). Au pire démonte, supprime le dossier dam et recrée-le.
Essaie avec un vhost minimal et n'oublie pas de relancer Apache :
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /media/dam/Data/Dev/
ServerName localhost
<Directory /media/dam/Data/Dev/>
Options -Indexes +FollowSymLinks +MultiViews
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
#23 Le 31/01/2014, à 21:44
- yeste64
Re : Documentroot sur partition ntfs [Résolu]
J'ai supprimé puis recréé le dossier "dam", je n'ai ainsi plus le +. J'ai ensuite modifié mon vhost.
Voilà l'erreur que j'obtiens à présent :
[Fri Jan 31 21:34:05.604397 2014] [autoindex:error] [pid 26513:tid 140299215148800] [client 127.0.0.1:51968] AH01276: Cannot serve directory /media/dam/Data/Dev/: No matching DirectoryIndex (index.html,index.cgi,index.pl,index.php,index.xhtml,index.htm) found, and server-generated directory index forbidden by Options directive
EDIT : J'ai modifié "-Indexes" en "+Indexes", plus d'erreur.
Le seul soucis restant est que mes fichiers PHP ne sont pas exécutés. Leur contenu est affiché en brut dans le navigateur.
EDIT 2 :
Problème résolu en exécutant ces deux commandes :
sudo apt-get purge libapache2-mod-php5
sudo apt-get install libapache2-mod-php5
Merci beaucoup pour votre aide !
Dernière modification par yeste64 (Le 31/01/2014, à 22:51)
Si l'important n'est pas de gagner mais de participer, alors pourquoi compte-t-on les points ?
Hors ligne
Pages : 1