Forum Linux.debian/ubuntu VirtualHosts avec Debian

Posté par (page perso) .
Tags : aucun
-1
14
sept.
2011

Bonsoir

Je cherche à m'installer un serveur LAMP de dév, accessible uniquement sur le réseau local.
L'installation de LAMP est OK, j'ai bien un "It Works"
Je souhaitais mettre en place des virtual hosts afin de faire les choses bien et propres un minimum.
J'ai l'utilisateur "Epy" qui a accès au FTP dans son home pour uploader des fichiers (typiquement les scripts PHP des CMS et autres applications Web)
Hors, Apache httpd attend ces fichiers dans /var/www/ où je ne peux évidemment pas faire uploader l'utilisateur.
Vu que ce n'est que pour développer je souhaite mettre les applis dans /home/epy/www// (pour un upload directement à cet endroit)

C'est là que ça coince, dans /var/www/ j'ai bien un site qui répond: mysqldumper c'est l'endroit où j'ai souhaité le mettre
En revanche impossible d'afficher le fichier de test dans le home

J'ai rempli les fichiers comme ceci:

<VirtualHost *:80>
        ServerAdmin webmaster@localhost

        DocumentRoot /var/www/mysqldumper
        <Directory /var/www/mysqldumper/>
                Options Indexes FollowSymLinks -MultiViews
                AllowOverride None
                Order allow,deny
                Allow from all
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log

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

        CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

<VirtualHost *:8080>
        ServerAdmin webmaster@localhost
 
        DocumentRoot /home/epy/www/modxR

        <Directory /home/epy/www/modxR/>
                Options Indexes FollowSymLinks
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log

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

        CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

Sur les conseils de quelques moules avisées j'avais ajouté ServerName modx.webserver mais je pense que je ne l'ai pas renseignée correctement, je ne sais pas quoi mettre.
(La machine depuis laquelle je tente l'accès connais 'webserver' c'est précisé dans son hosts)

Bien sûr, j'ai activé les sites par a2ensite *

D'après tous les tutos que j'ai lu, utiliser ce fonctionnement en local est plus qu'un cas particulier (je n'ai rien trouvé qui en parlait en fait)

Tous font référence au DNS et autres FQDN que je n'utilise pas (je ne peux et ne veux pas accéder à ce serveur par l'extérieur en utilisant mon dyndns )
Est-ce un cas si particulier que ça ? Est-ce qu'il existe une solution, ou quelque chose de mieux que cette solution des vhosts ?

Je pourrais aussi dire à apache que tous les sites seront dans le /home/epy/www/ et laisser tomber les vhosts, mais ça me semble une solution pas propre du tout je me trompe ?

Merci pour votre aide :)

  • # Exemple

    Posté par (page perso) . Évalué à 1.

    Apache httpd attend ces fichiers dans /var/www/ où je ne peux évidemment pas faire uploader l'utilisateur.

    ?!
    Puisque c'est ta machine, je ne vois pas pourquoi tu ne pourrais pas configurer ton serveur ftp pour te donner accès aux répertoires que tu souhaites.

     

    Cet exemple fonctionne :

    cat > /etc/apache2/sites-available/test << 'HEREDOC'
    Listen 8080
    NameVirtualHost *:8080
    
    <VirtualHost *:8080>
    
            DocumentRoot /home/truc/test
    
            ErrorLog     /home/truc/test/error.log
    
            # Possible values include: debug, info, notice, warn, error, crit,
            # alert, emerg.
            LogLevel warn
    
            CustomLog /home/truc/test/access.log combined
            ServerSignature On
    
    </VirtualHost>
    HEREDOC
    ln -s /etc/apache2/sites-enabled/test /etc/apache2/sites-available/test
    /etc/init.d/apache2 restart
    
    
    • [^] # Re: Exemple

      Posté par (page perso) . Évalué à 1.

      ?!
      Puisque c'est ta machine, je ne vois pas pourquoi tu ne pourrais pas configurer ton serveur ftp pour te donner accès aux répertoires que tu souhaites.

      Parce que c'est "sale" ça crée très probablement un trou de sécurité (si le serveur était accessible par l'extérieur.
      C'est vrai que je ne l'ai pas précisé mais ça me sert aussi d'auto apprentissage, (au cas où j'en aurais besoin dans un futur boulot, ou plutôt pour de l'auto hébergement un jour .. :) )

      En ajoutant simplement le Listen et NameVirtualHost ça fonctionne !! \o/
      (évidemment apache n'aime pas Listen 80)

      Bon ça oblige à créer un fichier et utiliser un port pour chaque "site", je vais voir si je peux bidouiller avec ça

      Je vais aussi regarder le mod_user proposé ci-dessous :)

      Merci !

      • [^] # Re: Exemple

        Posté par . Évalué à -3.

        Pourquoi installer un serveur ftp ?
        Ssh n'est pas suffisant ?

        Pour faire plus propre, tu pourrai commit ton code sur un git/svn et faire un su www-data -c "git clone..." dans le /var/www pour installer tes sites.

        • [^] # Re: Exemple

          Posté par (page perso) . Évalué à 1.

          L'habitude probablement ..
          Je n'ai jamais réussi à faire un transfert par scp, mais il faut que je retente.

          Pour les commits j'y ai pensé mais c'est un peu lourd je trouve.

          Enfin en tout cas j'ai appris à faire des vhosts et c'est aussi important que le résultat :)
          Merci pour les suggestions =)

      • [^] # Re: Exemple

        Posté par . Évalué à 2.

        Utilise des noms dns a la con que tu renseigne dans ton fichier host : plus besoin de ports a la con

        • [^] # Re: Exemple

          Posté par (page perso) . Évalué à 1.

          C'est pas idiot, je vais y songer.
          Pour le moment j'utilise les index créés par apache pour avoir les liens vers les différents dossiers/sites dans ~/www/

          Merci =)

        • [^] # Re: Exemple

          Posté par . Évalué à 2.

          c'est pas idiot SI et seulement SI tu n'as qu'une seule machine qui doit consulter le serveur.

          dans ma boite, le service informatique fait des maquettes de sites webs, qu'il doit ensuite proposer/montrer à la direction ou aux services, et c'est quand meme vachement pratique de permettre à l'utilisateur d'aller voir depuis son poste AVANT la reunion

          ca lui permet aussi de tester/debugger le site

          • [^] # Re: Exemple

            Posté par (page perso) . Évalué à 2.

            Dans ce cas là tu renseigne le DNS de ta boite je suppose, pour que n'importe quel poste y accède ?
            C'est vrai que je consulte surtout avec un poste, mais parfois deux et peut être un de plus bientôt, depuis le lit.
            Je continuerai de pointer sur l'index et d'utiliser l'IP alors ;)

  • # userdir, c'est fait pour

    Posté par . Évalué à 3.

    1°) tu actives le module userdir d'apache
    2°) tu crees un dossier public_html dans le home de l'utilisateur /home/user/public_html
    3°) tu y accedes par http://tonserveur/~user

    • [^] # Re: userdir, c'est fait pour

      Posté par (page perso) . Évalué à 1.

      Merci !
      La solution ci-dessus fonctionne mais je vais quand même tester la tienne, on m'en avait parlé mais je n'avais pas compris comment la faire fonctionner, maintenant c'est bon :]

Suivre le flux des commentaires

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