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 :

Win Server2008/Apache (Zend)


Sujet :

Apache

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 92
    Points : 57
    Points
    57
    Par défaut Win Server2008/Apache (Zend)
    Bonjour,

    Je suis débutant en administration de serveur et encore plus sur de l'hébergement Windows. Or ma société m'impose d'héberger du PHP sur un Windows Server 2008/IIS 7.

    J'ai donc opté pour la solution Zend qui optimise les performances d'un serveur APACHE/PHP sur windows avec FastCGI.

    La plateforme fonctionne très bien, mes tests en local sont concluants.

    Par contre, j'essaie maintenant de rendre accessible le serveur depuis l'extérieur et je suis toujours en train de me demander si je fais bien, surtout niveau sécurité

    J'ai créé l'arbo suivante :

    D:/Zend/
    ---Apache2
    ---Core

    D:/website/
    ---logs
    ---www

    D:/website/www/ :
    ---dossiers sites
    ---dossiers librairies partagées par tous les sites

    Et pour un site j'ai prévu :

    D:/website/www/nom-du-site/
    ---stats
    ---fichiers du site


    Par défaut (par Zend) mon fichier de conf apache2 contient ces lignes :

    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
    Listen 80
     
    Servername localhost:80
     
    DocumentRoot "D:/Zend/Apache2/htdocs"
     
    <Directory />
        Options FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Satisfy all
    </Directory>
     
    <Directory "D:/Zend/Apache2/htdocs">
        Options Indexes FollowSymLinks
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory>
     
    <Directory "D:/Zend/Apache2/cgi-bin">
        AllowOverride None
        Options None
        Order allow,deny
        Allow from all
    </Directory>
     
    <Location /server-info>
        SetHandler server-info
        Order deny,allow
        Deny from all
        Allow from 127.0.0.1
    </Location>
     
    <Location /server-status>
        SetHandler server-status
        Order deny,allow
        Deny from all
        Allow from 127.0.0.1
    </Location> 
     
    LoadModule zend_enabler_module "D:/Zend/Core/modules/apache2.2/zend_fcgi.dll"
    FastCgiConfig "D:/Zend/Core/etc/fastcgi.conf"
    AddHandler fastcgi-script .php 
    AddType application/x-httpd-php .php 
    <Location /ZendCore>
      Order deny,allow
      Allow from all
    </Location>
    Alias /ZendCore "D:/Zend/Core/GUI"

    Maintenant je souhaite rendre le serveur accessible via l'extérieur, et je ne sais pas si cette configuration est idéale.
    Déjà, j'ai évidemment transformé certaines lignes en :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Listen 80
     
    Servername monip:80
    Mais quel "DocumentRoot" dois-je configurer ?
    "D:/website/www/" ?

    Si c'est le cas, comment est-ce que je peux rendre visible quand même mes GUI Zend qui sont actuellement accessible via "D:/Zend/Core/GUI" ?

    Je suppose que chaque site ne doit surtout pas être accessible via : http://ip-du-serveur/nom-du-rep/

    Mais comment faire ?

    J'ai lu pas de mal de chose sur Apache, mais il y a certaines choses qui m'échappent encore. Il s'agit d'un serveur de production et je ne veux surtout pas faire n'importe quoi

    Si certains peuvent m'éclairer ce serait super !

    En gros mon vrai problème ici est de savoir à quoi devrait ressembler la configuration d'Apache pour un serveur de production sécurisé qui contiendrait des sites indépendants dans le répertoire "D:/website/www/" chacun accessible au final par un nom de domaine propre.

    Merci beaucoup !

    Benjamin.

  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
    Déjà, c'est quoi un site et avec quel URL ou hostname as-tu prévu d'y accéder ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 92
    Points : 57
    Points
    57
    Par défaut
    je vais avoir des sites clients stockés dans des dossiers portant leur nom de sous-domaine s'il s'agit d'un groupe de clients ou domaine sinon.

    Exemple dans "D:/website/www/" j'aurai des dossiers :

    truc
    bidule/toto
    bidule/titi
    machin/toto
    machin/titi

    Ces sites seront accessibles respectivement via :

    www.truc.com
    toto.bidule.com
    titi.bidule.com
    toto.machin.com
    titi.machin.com

    Mais quel importance ? Tout sera hébergé sur le même serveur.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 92
    Points : 57
    Points
    57
    Par défaut
    Je m'auto-répond pour une partie de ma question

    Pour les domaines et les sous-domaines je suppose que je vais faire des Virtual Hosts dans un fichier vhost.conf que j'incluerai ensuite dans le httpd.conf du type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    NameVirtualHost www.nom-de-domaine.truc
    <VirtualHost www.nom-de-domaine.truc> 
      ServerAdmin mon-email@nom-de-domaine.truc
      DocumentRoot D:/website/www/nom-du-rep/
      ServerName www.nom-de-domaine.truc
      ErrorLog D:/website/logs/nom-de-domaine.truc_errors
      TransferLog D:/website/logs/nom-de-domaine.truc_access
    </VirtualHost>
    pour un nom de domaine

    et :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    NameVirtualHost bidule.nom-de-domaine.truc
    <VirtualHost bidule.nom-de-domaine.truc> 
      ServerAdmin mon-email@nom-de-domaine.truc
      DocumentRoot D:/website/www/nom-du-rep/
      ServerName bidule.nom-de-domaine.truc
      ErrorLog D:/website/logs/bidule.nom-de-domaine.truc_errors
      TransferLog D:/website/logs/bidule.nom-de-domaine.truc_access
    </VirtualHost>
    pour les sous-domaines...

    Arrêtez moi si je me trompe

    Mais pour le reste de ma question ? Que dois-je faire du "DocumentRoot" déjà présent dans le fichier de conf et des autres paramètres que j'ai indiqué dans mon premier message ?

    Et dois-je configurer mes GUI Zend et PhpMyadmin comme des virtual hosts ? Même s'ils ne sont accessibles qu'en local ?

    Merci.

  5. #5
    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 bien ça, il faut passer par les virtual hosts. Pour info, il y a une notion de document root virtuel qui pourra t'être d'une grande aide : http://httpd.apache.org/docs/2.2/vhosts/mass.html

    A propos de la conf de VH que tu donnes, il faut éviter les noms dans les directives NameVirtualHost et <VirtualHost> : plutôt passer par les IP ou même carrément *, ce sera plus sûr et surtout plus simple. Ce qu'il faut indiquer à ces endroits-là, c'est soit une IP locale au serveur par laquelle les requêtes pour les VH arrivent, soit * pour dire "quelque soit l'IP par laquelle on arrive". Concrètement, mettre une IP n'a d'intérêt que pour les serveurs équipés de plusieurs interfaces réseau. Le plus simple reste toujours de mettre *. Ensuite, il est préférable également de mettre un numéro de port, et là idem que pour *, il faut que ce soit le port d'écoute d'Apache par lequel les requêtes arrivent. Donc, le plus simple, si ton Apache écoute sur le port 80, c'est de mettre *:80 partout (NameVirtualHost et <VirtualHost>).

    Citation Envoyé par Delprog Voir le message
    Mais pour le reste de ma question ? Que dois-je faire du "DocumentRoot" déjà présent dans le fichier de conf et des autres paramètres que j'ai indiqué dans mon premier message ?

    Et dois-je configurer mes GUI Zend et PhpMyadmin comme des virtual hosts ? Même s'ils ne sont accessibles qu'en local ?
    Il y a un risque évident à indiquer le répertoire parent de tous tes VH dans le DocumentRoot général, car dans ce cas, en faisant http://IP/bidule/toto, on tombera sur un site, et si tes scripts ne sont pas prévus pour supporter des accès de la sorte, y aura des bugs et des risques d'exploit. Donc, j'indiquerais un autre répertoire, par exemple placé à côté des autres, mais pas le répertoire parent commun à tous.

    Pour PhpMyAdmin, tu peux passer par alias (configuration standard, d'ailleurs), donc tu peux mettre les fichiers où tu veux, mais une fois de plus, dans un endroit bien précis accessible que par cet alias.

    Pour Zend, aucune idée, je ne connais pas. J'imagine que c'est également un alias, donc idem PhpMyAdmin.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 92
    Points : 57
    Points
    57
    Par défaut
    Ok j'ai pigé pour les VHOST.

    Donc, j'indiquerais un autre répertoire, par exemple placé à côté des autres, mais pas le répertoire parent commun à tous.
    Oui donc en gros je crée un dossier vide dans /www et je fais pointer le DocumentRoot dessus. Et je gère tout le reste en VHOST ou en Alias.
    J'aurais donc un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    DocumentRoot "D:/website/www/empty"
     
    <Directory "D:/website/www/empty">
        Options Indexes FollowSymLinks
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory>
    Mais que dois-je faire de ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <Directory />
        Options FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Satisfy all
    </Directory>
    et ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <Directory "D:/Zend/Apache2/cgi-bin">
        AllowOverride None
        Options None
        Order allow,deny
        Allow from all
    </Directory>
    Par rapport à mon arborescence ?

    Donc pour PhpMyAdmin je vais un truc tout con du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <Location /phpmyadmin>
      Order deny,allow
      Allow from all
    </Location>
    Alias /phpmyadmin "D:\Zend\Core\GUI\phpMyAdmin"
    Et j'y accederai en local via http://localhost/phpmyadmin/ c'est bien ça ?
    Par contre les Alias c'est bien sécurisé ? Impossible d'avoir accès à autre chose que phpmyadmin dans ce cas là ?

    Merci beaucoup ton aide est précieuse

    Benjamin.

  7. #7
    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
    Pour le premier <Directory />, tu le laisses. C'est une sécurité supplémentaire pour dire que tout ton système est protégé par défaut.

    Pour le second <Directory "D:/Zend/Apache2/cgi-bin">, je sais pas trop. Ca dépend du répertoire dans lequel tu as installé Zend. Il faut remplacer le répertoire indiqué par le répertoire cgi-bin de Zend, j'imagine. Sinon, le contenu me semble correct.

    Pour phpMyAdmin, ça me semble bon, si ce n'est que je mettrais des / à la place des \ dans ton Alias. Faut voir ce qui est indiqué dans la doc d'install. L'alias sera protégé dans la mesure où effectivement, seuls les fichiers de D:\Zend\Core\GUI\phpMyAdmin seront accessibles par cet alias, et comme ce répertoire n'est pas dans le document root, y a pas de risque d'accéder aux fichiers de phpMyAdmin via une URL trafiquée.

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 92
    Points : 57
    Points
    57
    Par défaut
    Ok, merci pour tes précisions.

    Dernière question (enfin, normalement), qu'est-ce qui peut faire que je ne puisse pas pinger le serveur via son IP alors que j'ai désactivé le pare-feu windows ? D'après mon-ip.org il n'y a pas non plus de proxy...

    Merci encore.

    Benjamin.

  9. #9
    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 ton routeur : pour des raisons de sécurité, il se peut qu'il ne réponde pas au ping. Y a de plus en plus de serveurs comme ça pour se protéger notamment des attaques DoS ICMP. Mais c'est pas pour autant que ça ne marche pas

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 92
    Points : 57
    Points
    57
    Par défaut
    Ok

    Alors pourquoi avec la config suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Listen 80
     
    Servername mon-ip-internet:80
     
    <Location /ZendCore>
      Order deny,allow
      Allow from all
    </Location>
    Alias /ZendCore "D:/Zend/Core/GUI"
    J'accède aux GUI via http://mon-ip-internet/ZendCore/ depuis le serveur mais pas depuis un pc distant ? Je suppose qu'il doit falloir faire une redirection du port 80 vers mon serveur ? (on me demande d'administrer le serveur, mais je ne suis pas l'administrateur réseau :p)

    On trouve beaucoup de réponses sur le web qui indiquent d'activer le DMZ pour l'IP du serveur. Je ne fais pas de réseau pour 1 sous, mais il me semble que c'est pas tip top de faire ça et que ça exposerait grandement le serveur, me trompeuje ?

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 92
    Points : 57
    Points
    57
    Par défaut
    Auto-réponse :

    Il fallait bien forwarder le port 80 sur le serveur.

    D'après l'administrateur réseau le DMZ est activé comme sur tous les serveurs mais seul le port 80 et ouvert. Le Serveur est protégé en amont.


    Je poserai une ultime question, est-ce que je n'oublie rien ?

    - VHOST
    - DocumentRoot vers dossier contenant un index bateau.
    - CGI
    - Alias pour les GUI du serveur
    - Stats
    - Logs

    Tiens d'ailleurs quelle est la meilleure méthode pour gérer les stats de chaque site ? Pour les logs je sais que c'est géré dans le paramétrage du VHOST, mais pour les stats ?

    Merci encore.

    Benjamin.

  12. #12
    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
    Je sais pas : c'est quoi les stats ? Comment tu les génères ?

Discussions similaires

  1. Adresse Fixe Win Server2008 sur Vmware
    Par ben Moussa dans le forum Virtualisation
    Réponses: 1
    Dernier message: 09/04/2014, 22h01
  2. conseil sécurité Apache ss win XP
    Par tensuxik dans le forum Apache
    Réponses: 1
    Dernier message: 06/06/2006, 19h28
  3. [Info]Comparatif serveurs web apache/tomcat, win ou linux
    Par astrofiles dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 31/01/2006, 22h18
  4. Apache aussi rapide sous Win que sous Linux ?
    Par beastman007 dans le forum Apache
    Réponses: 1
    Dernier message: 20/10/2005, 16h19
  5. Apache 2054 Win XP Pro erreur [10048]
    Par gfrerot dans le forum IIS
    Réponses: 4
    Dernier message: 18/10/2005, 15h37

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