web-dev-qa-db-fra.com

Installation propre d’Apache mais ne peut y accéder via le client LAN

Je lutte contre ce problème depuis quelques jours maintenant et je suis à bout, alors toute aide serait formidable. J'ai plusieurs ordinateurs au bureau. L'un est maintenant un serveur Ubuntu que je configure pour une application Web. Le reste est un mélange de Windows 7 et d’Apples. Je ne parviens pas à accéder à Ubuntu LAMP via les autres navigateurs clients dotés de l’IP. Je reçois une erreur "Page Not Found" après une rotation prolongée. Je ne suis pas intéressé par le fait que le serveur Ubuntu soit accessible à partir du réseau étendu, uniquement du réseau local.

Installation sur le serveur Ubuntu: J'ai mis un ordinateur sur un disque dur et installé une nouvelle version de 15.04, ce qui en fait le seul système d'exploitation du système. J'ai installé xrdp pour activer le contrôle du bureau à distance. Cela installé sans accroc. J'ai exécuté ce apt-get install lamp-server^ pour installer la pile LAMP. Cela installé sans accroc. Je n'ai changé aucun des fichiers conf. C'est ce que je montre quand je lance ufw status:

root@ubuntuserver:/# ufw status
Status: inactive

Voici à quoi ressemble ma iptables lorsque je lance iptables -L:

root@ubuntuserver:/# iptables -L
Chain INPUT (policy ACCEPT)
target    prot  opt  source          destination
ACCEPT    tcp   --   anywhere        anywhere           tcp dpt:ssh
ACCEPT    tcp   --   anywhere        anywhere           tcp dpt:http

Chain FORWARD (policy ACCEPT)
target    prot  opt  source          destination

Chain OUTPUT (policy ACCEPT)
target    prot  opt  source          destination

C'est ce que netstat montre pour netstat -ntlp:

root@ubuntuserver:/# netstat -ntlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      17201/mysqld   
tcp        0      0 127.0.1.1:53            0.0.0.0:*               LISTEN      1227/dnsmasq   
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      11437/sshd     
tcp        0      0 127.0.0.1:5910          0.0.0.0:*               LISTEN      1742/Xvnc      
tcp        0      0 127.0.0.1:3350          0.0.0.0:*               LISTEN      1594/xrdp-sesman
tcp        0      0 0.0.0.0:3389            0.0.0.0:*               LISTEN      1590/xrdp      
tcp6       0      0 :::80                   :::*                    LISTEN      19199/Apache2  
tcp6       0      0 :::22                   :::*                    LISTEN      11437/sshd

Parfois, si je service Apache2 reload, je peux accéder une fois à la page It Works à partir de mon ordinateur Windows 7. Mais une seule fois. Si j'essaie d'accéder à la page phpinfo.php, le délai est dépassé. Ou inversement, si j'essaie d'abord d'accéder à la page phpinfo.php, je ne peux pas accéder à la page It Works.

Sur le serveur Ubuntu, je peux accéder à n’importe quel nombre de pages via localhost et l’adresse IP 172.19.0.15. Je n'ai pas le même genre de succès via d'autres ordinateurs au bureau. Et comme il s'agit d'une application Web à laquelle ils auront besoin d'accéder, j'ai besoin de cet accès.

Qu'est-ce que je rate?

EDIT 1

En suivant les conseils de Ben, j'ai édité le fichier ports.conf comme suit:

#Listen 80
Listen 0.0.0.0:80

J'ai redémarré le service Apache2 et voici à quoi ressemble netstat:

tcp    0    0  0.0.0.0:80    0.0.0.0:*     LISTEN     9342/Apache2

Cependant, j'ai toujours le même comportement. J'ai pu accéder une fois au phpinfo.php ou au It Works!, puis je ne pouvais pas accéder à une autre page.

J'ai lu sur la modification de l'entrée <Directory> dans Apache2.conf. Actuellement, on lit:

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Require all denied
</Directory>
<Directory /usr/share>
    AllowOverride None
    Require all denied
</Directory>
<Directory /var/www>
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

Mais encore une fois, je n'ai pas changé cela par défaut. Cela et le localhost fonctionne bien ... Des autres pensées?

EDIT 2

Voici le contenu de mon fichier 000-default.conf:

<VirtualHost *:80>
    # The ServerName directive sets the request scheme, hostname and port t$
    # 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 www.example.com

    ServerAdmin webmaster@localhost
    DocumentRoot /var/www

    # 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
    #LogLevel info ssl:warn

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

    # 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 sw=4 sts=4 sr noet

J'ai redémarré le serveur et je ne peux toujours pas y accéder à l'aide de l'adresse IP d'un ordinateur du réseau local.

2
Michael

Le problème ne vient pas de votre pare-feu mais de votre configuration Apache.

Comme expliqué correctement, vous pouvez voir par cette ligne:

tcp6       0      0 :::80                   :::*                    LISTEN      19199/Apache2  

que Apache écoute les deux ipv4 et ipv6.

Puisque vous avez mentionné que cela fonctionne avec localhost, je vous suggère de vérifier la configuration de votre réseau.

0
Ben