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 22/01/2018, à 16:38

Poulpette

[Ub 16.04] Config vhost sur nouvelle install Apache

Bonjour,

Bien que peu tournée vers le web, les études me forcent à m’y coller un brin. Pour un projet, je suis donc supposée avoir un serveur local afin de bosser avec PHP, MySQL… bref, les trucs classiques. Depuis hier, je lis des docs, des articles et des discussions concernant LAMP, et cela a fini par plus m’embrouiller qu’autre chose. Je peux lire tout et son contraire, et on en revient toujours au même point : quand on maîtrise, facile de faire la part des choses ; quand on apprend, c’est plus délicat.

Bref, il me reste à installer phpMyAdmin (mais là n’est pas le problème smile), mais pour l’heure j’ai la fameuse page “It works!” qui s’affiche sur 127.0.0.1, m’indiquant que tout s’est bien passé. Je suis sur une Ubuntu MATE 16.04.3 LTS, sur laquelle j’ai installé PHP, Apache et MySQL depuis les dépôts, en suivant la page de doc dédiée à LAMP.

Je souhaite à présent faire en sorte d’accéder à mes projets locaux sans les coller dans /var/www/html/, puisque j’ai lu que changer les droits de ce dossier était ce qu’il y avait de plus facile, mais aussi de plus sale. La doc de Mozilla semblait sympa et pas trop complexe, mais évidemment, cela n’a pas fonctionné (erreur 403), sans doute parce qu’il manque des données, je suppose.
Mes projets web seront dans /media/poulpette/DATA/dev/web/. L’idée est donc qu’en allant sur 127.0.0.1 Apache soit en mesure de me lister les dossiers des différents projets. Et c’est là que ça coince pour moi, car c’est aussi là que je lis des tas de choses différentes sur le sujet, avec des données parfois plus vraiment à jour. J’ai par exemple souvent vu conseillé de passer par les liens symboliques, là où il semblerait que ce ne soit pas terrible.

En fouillant un peu, je suis tombée sur ce sujet d’olivier2004, plutôt intéressant, mais je ne suis pas sûre d’avoir saisi toute la démarche. Dans mon cas, quelle serait donc la meilleure marche à suivre, sans en arriver à toucher à 36 trucs en root comme j’ai pu le voir à gauche ou à droite (forçant parfois des utilisateurs à carrément réinstaller leur OS… ça va un peu loin, juste pour pouvoir faire un brin de PHP hmm) ?

En vous remerciant !


Carte mère : Asus Z170-P D3, socket 1151  |  Processeur : Intel Core i3 6100 3,7 GHz
RAM : G.Skill 8 Go SDRAM DDR3, 1600 MHz  |  Carte graphique : Asus Nvidea GeForce 210
Ubuntu Mate 16.04 LTS

Hors ligne

#2 Le 23/01/2018, à 13:50

J5012

Re : [Ub 16.04] Config vhost sur nouvelle install Apache

salut poulpe wink

oui le truc avec apache et cie c'est que comme ca fait longtemps le nombre de ressources disponibles est enormissime : pendant un moment les gens se sont habitués à apache 1 , et puis tout à coup on a vu passer apache 2 puis 2.4 puis 2.6 avec bien sur des specificités bouleversantes ! → les gens doivent se rehabituer sans compter avec la memoire quasi inextinguible du www ... on est donc rempli de vieilles habitudes , de nouvelles dispositions et recommendations etc ...

normal donc pour un debutant de perdre ses reperes ... et d'ailleurs je vois que tu as cherché dans ce forum : je suppose que tu as vu les tonnes de questions des memes preoccupations ...

perso j'ai cree mes propres tuto dans mon brouillon mais c'est plus pour moi comme un aide memoire que destiné au debutant ... : ca s'appelle : Des hôtes virtuels avec Apache2 installés n'importe où

le conseil general : entraine toi avec ton emplacement $HOME pour les applications web fait de php , mysql ou non, html , js , etc ... dans un dossier comme $HOME/www/dossier-appli-web...

une fois que tu seras rodée , tu pourras migrer definitvement dans l'espace dédié /srv qui est la localisation conseillée pour les appli-web en serveur ...

la difficulté pour le debutant est de toujours se rappeler où se trouve les fichiers de son application web ? toute la configuration des hotes virtuels repose dessus ...

Hors ligne

#3 Le 25/01/2018, à 12:59

jlmas

Re : [Ub 16.04] Config vhost sur nouvelle install Apache

Poulpette a écrit :

Je souhaite à présent faire en sorte d’accéder à mes projets locaux sans les coller dans /var/www/html/, puisque j’ai lu que changer les droits de ce dossier était ce qu’il y avait de plus facile, mais aussi de plus sale.

Il faut utiliser les  répertoires dédiés à l'application. C'est comme ça que les développeurs amont (apache en l'occurence) l'ont conçu et c'est comme ça que les empaqueteurs Ubuntu et  Debian l'ont configuré et sécurisé.

donc

sudo mkdir /var/www/html/{mon_projet1,mon_projet2,mon_projet3}
sudo chown -R .www-data  /var/www/html/*

En français dans le texte

* Tu crée tes répertoires sous  /var/www/html
* Tu autorises le groupe apache (www-data) à lire et à traverser tes répertoires et tes fichiers

Hors ligne

#4 Le 25/01/2018, à 23:01

Wilo98

Re : [Ub 16.04] Config vhost sur nouvelle install Apache

Sinon, tu créés un utilisateur dédié au serveur web, avec un dossier /home/www-data, avec comme groupe www-data, par exemple, webmestre :

sudo adduser webmestre -home=/home/www-data -ingroup=www-data

Dans son dossier home, tu crées un dossier html, c'est dans celui-ci que tu téléverseras tes projets web, via l'utilisateur webmestre, en utilisant ssh (filezilla gère très bien cela).

Pour que les projets s'affichent, il faut faire liens symboliques de /home/www-data/html/tonprojet vers /var/www/html/tonprojet. (tonprojet est un dossier contenant un projet web à tester)
Pour ça, créé le lien symbolique :

sudo ln -s /home/www-data/html/tonprojet /var/www/html/tonprojet

Cela t'affichera ton projet projets contenu dans le dossier /home/www-data/html/tonprojet

Pour l'afficher sur ton navigateur, http://loachost/tonprojet

C'est tout aussi propre, permet si besoin de restreindre l'accès en écriture pour le groupe...

Dernière modification par Wilo98 (Le 26/01/2018, à 10:34)

Hors ligne

#5 Le 26/01/2018, à 13:19

J5012

Re : [Ub 16.04] Config vhost sur nouvelle install Apache

@jimas et wilo :

www-data existe depuis un bout de temps, et c'est ce qui se faisait avec apache 1 , mais apache 2 est passé par la avec les vhosts ...

la compatibilité est toujours disponible avec www-data pour de tres vieilles appli qui ne peuvent pour une raison technique particuliere utiliser le mecanisme du vhosting ...

vous devez faire evoluer vos pratiques sans quoi : vous avez de super logiciels sans utiliser jusqu'au bout leurs nouvelles fonctionnalités ...

Hors ligne

#6 Le 28/01/2018, à 20:53

Poulpette

Re : [Ub 16.04] Config vhost sur nouvelle install Apache

Bonsoir,

Merci à vous trois pour vos réponses ! Je me plancherai de nouveau sur ce point demain, mais comme vos réponses ont quelques jours, je tenais à vous remercier sans plus trop tarder avant de vous faire un retour sur le contenu. smile


Carte mère : Asus Z170-P D3, socket 1151  |  Processeur : Intel Core i3 6100 3,7 GHz
RAM : G.Skill 8 Go SDRAM DDR3, 1600 MHz  |  Carte graphique : Asus Nvidea GeForce 210
Ubuntu Mate 16.04 LTS

Hors ligne

#7 Le 28/01/2018, à 20:59

J5012

Re : [Ub 16.04] Config vhost sur nouvelle install Apache

@poulpe : si tu pars avec un exemple concret ... on te donnera un coup de scripting wink

Hors ligne

#8 Le 29/01/2018, à 19:24

jlmas

Re : [Ub 16.04] Config vhost sur nouvelle install Apache

J5012 a écrit :

@jimas et wilo :
la compatibilité est toujours disponible avec www-data pour de tres vieilles appli qui ne peuvent pour une raison technique particuliere utiliser le mecanisme du vhosting ...
vous devez faire evoluer vos pratiques sans quoi : vous avez de super logiciels sans utiliser jusqu'au bout leurs nouvelles fonctionnalités ...

Ici, il s'agit de regarder ce que sert le serveur apache à partir d'un navigateur sur la même machine. Il ne me parait pas opportun dans ce cas, de se lancer dans la configuration d'un virtualhost, d'autant que la réponse s'adresse à une débutante.

J'ai fourni, je l'espère, la réponse la plus simple possible, sans modifier la configuration fournie par les empaqueteurs Ubuntu.

Note (technique) que ce que j'ai répond fonctionne car le paquet apache2 possède un virtualhost nommé 000-default.conf qui est activé par défaut. Il y a bien un virtualhost dans cette configuration, mais il ne m'a pas semblé utile d'en parler pour rester le plus clair possible.

Hors ligne

#9 Le 30/01/2018, à 11:42

J5012

Re : [Ub 16.04] Config vhost sur nouvelle install Apache

@jimas : oui mais ce n'est pas ce qu'a demandé poulpette ...

et tu ne sais jamais ce qu'un utilisateur meme debutant va faire sur son apache ... autant prendre les bonnes habitudes des le debut ...

parce que si on va par la il y a pleins de trucs qu'on pourrais faire à la w parce que ca marche sous ubuntu alors que c'est pas la bonne facon ...

Hors ligne

#10 Le 30/01/2018, à 19:05

Wilo98

Re : [Ub 16.04] Config vhost sur nouvelle install Apache

@J5012 Sinon, à part ramener ta science, tu apportes quoi comme réponse?
Les solutions proposées ne correspondent peut-être pas au standard de la gestion d'un serveur en production, mais elles sont simples et efficaces.
Comme le souligne jlmas, elles ne demandent aucune modification de la configuration par défaut d'ubuntu.

Nous donner un exemple de vhos.conf commenté, pour permettre à tous de comprendre (et apprendre wink ) les "bonnes habitudes à prendre dès le début", aurait été plus cool.

Dernière modification par Wilo98 (Le 30/01/2018, à 19:06)

Hors ligne

#11 Le 30/01/2018, à 19:35

bruno

Re : [Ub 16.04] Config vhost sur nouvelle install Apache

On se calme…

Mes projets web seront dans /media/poulpette/DATA/dev/web/.

La solution la plus simple est de modifier l'hôte virtuel par défaut /etc/apache2/sites-available/000-default.conf :

<VirtualHost *.80>

        ServerAdmin root@localhost
        ServerName localhost

        DocumentRoot   /media/poulpette/DATA/dev/web/

	<Directory /media/poulpette/DATA/dev/web/>
                Options +Indexes 
                AllowOverride All
                Require all granted
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log
	CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

Après tu risque d'avoir des problèmes de droit d'accès. Sur une installation de base les scripts PHP sont exécutés par l'utilisateur www-data, il faut donc que cet utilisateur puisse lire et éventuellement écrire dans toute l'arborescence  /media/poulpette/DATA/dev/web/

Pour cela il y a plusieurs solutions mais il faudrait savoir si le périphérique monté sur  /media/poulpette/DATA/dev/web/ correspondont bien à un système de fichier qui prend en charge les droits UNIX (pas FAT ou NTFS).

Dernière modification par bruno (Le 30/01/2018, à 19:37)

Hors ligne

#12 Le 30/01/2018, à 23:11

Wilo98

Re : [Ub 16.04] Config vhost sur nouvelle install Apache

bruno a écrit :

On se calme…

J'm'énerve pas, j'm'explique big_smile

Il est agaçant de s'entendre dire que l'on fait erreur, sans que cette personne te montre comment corriger ton erreur. Et encore plus sur un forum, qui est là pour partager ses connaissances.

J5012 a titillé ma curiosité avec les bonnes habitudes à prendre et j'espère qu'il approfondisse un peu plus sa réponse.

Sinon,

bruno a écrit :

Après tu risque d'avoir des problèmes de droit d'accès. Sur une installation de base les scripts PHP sont exécutés par l'utilisateur www-data, il faut donc que cet utilisateur puisse lire et éventuellement écrire dans toute l'arborescence  /media/poulpette/DATA/dev/web/

Pour cela il y a plusieurs solutions mais il faudrait savoir si le périphérique monté sur  /media/poulpette/DATA/dev/web/ correspondont bien à un système de fichier qui prend en charge les droits UNIX (pas FAT ou NTFS).

Pour qu'apache accède aux fichiers, pas la peine que le propriétaire soit www-data. Si les fichiers sont du groupe www-data, apache peut les lire et modifier, selon les droits attribués au groupe, sans se soucier de qui est le propriétaire.

Dernière modification par Wilo98 (Le 30/01/2018, à 23:46)

Hors ligne

#13 Le 31/01/2018, à 09:32

bruno

Re : [Ub 16.04] Config vhost sur nouvelle install Apache

Wilo98 a écrit :

Pour qu'apache accède aux fichiers, pas la peine que le propriétaire soit www-data.

Je n'ai jamais dit cela. J'ai dit qu'il faut que tout ce qui est sous la racine du site soit accessible en lecture et éventuellement en écriture à l'utilisateur www-data.
Si les fichiers appartiennent à toto et au groupe toto et qu'il sont accessibles en lecture à tous, c'est suffisant.

Je me suis bien gardé de donner une méthode pour cela car il y en a plusieurs et il faut adapter à chaque cas particulier. On peut même avoir une architecture LAMP où chaque site appartient à un utilisateur.groupe qui lui est propre et qui n'est pas www-data.

Hors ligne

#14 Le 31/01/2018, à 21:45

J5012

Re : [Ub 16.04] Config vhost sur nouvelle install Apache

@wilo98 : relis mes posts : à aucun moment je n'ai dit que vous, les utilsateurs configurateurs de www-data, etiez dans l'erreur ... obsolete ne veut pas dire erreur !

montrer comment corriger l'erreur : elle est bien bonne celle-la : lisez les docs ... celles qui sont à jour ... au lieu de rester sur vos acquis ... evoluez !

les bonnes habitudes : c'est de s'adapter aux nouvelles fonctionnalités et aux nouvelles recommendations de la part de personnes plus aguerris que vous dans un domaine particulier ... et je ne parle pas forcement de moi hein wink

@bruno : bien sur que le plus simple est de modifier le profil defaut de sites-available ... mais c'est plus simple pour un debutant de le laisser comme exemple à copier pour adapter ...

nb : les vhosts par nom ont ceci de particulier que vous pouvez mettre vos fichiers d'application web où bon vous semble ...
avec une definition fonctionnelle pour apache2 sans justement aller modifier aucun droits d'acces ...
→ on ne modifie pas la configuration d'ubuntu
→ on ne va pas s'emmeler dans les permissions utilisateur
→ il suffit de comprendre comment rediger les directives apache
→ faire le lien symbolique n'est meme pas requis : il y a une commande pour ca !

Hors ligne

#15 Le 01/02/2018, à 20:56

Wilo98

Re : [Ub 16.04] Config vhost sur nouvelle install Apache

J5012 a écrit :

...
elle est bien bonne celle-la : lisez les docs ... celles qui sont à jour ... au lieu de rester sur vos acquis ... evoluez !

Le problème vient de là : le wiki Ubuntu, surtout les pages sur LAMP, sont alors loin d'être à jour et les nombreux tutos que l'ont peut trouver évoquent rarement la version (exacte) qui est mise en place.
Apache étant modulaire, et les développeurs de Debain poussant cette modularité à l’extrême, se baser sur la doc d'apache, ça reste très difficile de s'y retrouver, surtout pour un noob (comme moi wink ).

J'ai appris des choses importantes rien que suivant et participant à ce fil. Je te remercie d'avoir préciser ton propos.

@Poulpette Alors, as-tu réussi la mise en place de ton serveur de développement?

Hors ligne

#16 Le 02/02/2018, à 13:06

J5012

Re : [Ub 16.04] Config vhost sur nouvelle install Apache

le probleme ne vient pas de la ... mais de l'obstination ... de garder ses habitudes parce que c'est plus simple et rassurant : meme les "kits" disponibles (wamp,xampp, easyphp ...) sous w disposent de ces preconfigurations obsoletes de apache1 : ce ne serait pas si grave si elle n'etaient pas inserées par defaut comme seule methode de configuration !

et les pages ubuntu sont à jour : elles sont comme d'habitude sans cesse remaniés par ces memes personnes bloquées sur leurs anciens reflexes ... et ce n'est pas d'aujourd'hui, ce forum est rempli des memes sujets et discussions sur la configuration virtualhosting depuis des lurettes ...  il y a toujours ce quelqu'un qui va ramener sa fraise sur www-data !

Hors ligne

#17 Le 12/02/2018, à 19:52

jlmas

Re : [Ub 16.04] Config vhost sur nouvelle install Apache

J5012 a écrit :

il y a toujours ce quelqu'un qui va ramener sa fraise sur www-data !

www-data est l'utilisateur et le groupe du compte système du démon apache. Il n'a aucun rapport de près ou de loin avec la configuration ou l'utilisation des virtualhosts apache et tout à voir avec le fonctionnement même du service apache.

Comme Bruno l'a déjà fait remarquer

bruno a écrit :

J'ai dit qu'il faut que tout ce qui est sous la racine du site soit accessible en lecture et éventuellement en écriture à l'utilisateur www-data.
Si les fichiers appartiennent à toto et au groupe toto et qu'il sont accessibles en lecture à tous, c'est suffisant

* Le fichier de configuration de base apache fourni par Ubuntu / Debian est un virtualhost, c'est même écrit dedans.

* Les virtualhosts les plus utilisés, c'est à dire les virtualhosts par nom nécessitent de pouvoir créer un ou des alias DNS à affecter au virtualhost. Beaucoup d'utilisateurs n'ont pas accès à un serveur DNS ou à une interface permettant de le gérer.

La bidouille consistant à modifier le /etc/hosts est juste ça,  une bidouille !, Ça ne fonctionne pas plus loin que la box de la maison et encore.

Ton tutoriel prétend faire les choses sérieusement, mais il ne fonctionnera jamais sur un VPS et complique inutilement les choses pour une simple visualisation sur son propre poste de travail.

Hors ligne

#18 Le 12/02/2018, à 22:36

J5012

Re : [Ub 16.04] Config vhost sur nouvelle install Apache

@jimas: tout ce que je dis est vrai et suffisant par rapport à ce qu'a demandé precisement l'auteur poulpette ... relis donc son message en #1

c'est toi et wilo qui ramenez votre fraise sur les vieilles configurations de www-data à savoir mettre et garder les vieilles habitudes au lieu d'evoluer ... meme en vps ... qui n'est pas l'environnement de travail de poulpette !

pourquoi tu parles maintenant de vhost-etc ... alors qu'on en parle depuis le debut ? reveillez vous ...

mettez vous une fois dans la tete , que le vhosting avec apache 2.4 puis 2.6, permet d'ecrire n'importe où , et pas seulement dans une hierarchie de dossiers appartenant à www-data !

si vous ne comprenez pas ca, revoyez vos bases sur la gestion des fichiers et permissions imbriquées sous gnulinux !

nb : le fichier hosts reste pertinent avec tout serveur, meme vps, c'est une specificité de localhost ... c'est dans les notions de l'administation systeme gnulinux ...

Hors ligne