Salut les moules,
Désolé si ma question fait un peu débutant mais en me basant sur mes maigres connaissances je sèche un peu et ça sera l'occasion de poser quelques questions sur les bonnes pratiques pour servir des pages web avec Apache sous Debian. :-)
Mon problème est le suivant : j'ai installé PgSQL et j'essaie de pouvoir l'administrer via phpPgAdmin. J'ai installé ce dernier via le paquet disponible dans les dépôts Debian (7 je crois, j'ai un Kimsufi chez OVH) et en listant les fichiers installés via ce paquet je vois que les fichiers PHP et consorts se trouve dans /usr/share/phppgadmin/.
Ni une, ni deux je crée donc un lien symbolique de la racine de mon serveur web (/var/www/) vers ce répertoire. Et comme j'ai également installé Apache via les dépôts Debian, il est lancé par l'utilisateur www-data et je fais donc un chown -R sur mon lien symbolique pour qu'il appartienne à www-data.
Reprenons :
ls -alh /var/www/
lrwxrwxrwx 1 www-data root 22 Feb 18 23:59 phppgadmin -> /usr/share/phppgadmin/
et
ls -alh /usr/share/
drwxr-xr-x 12 www-data root 4.0K Feb 18 23:45 phppgadmin
J'avais aussi pris soin de modifier mon fichier de configuration d'Apache puis fait un reload :
cat /etc/apache2/sites-enabled/000-default
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www
<Directory />
Options -Indexes
AllowOverride None
Order Deny,Allow
Deny from all
</Directory>
<Directory /var/www/phppgadmin/>
Options FollowSymLinks MultiViews
AllowOverride None
Order Deny,Allow
Allow from all
</Directory>
Mais quand j'essaie d'accéder à phpPgAdmin depuis mon navigateur :
Forbidden
You don't have permission to access /phppgadmin/index.php on this server.
Pareil dans les logs qui semblent indiquer que mon fichier de configuration Apache n'est pas d'équerre :
[Fri Feb 21 19:37:26 2014] [error] [client 109.190.XX.YY] client denied by server configuration: /usr/share/phppgadmin/index.php
Est-ce à dire qu'il faut que je déclare aussi /usr/share/phppgadmin dans mon fichier de configuration Apache ???
Et avant de mettre en place une usine à gaz, est-ce que je n'empile pas déjà des erreurs ?
Genre où vaut-il mieux mettre la racine de son serveur web, sous quel utilisateur doit tourner Apache (j'imagine que la configuration par défaut de Debian respecte les bonnes pratiques), quid des permissions de fichiers, etc. ?
Si vous avez un pointeur vers un article qui explique tout ça (mais pas en mode débutant complet comme la plupart des ressources sur lesquelles je suis tombé) je suis preneur :-)
Merci d'avance !
# j'ai un doute sur la cascade de dossier
Posté par NeoX . Évalué à 3.
en effet, avec "order deny,allow"
tu lui demandes de prendre d'abord la liste "deny" avant la liste "allow".
d'apres tes fichiers de conf, tu commences pas dire que le dossier racine est deny from all
puis le sous dossier devrait etre Allow from all
mais comme la regle match d'abord le deny from all
[^] # Re: j'ai un doute sur la cascade de dossier
Posté par Sclarckone . Évalué à 1.
Je ne suis pas sûr de comprendre…
La directive Order qui change la manière dont sont vérifiées les requêtes par rapport aux directives Deny et Allow c'est uniquement au sein d'un
<Directory>
non ?Et vu que c'est en cascade, ça doit être le dernier qui prime (ici le deuxième) ?
D'ailleurs j'ai exactement les mêmes directives pour /var/www/phpmyadmin/ et ça fonctionne.
# config
Posté par nono14 (site web personnel) . Évalué à 3.
Je pense pour la config /usr/share n'est pas bonne.
Essaie de copier la config du directory /var/www pour tester.
Système - Réseau - Sécurité Open Source - Ouvert à de nouvelles opportunités
[^] # Re: config
Posté par Sclarckone . Évalué à 1.
Je n'ai aucune configuration pour /usr/share, tu veux dire qu'il faut que j'en crée une ?
# Il n'est pas préconfiguré ?
Posté par jolitorax . Évalué à 6. Dernière modification le 21 février 2014 à 22:40.
Il y a déjà un virtualhost de créé par le paquet, en tout cas ça y ressemble
Normalement sans rien faire et sous réserve de vérifier dans le fichier sus-mentionné, un truc du genre http://mon_serveur/phppgadmin devrait te permettre d'y accéder
Ensuite c'est mieux pour ton site web de créer un virtualhost spécifique dans /etc/apache2/sites-available/mon_site
Sur debian, il faut mettre ses propres virtualhost dans /etc/apache2/sites-available/ et les activer grâce à la commande a2ensite qui crée tout bêtement un lien symbolique du fichier de ton virtualhost de /etc/apache2/sites-available/ vers /etc/apache2/sites-enabled/
[^] # Re: Il n'est pas préconfiguré ?
Posté par Sclarckone . Évalué à 1.
Je n'avais pas mis en place de virtualhost car je n'en voyais pas l'intérêt dans mon cas et que c'était un chouïa plus compliqué mais je vais y jeter un œil, merci !
[^] # Re: Il n'est pas préconfiguré ?
Posté par Sclarckone . Évalué à 1.
Je viens de me rappeler un détail qui a peut-être son importance : j'ai mes DNS chez Gandi et je compte profiter du certificat SSL gratuit qu'ils offrent mais ce ne sera pas un certificat wildcard.
Dans ces conditions, je ne vois pas d'intérêt à utiliser des virtualhosts qui auraient tous le même DocumentRoot ?
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.