IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Apache Discussion :

Apache inaccessible depuis le réseau local


Sujet :

Apache

  1. #1
    Membre du Club Avatar de chaying
    Inscrit en
    Mars 2007
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 84
    Points : 57
    Points
    57
    Par défaut Apache inaccessible depuis le réseau local
    Bonjour

    Un probleme que je suppose tout petit : toute connexion a apache depuis mon reseau local me renvoie un 404 sur n'importe quel site.

    Le reseau :
    ordi1 : debian + serveur apache
    ordi2 : debian
    ordi3 : debian

    en localhost (sur ordi1), pas de probleme : tous mes sites sont accessibles..
    des que je passe sur un autre ordi, toujours le meme message 404..

    apache2.conf :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
     
    #
    # ServerRoot: The top of the directory tree under which the server's
    # configuration, error, and log files are kept.
    #
    # NOTE!  If you intend to place this on an NFS (or otherwise network)
    # mounted filesystem then please read the LockFile documentation (available
    # at <URL:http://httpd.apache.org/docs-2.1/mod/mpm_common.html#lockfile>);
    # you will save yourself a lot of trouble.
    #
    # Do NOT add a slash at the end of the directory path.
    #
    ServerRoot "/etc/apache2"
    ServerName workstation.monsite
     
    #
    # The accept serialization lock file MUST BE STORED ON A LOCAL DISK.
    #
    #<IfModule !mpm_winnt.c>
    #<IfModule !mpm_netware.c>
    LockFile /var/lock/apache2/accept.lock
    #</IfModule>
    #</IfModule>
     
    #
    # PidFile: The file in which the server should record its process
    # identification number when it starts.
    # This needs to be set in /etc/apache2/envvars
    #
    PidFile ${APACHE_PID_FILE}
     
    #
    # Timeout: The number of seconds before receives and sends time out.
    #
    Timeout 300
     
    #
    # KeepAlive: Whether or not to allow persistent connections (more than
    # one request per connection). Set to "Off" to deactivate.
    #
    KeepAlive On
     
    #
    # MaxKeepAliveRequests: The maximum number of requests to allow
    # during a persistent connection. Set to 0 to allow an unlimited amount.
    # We recommend you leave this number high, for maximum performance.
    #
    MaxKeepAliveRequests 100
     
    #
    # KeepAliveTimeout: Number of seconds to wait for the next request from the
    # same client on the same connection.
    #
    KeepAliveTimeout 15
     
    ##
    ## Server-Pool Size Regulation (MPM specific)
    ## 
     
    # prefork MPM
    # StartServers: number of server processes to start
    # MinSpareServers: minimum number of server processes which are kept spare
    # MaxSpareServers: maximum number of server processes which are kept spare
    # MaxClients: maximum number of server processes allowed to start
    # MaxRequestsPerChild: maximum number of requests a server process serves
    <IfModule mpm_prefork_module>
        StartServers          5
        MinSpareServers       5
        MaxSpareServers      10
        MaxClients          150
        MaxRequestsPerChild   0
    </IfModule>
     
    # worker MPM
    # StartServers: initial number of server processes to start
    # MaxClients: maximum number of simultaneous client connections
    # MinSpareThreads: minimum number of worker threads which are kept spare
    # MaxSpareThreads: maximum number of worker threads which are kept spare
    # ThreadsPerChild: constant number of worker threads in each server process
    # MaxRequestsPerChild: maximum number of requests a server process serves
    <IfModule mpm_worker_module>
        StartServers          2
        MinSpareThreads      25
        MaxSpareThreads      75 
        ThreadLimit          64
        ThreadsPerChild      25
        MaxClients          150
        MaxRequestsPerChild   0
    </IfModule>
     
    # event MPM
    # StartServers: initial number of server processes to start
    # MaxClients: maximum number of simultaneous client connections
    # MinSpareThreads: minimum number of worker threads which are kept spare
    # MaxSpareThreads: maximum number of worker threads which are kept spare
    # ThreadsPerChild: constant number of worker threads in each server process
    # MaxRequestsPerChild: maximum number of requests a server process serves
    <IfModule mpm_event_module>
        StartServers          2
        MaxClients          150
        MinSpareThreads      25
        MaxSpareThreads      75 
        ThreadLimit          64
        ThreadsPerChild      25
        MaxRequestsPerChild   0
    </IfModule>
     
    # These need to be set in /etc/apache2/envvars
    User ${APACHE_RUN_USER}
    Group ${APACHE_RUN_GROUP}
     
    #
    # AccessFileName: The name of the file to look for in each directory
    # for additional configuration directives.  See also the AllowOverride
    # directive.
    #
     
    AccessFileName .htaccess
     
    #
    # The following lines prevent .htaccess and .htpasswd files from being 
    # viewed by Web clients. 
    #
    <Files ~ "^\.ht">
        Order allow,deny
        Deny from all
    </Files>
     
    #
    # DefaultType is the default MIME type the server will use for a document
    # if it cannot otherwise determine one, such as from filename extensions.
    # If your server contains mostly text or HTML documents, "text/plain" is
    # a good value.  If most of your content is binary, such as applications
    # or images, you may want to use "application/octet-stream" instead to
    # keep browsers from trying to display binary files as though they are
    # text.
    #
    DefaultType text/plain
     
     
    #
    # HostnameLookups: Log the names of clients or just their IP addresses
    # e.g., www.apache.org (on) or 204.62.129.132 (off).
    # The default is off because it'd be overall better for the net if people
    # had to knowingly turn this feature on, since enabling it means that
    # each client request will result in AT LEAST one lookup request to the
    # nameserver.
    #
    HostnameLookups Off
     
    # ErrorLog: The location of the error log file.
    # If you do not specify an ErrorLog directive within a <VirtualHost>
    # container, error messages relating to that virtual host will be
    # logged here.  If you *do* define an error logfile for a <VirtualHost>
    # container, that host's errors will be logged there and not here.
    #
    ErrorLog /var/log/apache2/error.log
     
    #
    # LogLevel: Control the number of messages logged to the error_log.
    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    #
    LogLevel debug
     
    # Include module configuration:
    Include /etc/apache2/mods-enabled/*.load
    Include /etc/apache2/mods-enabled/*.conf
     
    # Include all the user configurations:
    Include /etc/apache2/httpd.conf
     
    # Include ports listing
    Include /etc/apache2/ports.conf
     
    #
    # The following directives define some format nicknames for use with
    # a CustomLog directive (see below).
    # If you are behind a reverse proxy, you might want to change %h into %{X-Forwarded-For}i
    #
    LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
    LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%h %l %u %t \"%r\" %>s %O" common
    LogFormat "%{Referer}i -> %U" referer
    LogFormat "%{User-agent}i" agent
     
    #
    # Apache status
    <Location /server-status>
        SetHandler server-status
        Order Deny,Allow
        Deny from all
        Allow from 127.0.0.1
    </Location>
    ExtendedStatus On
     
    #
    # Define an access log for VirtualHosts that don't define their own logfile
    CustomLog /var/log/apache2/other_vhosts_access.log vhost_combined
     
     
    # Include of directories ignores editors' and dpkg's backup files,
    # see README.Debian for details.
     
    # Include generic snippets of statements
    Include /etc/apache2/conf.d/
     
    # Include the virtual host configurations:
    Include /etc/apache2/sites-enabled/
    vhost :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    NameVirtualHost 192.168.0.10:80
    <VirtualHost 192.168.0.10:80>
            ServerName              vhost
            ServerAlias             vhost *.vhost
            ServerAdmin             admin@localhost
     
            DocumentRoot            /var/www/vhost
            <Directory />
                Options             None
                AllowOverride       None
                Allow from          all
                #127.0.0.1 10.0.1.4
                AddHandler          mod_python .psp
                PythonHandler       mod_python.psp
                PythonDebug         On
            </Directory>
    </VirtualHost>
    hosts :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    # host
    127.0.0.1                   localhost.localdomain	localhost
    127.0.1.1                   workstation
    10.0.1.2                    workstation.monsite
     
    192.168.0.10                vhost
     
    # reseau
    10.0.1.3                    ordi2.monsite
    10.0.1.4                    ordi3
    Si un oeil neuf pouvait m'aider.. Merci

  2. #2
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Le nom de ton VH est "vhost", ce qui signifie que pour y accéder, tant en local que depuis un autre PC, il faut que tu tapes http://vhost/, donc que tous les PC sachent que vhost correspond à l'IP 192.168.0.10 (fichier etc/hosts). Si ce n'est pas le cas (URL ou résolution de nom), c'est normal que ça ne fonctionne pas.

  3. #3
    Membre du Club Avatar de chaying
    Inscrit en
    Mars 2007
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 84
    Points : 57
    Points
    57
    Par défaut
    Hello Mac, merci de t'interesser a mon cas.

    Le nom de ton VH est "vhost", ce qui signifie que pour y accéder, tant en local que depuis un autre PC, il faut que tu tapes http://vhost/, donc que tous les PC sachent que vhost correspond à l'IP 192.168.0.10 (fichier etc/hosts).
    Est ce que tu veux dire par la, qu'il est possible d'arriver a ce resultat juste en configurant les fichiers hosts respectifs ?

    Je croyais que taper l'ip du pc suivi du nom de site suffisait : visiblement non. J'arrive maintenant a atteindre le serveur par : http://10.0.1.2/vhost mais l'url renvoye ou comprise est fausse : http://10.0.1.2/index.php ??

    J'ai un site (enabled) virtualhost par defaut ou DocumentRoot est defini a /var/www et l'autre (celui que je cherche a atteindre) defini a /var/www/vhost mais cette derniere definition est systematiquement ignore par apache qui ne semble connaitre que la premiere definition par defaut ??

  4. #4
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Un virtual host, c'est avant tout le "nom du site" que tu tapes dans l'URL : dans http://www.developpez.net/forums/, le nom du site est www.developpez.net, pas forums. Donc si un hôte virtuel est configuré sur le serveur Web qui correspond à www.developpez.net, c'est ce nom www.developpez.net qui permet d'identifier l'hôte virtuel.

    Avec Apache, une configuration par hôte virtuel nommé se construit de la manière suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    # A ne repeter qu'une fois par couple xxx:port pour l'ensemble de la conf Apache
    NameVirtualHost xxx:port
     
    <VirtualHost xxx:port>
        ServerName nom_du_vh
        ...
    </VirtualHost>
    Dans ton cas, tu as fait ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    NameVirtualHost 192.168.0.10:80
    <VirtualHost 192.168.0.10:80>
            ServerName              vhost
            ...
    </VirtualHost>
    Tu as donc configuré un hôte virtuel pour le site vhost qui est donc accessible logiquement par l'URL http://vhost/...

    De là, on a encore deux questions à se poser : quels sont les fichiers associés à ce virtual host (= document root) et comment faire en sorte que n'importe ou presque quel navigateur trouve le serveur Web qui correspond à vhost.

    Pour le document root, c'est simple, c'est la valeur de la directive DocumentRoot du bloc <VirtualHost> concerné : /var/www/vhost. Ce qui signifie que si tu tapes http://vhost/index.php, tu demandes le fichier /var/www/vhost/index.php.

    Pour faire en sorte que les navigateurs trouvent le serveur Web associé au nom vhost, il faut voir ce qu'on appelle les mécanismes de résolution de nom : le but, pour le navigateur, est de trouver une IP associée au nom vhost. Pour cela, le navigateur (ou le proxy si ton navigateur passe par un proxy) va faire appel à des fonctions du système d'exploitation qui généralement vont d'abord examiner le contenu du fichier etc/hosts, et si aucune IP n'est trouvée pour le nom vont demander au serveur DNS configuré pour le système. Le plus simple est donc souvent de modifier le fichier etc/hosts de chaque PC qui doit pouvoir se connecter au serveur (et pas seulement le fichier etc/hosts du serveur car les mécanismes de résolution de nom sont des mécanismes locaux). Dans ton cas, c'est un peu spécial : vu que tu as associé dans Apache ton VH vhost à l'IP 192.168.0.10 (signature <VirtualHost 192.168.0.10:80>), il faut associer vhost à l'IP 192.168.0.10.

    Après cette longue introduction, si tu fais http://10.0.1.2/, tu n'as aucune chance de tomber sur la configuration de ton VH vhost pour deux raisons : tu demandes le site 10.0.1.2 au lieu de vhost, et vhost est associé dans Apache à l'IP 192.168.0.10 (qui n'est pas 10.0.1.2 jusqu'à preuve du contraire, même si ces deux IP sont portées par la même machine).

    Que se passe-t-il alors si tu demandes http://10.0.1.2/vhost ? Ton navigateur contacte le serveur Web se trouvant sur la machine 10.0.1.2, port 80 (dans les URL http://... qui dit pas de port dit port 80). Si c'est le serveur Apache dont on parle depuis le début, tu ne tombes logiquement pas sur ton VH vhost (voir paragraphe précédent) et si aucun VH n'est configuré pour le site "10.0.1.2", tu tombes sur la configuration par défaut d'Apache, donc le document root /var/www, donc http://10.0.1.2/vhost doit bien te mener sur le répertoire /var/www/vhost.

  5. #5
    Membre du Club Avatar de chaying
    Inscrit en
    Mars 2007
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 84
    Points : 57
    Points
    57
    Par défaut
    Salut Mac

    Une reponse plus qu'exhaustive et super claire : tous mes virtual hosts marchent maintenant !
    Et en plus, je sais pourquoi

    Un grand merci a toi donc. Un resolu de plus en bonne et due forme..

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 08/12/2011, 18h48
  2. [Routeur] Adresse IP publique depuis le réseau local m'affiche la page du routeur
    Par Miles Raymond dans le forum Dépannage et Assistance
    Réponses: 11
    Dernier message: 20/10/2011, 10h00
  3. Ouvrir un fichier depuis le réseau local
    Par bfespi69 dans le forum C++Builder
    Réponses: 7
    Dernier message: 24/03/2010, 12h44
  4. XAMPP: MySQL inaccessible depuis le réseau
    Par SpecialCharacter dans le forum Administration
    Réponses: 1
    Dernier message: 31/01/2008, 09h51
  5. Réponses: 9
    Dernier message: 13/09/2007, 00h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo