j’ai créé un site en local( xxxx.html) que je peux contacter par mon localhost (créé par Directory /opt/www/htdocs) OK jusque là! mais si je veux l’essayer par l’@ ip de mon PC, suivi de xxx.html, pas moyen d’y arriver:
"Firefox ne peut établir de connexion avec le serveur à l’adresse indiquée.
Le site est peut-être temporairement indisponible ou surchargé. Réessayez plus
tard ;
Si vous n’arrivez à naviguer sur aucun site, vérifiez la connexion
au réseau de votre ordinateur ;
Si votre ordinateur ou votre réseau est protégé par un pare-feu ou un proxy,
assurez-vous que Firefox est autorisé à accéder au Web "
Pourtant tout semble fait dans les normes requises (Directory sur apache2.conf rempli, virtual hosts complété , " serveurctl reload apache2" fait …
en plus ça a connecté il y a 3 jours!!
depuis je n’ai rajouté que quelques modifs de texte dans mon fichier xxxx.html ;
Un mystère à éclaicir?
merci
On peut commencer par demander de vérifier si apache écoute sur l’adresse et le port considérés (avec ss ou netstat -tnlp). Si ce n’est pas le cas, il sera temps de s’intéresser à sa configuration.
salut, il semble dans « ss » que l’@ip de mon PC connecte bien avec des sites autres que le PC émetteur de mon exemple: ce dernier a lors de la tentative de connexionà mon adresse ip/xxxx.html un statut dans « ss » indiqué à SYN-SENT (what is it ?) au lieu de ESTAB !
quant à ma config, voilà le plus intéressant dans apache2.conf (extrait):
# Include module configuration:
IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf
# Include list of ports to listen on
Include ports.conf
# Sets the default security model of the Apache2 HTTPD server. It does
# not allow access to the root filesystem outside of /usr/share and /var/www.
# The former is used by web applications packaged in Debian,
# the latter may be used for local directories served by the web server. If
# your system is serving content from a sub-directory in /srv you must allow
# access here, or in any related virtual host.
<Directory />
Options FollowSymLinks
AllowOverride None
Require all denied
</Directory>
<Directory /usr/share>
AllowOverride None
Require all granted
</Directory>
<Directory /opt/www>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
#<Directory /srv/>
# Options Indexes FollowSymLinks
# AllowOverride None
# Require all granted
#</Directory>
pour 01-luminaire.conf, on a (extrait) :
# However, you must set it for any further virtual host explicitly.
ServerName luminaire.html
ServerAdmin webmaster@localhost
DocumentRoot /opt/www/htdocs
# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the loglevel for particular
# modules, e.g.
#LogLevel info ssl:warn
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory /opt/www/htdocs>
Options All
AllowOverride None
</Directory>
PC émetteur ? Tu essaies d’accéder au site depuis le PC qui fait tourner apache ou depuis un autre PC ? Situé où ?
Il faut regarder les ports en écoute (listen, d’où les options -tnlp mentionnées) sur le serveur.
le PC émetteur est un autre PC, mais connecté à un port du même hub (live box); voici la sortie de ss -tnlp
sur mon PC récepteur (serveur Apache):
root@magma:/home/ordi# ss -tnlp
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 511 *:80 *:* users:(("apache2",pid=1829,fd=4),("apache2",pid=665,fd=4),("apache2",pid=664,fd=4),("apache2",pid=663,fd=4),("apache2",pid=662,fd=4),("apache2",pid=661,fd=4),("apache2",pid=644,fd=4))
donc il semble bien que la réception n’indique aucun signe !
apache écoute le port 80 sur toutes les adresses IP de la machine, c’est un bon début.
telnet adresse.ip.du.serveur 80
depuis le serveur ou depuis le client devrait se connecter, ensuite tu peux taper
GET / HTTP/1.0
suivi de plusieurs appuis sur la touche « entrée » et la réponse devrait s’afficher.
Si ce n’est pas le cas, vérifier l’adresse IP, puis les règles de firewall si présentes.
heu, heu…je me trouve piteux: en recopiant l’adresse ip du PC serveur j’ai interverti un chiffre (au lieu de 192 j’avais écrit 198 …)
et donc tout fonctionne!
Je demande platement pardon à vous tous qui vous êtes penché sur le pb, et à qui j’ai fait perdre du temps !
(c’est donc pour çà que la connexion marchait il y a 3/4 jours: le chiffre ip était le bon à ce moment là)
merci et mille excuses
Patrick
hello, maintenant que le pb de connexion entre 2 PC du même réseau(derrière live-box) est résolu par les sous-adresses ( 192.168.1.x) se pose le pb de connexion par un PC extérieur à tout ce réseau : en clair, j’ai pu récupérer l’@ de la live-box, mais en la tapant de l’extérieur j’ arrive sur cette live-box, mais après? comment taper vers le PC connecté à la live-box? faut-il rajouter un autre nombre à l’@ live-box ?
quelques tuyaux ? merci
pour rendre accessible un PC de ton réseau interne pour le réseau externe (internet), tu peux créer un NAT (network address translation) sur ta box.
Si ton serveur web a l’IP 192.168.1.40, et ta box l’adresse IP externe 1.2.3.4, tu peux faire une redirection des ports 80 et 443 vers les ports 80 et 443 de ton serveur web, ainsi http://1.2.3.4:80 sera « redirigé » vers http://192.168.1.40:80
Tu peux aussi utiliser des ports externes plus exotiques, par exemple 123456 redirige vers le port 80 de ton serveur web, et dans ce cas depuis l’extérieur il te faudra taper http://1.2.3.4:123456
Pour lier un nom de domaine à l’adresse IP de ta box, tu peux aussi utiliser un service de DNS dynamique (DynDNS) gratuit et supporté par ta livebox, ce qui te permettra de taper par exemple http://mon_exemple.dyndns.com:80 au lieu de http://1.2.3.4:80 (surtout que les box particuliers changent de temps en temps d’adresses IP externes)
Par contre, assure-toi que ton serveur apache est sécurisé (tu pourras trouver des tas de tutos et articles sur le sujet, sur le web) et à jour des correctifs de sécurité, car il deviendra accessible à l’Internet.
impossible de rentrer tel quel l’@ip de la box suivi de:80 aucun effet!je suis donc allé me perdre dans les commandes vi de: ip a, /etc/network/interfaces, /etc/resolv.conf… rien ne progresse dans mes recherches, je dois certainement oublier des étapes
…
As-tu configuré ta box avec les règles NAT comme on te l’a expliqué ? Si l’adresse interne fonctionne de ton LAN, l’adresse externe va fonctionner avec les règles NAT.
Attention si tu veux utiliser l’@ externe à partir d’une autre machine sur ton LAN : certaines box (orange par exemple) ne gèrent pas le NAT hairpining.
dans la livebox, l’@ip du PCoù se trouve mon localhost/nom site.html a bien port 80 valide, mais l’adressage http://adresse box :80 ne donne rien…
la procédure me dépasse !
Tu peux fourni une capture d’écran de ta règle de NAT mise en place sur l’interface de la Livebox ?
Accessoirement la configuration de ton vhost ?
Si tu ne configure pas ton vhost pour répondre sur l’ip tu ne parviendra pas à mettre en place la redirection PAT vers le port 80 de ton serveur ET avoir accès à ton site.
<VirtualHost *:80>
# The ServerName directive sets the request scheme, hostname and port that
# the server uses to identify itself. This is used when creating
# redirection URLs. In the context of virtual hosts, the ServerName
# specifies what hostname must appear in the request's Host: header to
# match this virtual host. For the default virtual host (this file) this
# value is not decisive as it is used as a last resort host regardless.
# However, you must set it for any further virtual host explicitly.
ServerName luminaire.html
#ServerAlias 198.168.1.12
ServerAdmin webmaster@localhost
DocumentRoot /opt/www/htdocs
# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the loglevel for particular
# modules, e.g.
#LogLevel info ssl:warn
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory /opt/www/htdocs>
Options All
AllowOverride None
</Directory>
# For most configuration files from conf-available/, which are
# enabled or disabled at a global level, it is possible to
# include a line for only one particular virtual host. For example the
# following line enables the CGI configuration for this host only
# after it has been globally disabled with "a2disconf".
#Include conf-available/serve-cgi-bin.conf
</VirtualHost>
# vim: syntax=apache ts=4 sts=4 sr noet