1 votes

Comment configurer un VirtualHost sur Amazon EC2 pour phpmyadmin ?

Bonjour, je travaille actuellement sur la mise en place d'un VirtualHost sur Amazon EC2 pour accéder à phpmyadmin afin que je puisse y accéder avec test.example.com plutôt que de le rendre largement disponible avec le nom par défaut example.com/phpmyadmin.

Jusqu'à présent, j'ai créé un fichier "testfile" dans /etc/apache2/sites-available/ avec le code ci-dessous et je l'ai activé "a2ensite testfile". Cependant, je n'arrive pas à faire fonctionner le serveur virtuel.

<VirtualHost *:80>
            ServerAdmin webmaster@example.com

            ServerName test.example.com
            ServerAlias test.example.com

            #DocumentRoot /usr/share/phpmyadmin
            DocumentRoot /home/user/public_html/folder

            RewriteEngine On
            RewriteCond %{HTTP_HOST} !test.example.com
            RewriteRule (.*) [L]

            <Directory /home/user/public_html/folder>

                    Options FollowSymLinks
                    DirectoryIndex index.php
                    AllowOverride None

                    <IfModule mod_php5.c>
                            AddType application/x-httpd-php .php

                            php_flag magic_quotes_gpc Off
                            php_flag track_vars On
                            php_flag register_globals Off
                            php_admin_flag allow_url_fopen Off
                            php_value include_path .
                            php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
                            php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/
                    </IfModule>

            </Directory>
     # Authorize for setup
            <Directory /usr/share/phpmyadmin/setup>
                <IfModule mod_authn_file.c>
                AuthType Basic
                AuthName "phpMyAdmin Setup"
                AuthUserFile /etc/phpmyadmin/htpasswd.setup
                </IfModule>
                Require valid-user
            </Directory>

            # Disallow web access to directories that don't need it
            <Directory /usr/share/phpmyadmin/libraries>
                Order Deny,Allow
                Deny from All
            </Directory>
            <Directory /usr/share/phpmyadmin/setup/lib>
                Order Deny,Allow
                Deny from All
            </Directory>

            ErrorLog /home/user/public_html/folder/logs/error.log
            LogLevel warn
            CustomLog /home/user/public_html/folder/logs/access.log combined

    </VirtualHost>

sudo ln -s /usr/share/phpmyadmin /home/user/public_html/folder

La ligne ci-dessus crée un lien du phpmyadmin dans le dossier public.

Toute aide à ce sujet serait grandement appréciée.

Note : exemple.com sera remplacé par mon domaine officiel.

1voto

Oudin Points 201

Après des heures de tests et de dépannage, voici la solution.

Assurez-vous d'abord que vous avez créé un enregistrement A dans votre gestionnaire de DNS pour faire pointer votre sous-domaine "test.example.com" vers l'adresse IP de votre serveur (la propagation devrait prendre environ 24 à 72 heures).

Ensuite, créez votre fichier d'hôte avec la commande suivante (veuillez noter que j'utilise ubuntu qui utilise des fichiers d'hôte individuels mais vous pouvez ajouter ceci à votre fichier d'hôte principal) :

sudo vi /etc/apache2/sites-available/test.example.com

Ajoutez les données suivantes (j'ai activé le ssl sur mon système qui est le port 443 et j'ai décontenancé la section ssl à la fin) :

<VirtualHost *:80>

    ServerAdmin webmaster@example.com

    DocumentRoot /usr/share/phpmyadmin
    ServerName test.example.com

    RewriteEngine On
        RewriteCond %{HTTP_HOST} !test.example.com
        RewriteRule (.*) [L]

     <Directory /usr/share/phpmyadmin>

        Options Indexes FollowSymLinks
            AllowOverride None
        deny from all
        allow from localhost
        #allow access via your IP
            allow from xxxxxx.xxxxx.xxxxxxx.xxxxxxxxx/xx

        <IfModule mod_php5.c>
            AddType application/x-httpd-php .php

            php_flag magic_quotes_gpc Off
            php_flag track_vars On
            php_flag register_globals Off
            php_admin_flag allow_url_fopen Off
            php_value include_path .
            php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
            php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/
        </IfModule>

    </Directory>

    # Authorize for setup
    <Directory /usr/share/phpmyadmin/setup>
        <IfModule mod_authn_file.c>
        AuthType Basic
        AuthName "phpMyAdmin Setup"
        AuthUserFile /etc/phpmyadmin/htpasswd.setup
        </IfModule>
        Require valid-user
    </Directory>

    # Disallow web access to directories that don't need it
    <Directory /usr/share/phpmyadmin/libraries>
        Order Deny,Allow
        Deny from All
    </Directory>
    <Directory /usr/share/phpmyadmin/setup/lib>
        Order Deny,Allow
        Deny from All
    </Directory>

    #   SSL Engine Switch:
        #   Enable/Disable SSL for this virtual host.
       # SSLEngine on

        #   A self-signed (snakeoil) certificate can be created by installing
        #   the ssl-cert package. See
        #   /usr/share/doc/apache2.2-common/README.Debian.gz for more info.
        #   If both key and certificate are stored in the same file, only the
        #   SSLCertificateFile directive is needed.
       # SSLCertificateFile    /etc/ssl/certs/ssl-cert-snakeoil.pem
       # SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key

        ErrorLog /home/user/public_html/folder/logs/error.log
        LogLevel warn
        CustomLog /home/user/public_html/folder/logs/access.log combined

</VirtualHost>

Une fois terminé, enregistrez le fichier et activez votre serveur virtuel.

sudo a2ensite test.example.com

Il vous demandera ensuite de redémarrer Apache. Une fois que vous l'aurez fait, vous devriez être opérationnel et pouvoir accéder à phpmyadmin via "test.example.com" plutôt que via "www.example.com/phpmyadmin".

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X