apache2 : problème d’accès à mon site web

Bonjour à tous,

Je suis entrain d’essayer de m’installer un serveur web sur mon serveur perso. J’ai donc installé apache2.
Mon serveur à pour IP 192.168.1.13 et lorsque j’essaie d’y accéder via le navigateur web d’un autre PC se trouvant sur mon réseau local, j’obtiens bien la page « it works » d’apache.

J’ai ensuite mis le dossier « monsite » qui contient les différents fichiers de mon site à cet endroit sur le serveur : /home/mmm/Documents/Site_web/monsite/

J’ai créé le fichier suivant sur mon serveur (/etc/apache2/sites-available/monsite) :

[code]# Le virtualHost de monsite.fr
<VirtualHost *:80>
# L’E-Mail de l’administrateur
ServerAdmin mmm@monsite.com

# L'adresse du site
ServerName  monsite.fr

# Les alias du site
ServerAlias www.monsite.fr monsite.com www.monsite.com 

# Les documents du site (Souvent /var/www/monsite ou /home/monsite)
DocumentRoot /home/mmm/Documents/Site_web/monsite

# Les options du site (comme dans un .htaccess)
<Directory /var/www/monsite.fr/>
    # On autorise tous le monde a voir le site
    Order allow,deny
    allow from all
</Directory>

# Les logs (historiques des IPs et des fichiers envoyés)

# Erreurs
ErrorLog /home/mmm/Documents/Site_web/log/monsite-error_log

# Acces
TransferLog /home/mmm/Documents/Site_web/log/monsite-access_log

[/code]

J’ai ensuite activé mon VirtualHost et redémarré apache :

a2ensite monsite /etc/init.d/apache2 restart

Le problème est que je n’arrive pas à accéder à mon site, j’ai éssayer ceci :
192.168.1.13/mmm
192.168.1.13/mmm/index.php

Mais rien n’y fait :frowning: à chaque fois j’obtiens un « 404 not found ».

Ai-je une conf foireuse ou c’est ma manière de vouloir y accéder qui n’est pas bonne.

PS : je précise que PHP5 est installé sur le serveur et que le site est fonctionnel. Il marche parfaitement sur le localhost d’un autre PC.

Salut,

Source.

[quote=“wikipedia.org”]En informatique, l’erreur 404 est un code d’erreur du protocole de communication HTTP sur le réseau Internet1. Ce code est renvoyé par un serveur HTTP pour indiquer que la ressource demandée (généralement une page web) n’existe pas. Certains navigateurs web affichent alors le message « 404 File Not Found » (de l’anglais signifiant « fichier non trouvé ») à destination de l’internaute.

Ce code peut aussi être détourné de son sens et renvoyé suite à une restriction d’accès à certaines ressources web (par exemple due à une censure2).

Le premier 4 indique une erreur dans la requête, ici une mauvaise URL, venant d’une page obsolète ou d’une erreur de saisie d’adresse web de la part du visiteur. Le dernier 4 indique le problème causé par cette erreur : la ressource est introuvable.

Le numéro 200 est renvoyé lorsqu’il n’y a aucune erreur, auquel cas la page demandée est affichée par le navigateur. Il est préférable d’utiliser un code d’en-tête 410, lorsque la ressource n’existe plus.

Les numéros d’erreur sont définis dans les spécifications (RFC) du protocole de communication HTTP.

Des logiciels comme CrawlTrack peuvent être utilisés par les webmasters pour lister les erreurs 404, afin de pouvoir les réparer manuellement.

La légende attribue le numéro d’erreur « 404 » à l’anecdote selon laquelle « au CERN, en Suisse, les chercheurs, excédés d’aller sans cesse relancer un ­serveur défaillant installé dans le bureau no 404, aient attribué ce numéro d’erreur au défaut de connexion, en ­souvenir de cette pièce maudite. »3

De nombreux webmasters ont décidé de personnaliser cette page d’erreur, la page 404 étant réellement devenue partie intégrante de la culture Web4.
[/quote]
Source.

En /var/www/ jusque là, tout va bien. Apache2 est correctement installé et accessible depuis un tout autre serveur de ton réseau.

De plus les permissions, y sont déjà préétablit.

group, propriétaire, lecture, écriture.

Dans la mesure ou tu semble avoir perçu quelques rouages de l’indien.

$ ls -lu /var/ ... drwxr-xr-x 6 root root 4,0K 2013-06-19 08:00 www ...

$ [09:48:32]:~$ ll /var/www total 28K ... drwxrwxr-x 39 www-data www-data 4,0K 2013-04-04 15:40 monsite.com ... [09:48:39]:~$

[09:53:09]:~$ ls -lu /etc/apache2/sites-available total 20 ... -rw-r--r-- 1 root root 3025 sept. 1 07:35 monsite.com ... [09:53:26]l~$
Nota: Respects les tabulations.

[code][10:00:36]:~$ grep -v ^# /etc/apache2/sites-available/monsite.com |grep -v ^$

<VirtualHost *:80>
ServerAdmin webmaster@monsite.com
ServerName www.monsite.com
ServerName monsite.com
ServerAlias monsite.com

    DocumentRoot /var/www/monsite.com/
    <Directory />
            Options FollowSymLinks
            AllowOverride all
    </Directory>
    <Directory /var/www/monsite.com/>
            Options -Indexes +FollowSymLinks MultiViews
            AllowOverride all
            Order allow,deny
            allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
            AllowOverride all
            Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
            Order allow,deny
            Allow from all
    </Directory>
    ErrorLog ${APACHE_LOG_DIR}/error.log
    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn
    CustomLog ${APACHE_LOG_DIR}/access.log combined

<VirtualHost *:443>

[10:54:30]:~$ grep -v ^# /etc/apache2/sites-available/default |grep -v ^$ <VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www <Directory /> Options FollowSymLinks AllowOverride all </Directory> <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride all Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride all Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> [10:54:41]:~$


  • Ne cherches pas à réinventer la roue, pour l’heure.

** /var/www


** Observes les logs en live¹, se référant à l’indien, en :

  • /var/log/apache2/access.log
  • /var/log/apache2/error.log

¹ tail -f /var/log/apache2/access.log
¹ tail -f /var/log/apache2/error.log


** Intéresses toi, de près, aux fichiers suivants :

  • /etc/apache2/apache2.conf
  • /etc/hosts
  • /etc/hosts.allow
  • /etc/hosts.deny
  • /etc/resolv.conf
  • /etc/hostname
  • Si besoins > la toile.

  • Si besoins >> Droits* Unix*

Nota : serveur pérationnel, accessible depuis les quatre coins. :wink:

* edit *

  • dep uis

Le problème venait enfait du fait que j’avais mis mon site a cet endroit : /home/mmm/Documents/Site_web/monsite/

J’avais pourtant correctement renseigné la ligne du fichier /etc/apache2/sites-available/monsite :

# Les documents du site (Souvent /var/www/monsite ou /home/monsite) DocumentRoot /home/mmm/Documents/Site_web/monsite

J’ai remis mon site dans /var/www/ et j’ai rechangé la ligne en ceci :

# Les documents du site (Souvent /var/www/monsite ou /home/monsite) DocumentRoot /var/www/monsite

Et cela fonctionne.

Cependant, maintenant que le site se trouve la il appartient a root:root et cela m’embête un peu car a chaque fois que je veux le modifier c’est root qui doit le faire.

Avant en étant dans le /home de l’utilisateur mmm c’était mieux pour le modifier.

Comment puis-je faire?

Salut,

:wink:

Un simple changement de propriétaire et group, récursif (option -R).


[quote=“BelZéButh”]$ [09:48:32]:~$ ls -lu /var/www
total 28K

drwxrwxr-x 39 www-data www-data 4,0K 2013-04-04 15:40 monsite.com

[09:48:39]:~$[/quote]


  • Relancer l’indien.
  • Une base de donnée ? mysql, … à relancer éventuellement.

Oui mais pas vraiment comme je le désire puisque j’ai du déplacer mon site ailleur sur mon serveur, j’aurais bien aimé pouvoir le laisser ou il était…

Un simple changement de propriétaire et group, récursif (option -R).[/quote]
Voila qui est fait, le dossier et son contenu appartiennent bien a www-data:www-data. Mais je ne peux toujours pas le modifier en étant l’utilisateur normal, je dois passer root pour le faire.

Peut être est ce normal après tout que seul root ne puisse modifier ces fichiers? C’est la première fois que je fais un site web donc je sais pas trop.

N’est-ce pas son rôle premier …

Root, le tout puissant et seul maître à bord, enfin dans mon royaume.

* edit *


*** Et, dans la mesure ou ton site est à présent, en /var/… ceci explique cela.


Dans ce cas la, comment les gens font-ils habituellement pour modifier ensuite les fichiers?

Et quel et l’intérêt de mettre les fichiers en www-data:www-data plutot qu’en root:root.

Comme je disais, c’est la première fois que je fais un site web. Je voudrais juste faire bien tout de suite, histoire de prendre les bonnes habitudes.

[quote]*** Et, dans la mesure ou ton site est à présent, en /var/… ceci explique cela.
[/quote]

C’est également le pseudo de l’indien.

J’ai pas compris ce que tu voulais dire :confused:

C’est également le pseudo de l’indien.[/quote]
Dans ce cas la n’y a t’il pas un problème chez moi? Apache a en effet exécuté mon site web alors qu’il appartenait à root.

Ca m’intéresse vraiment de savoir ça :slightly_smiling: Pour le moment je me connecte en root à chaque modif que je veux faire, ce qui n’est pas top…

Salut,

  • Tu avais (ton USER, n’est que le bouffon du roi, à savoir root, le tout puissant !) autorité¹ en /home/USER/Truc_Machin_chose_/monsite.com

  • Actuellement, tu souhaites chassé sur les terres du roi. :naughty:

www-data > le pseudo de l’indien.

  • Dans ce contexte, NON !

*** C’est le super-mega-TOP *** [size=50]en mon modeste, royaume.[/size]

  • non pas ZzTop.

  • JE ne mange PAS de ce pain, !

  • Libres à toi de replacer monsite.com en /home/USER et de lui attribuer les droits* Unix* > (la toile) web.

  • Ou, le laisser en /var/www et gérer par root !

C’est ton serveur, après tout.


¹ Tout est relatif. Demandes, donc à ton Dieu. :118:017

² Contraire en mon palais.

[quote=“Arisoy”]Dans ce cas la, comment les gens font-ils habituellement pour modifier ensuite les fichiers?

Et quel et l’intérêt de mettre les fichiers en www-data:www-data plutot qu’en root:root.

Comme je disais, c’est la première fois que je fais un site web. Je voudrais juste faire bien tout de suite, histoire de prendre les bonnes habitudes.[/quote]
il faudraitt le moins possible (même si parfois pas le choix) de fichiers/dossiers appartenant à www-data (et inscriptibles par www-data, en général), pour des raisons de sécurité.

(www-data étant l’utilisateur système non privilégié, utilisé par le démon apache2. Sous d’autres OS cela peut-être un autre nom d’utilisateur: apache, httpd par exemple)

J’ai redonné le dossier qui contient le site web à mmm:mmm qui est un utilisateur lambda et cela fonctionne, appache l’exécute quand même, je peux donc le modifier sans problème.

Cependant mon dossier est dans /var/www et comme je l’ai dis dans mon premier poste j’aimerais qu’il soit dans /home/mmm/Documents/Site_web

Sauf que dès que je le déplace a cet endroit, je ne peux plus accéder à mon site web.
Je modifie pourtant bien le fichier /etc/apache2/sites-available/monsite pour lui spécifier ceci : DocumentRoot /home/mmm/Documents/Site_web/monsite. Avec un redémarrage d’Appache ensuite biensur.

Mais rien n’y fait, ça ne veux pas… :frowning:

[quote=“Arisoy”]Le problème venait enfait du fait que j’avais mis mon site a cet endroit : /home/mmm/Documents/Site_web/monsite/

J’avais pourtant correctement renseigné la ligne du fichier /etc/apache2/sites-available/monsite :

# Les documents du site (Souvent /var/www/monsite ou /home/monsite) DocumentRoot /home/mmm/Documents/Site_web/monsite

J’ai remis mon site dans /var/www/ et j’ai rechangé la ligne en ceci :

# Les documents du site (Souvent /var/www/monsite ou /home/monsite) DocumentRoot /var/www/monsite

Et cela fonctionne.
[/quote]

Non ! Ton problème est que tu appelles le site par l’IP. Le site appelé est alors le vhost par défaut, qui pointe sur /var/www ! Donc dans ce cas, <adresse_IP>/monsite pointe bien vers /var/www/monsite !

Pour tomber sur le vhost de ton site que tu as créé, il faut que tu appelle le site avec le nom indiqué dans la directive ServerName (monsite.fr dans ton exemple).
Il faut alors que sur le poste client, ce nom pointe bien vers ton serveur web.

Une autre solution est de faire des vhosts par adresse IP (<Virtualhost 10.0.0.1:80>, si tu as plusieurs IP sur ton serveur) ou par port (<VirtualHost *:8080).
Si tu as plusieurs vhosts sur la même IP ou le même port, il faut utiliser les noms pour les différencier.

Cf isalo.org/wiki.debian-fr/Ap … s_virtuels