Forum Programmation.web Ubuntu, Apache2 et, surtout, des VirtualHost qui ne marchent pas

Posté par  (site web personnel) .
Étiquettes : aucune
0
26
sept.
2006
Salut, sur mon Apache2 de chez moi, je cherche à faire pointer deux adresses dyndns vers deux parties :
nicolas-delsaux.is-a-geek.net vers mes applications PHP & co qui marchent (hébergées sous /var/www/site)
nicolas-delsaux.homelinux.net vers mes tentatives d'utilisation de Ruby et Rails (hébergées sous /var/www/ror)
J'ai donc modifié mon ports.conf comme ça :

Listen 80
NameVirtualHost *:80
Listen 443
# Listen 8080


et mon fichier default dans le dossier sites-available (enfin, le lien dans ce site vers le fichier dans sites-enabled) comme ça :

<VirtualHost *:80>
ServerName nicolas.delsaux.is-a-geek.net

DocumentRoot /var/www/site
#
# Options FollowSymLinks
# AllowOverride None
#
<Directory /var/www/site>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
# Uncomment this directive is you want to see apache2's
# default start page (in /apache2-default) when you go to /
#RedirectMatch ^/$ /apache2-default/


ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all


ErrorLog /var/log/apache2/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog /var/log/apache2/access.log combined
ServerSignature On

Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128


</VirtualHost>

<VirtualHost *:80>
ServerName nicolas-delsaux.homelinux.net
DocumentRoot /home/nicolas
ProxyPass / http://localhost:3000/
ProxyPassReverse / http://localhost:3000/
</VirtualHost>


Le proxypass et proxypass reverse m'a été indiqué par le site http://schwuk.com/articles/2006/06/13/hosting-rails-applicat(...) comme un moyen d'utiliser Rails dans un contexte Apache.

Le problème, c'est que, quand je tape http://nicolas-delsaux.homelinux.net, je tombe sur les pages de http://nicolas-delsaux.is-a-geek.net alors qu'il devrait m'afficher la page d'accueil des applications Rails (auxquelles j'accède sans problème quand je fais un http://localhost:3000).

Alors, que faire ? Envoyer des pages web imprimées par la poste ? Me reconvertir dans la rédaction de textes pour quildes de voleurs ? Ne surtout pas vivre de temps intéressants ? J'y pense, mais bon, c'est moins bien ...

J'imagine qu'il s'agit d'une erreur bête, mais est-ce que vous pourriez me dire laquelle ?

Cela étant ... linuxfr traite plutôt comme un chien les éléments de mon fichier de conf
  • # document root

    Posté par  . Évalué à 1.

    à priori le documentroot de ror n'est pas bon, il devrait pointer sur /var/www/ror non ?
  • # petits trucs

    Posté par  . Évalué à 1.

    Désolé, je ne crois pas avoir la réponse miracle. Juste quelques indices :
    - aucune des balise <Directory> n'est fermée, j'imagine que ça vient de linuxfr et de son chien :)
    - n'oublie pas le "ProxyRequests Off". Dans le cas contraire, tu ferais un joli proxy ouvert.
    - ça ne change théoriquement rien mais c'est plus pratique de mettre un site par fichier dans /etc/apache2/sites-available et de l'activer/désactiver par a2ensite/a2dissite
    - j'ai toujours mis le NameVirtualHost juste avant la déclaration du premier virtualhost (qui est celui par défaut) mais je ne vois pas en quoi ça changerait grand chose
    - vérifier que les modules "proxy" et "proxy_html" sont chargés

    'apache2ctl configtest' et '/etc/init.d/apache2 reload' ne renvoient vraiment rien ?
  • # ma technique (et celle officielle)...

    Posté par  . Évalué à 1.

    la bonne methode serait de faire un fichier par site dans
    /etc/apache2/sites-available/

    dans chaque fichier tu fais les reglages pour chaque site
    ex :

    <VirtualHost *>
    ServerAdmin webmaster@website.com

    ServerName www.website.com
    ServerAlias website.com
    DocumentRoot /home/template/public_html/website
    <Directory /home/template/public_html/website>
    Options pour ce site


    </VirtualHost>



    remplacer website.com par le nom des sites
    remplacer /home ... par le chemin d'acces au fichier de ce site

    enfin faire un lien entre
    /etc/apache2/sites-available/site_un
    et
    /etc/apache2/sites-enabled/site_un

    et faire un restart du serveur apache.
  • # Allelouiah !

    Posté par  (site web personnel) . Évalué à 1.

    Merci les pingouins !
    Grâce à vos conseils zéclairés, j'ai enfin un Apache qui marche d'un côté, et qui arrive également à rediriger des requêtes vers un Ruby on Rails, qui pour l'instant ne fait certes pas grand chose ...
    Reste maintenant à pouvoir placer plusieurs applications Rails dans ce /var/www/ror ... A suivre, donc.
    • [^] # Re: Allelouiah !

      Posté par  (site web personnel) . Évalué à 1.

      A croire que je suis destiné à me vautrer. En fait, ça ne marche pas du tout : au lieu de n'avoir accès qu'à mon site traditionnel, je n'ai plus accès qu'à la page d'accueil de Rails, ce qui me déplait plutôt pas mal.
      Récaapitulons :
      j'ai donc séparé mes infos dans deux fichiers de config :
      nicolas-delsaux.homelinux.net_port_80 :

      <VirtualHost *:80>
      ServerAdmin nicolas.delsaux@gmail.com

      ServerName nicolas-delsaux.homelinux.net
      DocumentRoot /var/www/ror
      ProxyPass / http://localhost:3000/
      ProxyPassReverse / http://localhost:3000/
      ProxyRequests Off
      </VirtualHost>


      et

      nicolas-delsaux.is-a-geek.net_port_80

      <VirtualHost *:80>
      ServerAdmin nicolas.delsaux@gmail.com

      ServerName nicolas.delsaux.is-a-geek.net
      DocumentRoot /var/www/site
      <Directory /var/www/site>
      Options Indexes FollowSymLinks MultiViews
      AllowOverride None
      Order allow,deny
      allow from all
      # Uncomment this directive is you want to see apache2's
      # default start page (in /apache2-default) when you go to /
      #RedirectMatch ^/$ /apache2-default/


      ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
      <Directory "/usr/lib/cgi-bin">
      AllowOverride None
      Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
      Order allow,deny
      Allow from all


      ErrorLog /var/log/apache2/error.log

      # Possible values include: debug, info, notice, warn, error, crit,
      # alert, emerg.
      LogLevel warn

      CustomLog /var/log/apache2/access.log combined
      ServerSignature Off
      </VirtualHost>


      Bon, et comme H passe avant I, je me retrouve avec seulement mon site Rails. Bizarre bizarre ...

      Je me pose une question ridiculement stupide : est-ce qu'il se pourrait que ce soit la redirection depuis dyndns qui ne marche pas si bien que ça ?

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.