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 :

Pas de Listen 80, mais %{SERVER_PORT} renvoie 80


Sujet :

Apache

  1. #1
    Membre actif Avatar de leodi
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2004
    Messages : 172
    Points : 224
    Points
    224
    Par défaut Pas de Listen 80, mais %{SERVER_PORT} renvoie 80
    Bonjour à tous,

    Voilà 2 ans que je n'ai pas posté sur developpez.net, mais là je sèche

    Mon problème est simple, apache écoute sur 1080 et 443, mais dans les règles de redirection (%{SERVER_PORT}) et php ($_SERVER['SERVER_PORT']), 80 est toujours retourné. Quelqu'un aurait une idée ?

    Configuration :
    root@dev:/etc/apache2# grep -R Listen .
    ./ports.conf:Listen 1080
    ./ports.conf: Listen 443

    - Un grep 80 sur le même dossier ne renvoie rien (rien pour "80" directement)

    Tests :
    root@dev:/etc/apache2# telnet localhost 80
    Trying ::1...
    Trying 127.0.0.1...
    telnet: Unable to connect to remote host: Connection refused

    sockstat -l | grep ":80" ne retourne rien

    root@dev:/etc/apache2# telnet localhost 1080
    Trying ::1...
    Trying 127.0.0.1...
    Connected to localhost.

    Système
    root@dev:/etc/apache2# apache2 -v
    Server version: Apache/2.2.14 (Ubuntu)
    Server built: Nov 18 2010 21:17:19

    Et une autre question, est t'il possible sur apache de faire du ssl sur le même port que les connexions normales ? Comme webmin, si on passe pas par du ssl il affiche un erreur, mais le port reste toujours 10000. Quand je fais mes tests apache me retourne une erreur : ssl_error_rx_record_too_long.

    Merci d'avance !

  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
    C'est possible en passant par des hôtes virtuels. La directive Listen ne fait pas tout : c'est prévu de pouvoir indiquer un autre port que celui de Listen par exemple dans le cas où Apache se trouve derrière un reverse proxy.

    Citation Envoyé par leodi Voir le message
    Et une autre question, est t'il possible sur apache de faire du ssl sur le même port que les connexions normales ?
    Non : un port Apache est soit pour faire du HTTP simple, soit pour faire du HTTPS, pas les deux en même temps.

  3. #3
    Membre actif Avatar de leodi
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2004
    Messages : 172
    Points : 224
    Points
    224
    Par défaut
    Merci pour tes réponses

    Tous mes VH sont en *:1080 ou *:443.

    Pour ma configuration d'apache, les seules modifications sont les VH et suPHP. Voici la conf de celui sur lequel je fais mes tests :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <VirtualHost *:1080>
    DocumentRoot /www
            <Directory "/www">
                    allow from all
                    Options +Indexes
            </Directory>
    ServerName www.com
    ErrorLog /var/log/apache2/www/error.log
    LogLevel debug
    TransferLog /var/log/apache2/www/access.log
     
    suPHP_ConfigPath /www/conf
    </VirtualHost>
    Il y aurait t'il un moyen de forcer les valeurs de SERVER_PORT dans la configuration à 1080 pour certains VH ? SetEnv ne fonctionne pas pour ce cas là. Au pire je peux toujours modifier directement les .htaccess et les scripts php mais engendrera des problèmes de déploiement.

  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
    Citation Envoyé par leodi Voir le message
    Tous mes VH sont en *:1080 ou *:443.
    C'est parfaitement normal : les signatures des VH doivent correspondre à des ports en Listen.

    Citation Envoyé par leodi Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <VirtualHost *:1080>
    ...
    ServerName www.com
    ...
    </VirtualHost>
    Tout le secret est là : la directive ServerName. ServerName doit être suivie de la valeur de l'en-tête HTTP Host envoyé par les navigateurs et qui correspond au VH. www.com, en langage HTTP, signifie http://www.com/, c'est-à-dire "nom d'hôte www.com, port 80". C'est port 80 car comme il n'est pas indiqué c'est implicitement le port par défaut de HTTP, soit 80. Si tu veux que tes URL soient toutes http://www.com:1080/..., cela signifie que l'en-tête Host vaut www.com:1080, donc la directive ServerName du VH correspondant doit être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ServerName www.com:1080
    Pour HTTPS, c'est exactement la même chose : si on n'indique pas de numéro de port dans ServerName cela suppose qu'on utilise le port 443.

    Une bonne pratique consiste à systématiquement indiquer le numéro de port dans ServerName même s'il s'agit des ports par défaut.

  5. #5
    Membre actif Avatar de leodi
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2004
    Messages : 172
    Points : 224
    Points
    224
    Par défaut
    Arf, j'avais pourtant zieuté la doc et
    If no port is specified in the ServerName, then the server will use the port from the incoming request
    Et là ça fonctionne, mes scripts réagissent pour la première fois correctement sur le serveur, c'est vraiment émouvant

    Merci beaucoup pour ton aide et pour le cours _Mac_ !

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 03/05/2007, 11h21
  2. [MySQL] Requête qui ne s'exécute pas MAIS qui renvoie true pour mysql_query()
    Par francis13 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 01/05/2007, 03h31
  3. [C#] Fonction comme MessageBox mais qui renvoie un string
    Par kinou dans le forum Windows Forms
    Réponses: 5
    Dernier message: 19/05/2006, 11h40
  4. Réponses: 2
    Dernier message: 05/05/2006, 14h30
  5. [SQL*Net] pas de listener : TNS-12547
    Par aline dans le forum Oracle
    Réponses: 2
    Dernier message: 30/05/2005, 11h05

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