Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 24/01/2014, à 16: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, à 23: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, à 17: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, à 17:33)


Nous mourrons tous .

Hors ligne

#3 Le 24/01/2014, à 17: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, à 17: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, à 17: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 :

wiki a écrit :

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, à 17:56)


Nous mourrons tous .

Hors ligne

#5 Le 24/01/2014, à 18: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, à 19: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, à 19:06)

Hors ligne

#7 Le 24/01/2014, à 22: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, à 01: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, à 02: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, à 02:40)

#10 Le 25/01/2014, à 11: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)

Hors ligne

#11 Le 25/01/2014, à 17: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, à 17:47)

#12 Le 25/01/2014, à 20: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.

Hors ligne

#13 Le 25/01/2014, à 21:09

compte supprimé x0

Re : Documentroot sur partition ntfs [Résolu]

bruno a écrit :

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, à 21:21)

#14 Le 25/01/2014, à 22: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.

Hors ligne

#15 Le 26/01/2014, à 18: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, à 18: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, à 18:40

compte supprimé x0

Re : Documentroot sur partition ntfs [Résolu]

yeste64 a écrit :

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, à 18:55)

#17 Le 31/01/2014, à 00: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, à 17: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, à 01: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, à 01:24)

#19 Le 31/01/2014, à 02: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, à 14: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.

Hors ligne

#21 Le 31/01/2014, à 17: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, à 18: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>

Hors ligne

#23 Le 31/01/2014, à 22: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, à 23:51)


Si l'important n'est pas de gagner mais de participer, alors pourquoi compte-t-on les points ?

Hors ligne