Как создать VirtualHost на Amazon EC2 для phpmyadmin

Привет я в настоящее время работаю над установкой VirtualHost на Amazon EC2 для доступа phpmyadmin, таким образом, я могу получить доступ к нему с test.example.com, как выступают к нему являющийся широко доступным, поскольку это - example.com/phpmyadmin по умолчанию.

До сих пор я создал файл "testfile" в/etc/apache2/sites-available/с кодом ниже и включил ему "a2ensite testfile" Однако, я не заставляю vhost работать

<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

Вышеупомянутая строка создает ссылку phpmyadmin в общедоступной папке.

Любая справка на этом значительно ценилась бы.

Примечание: example.com будет заменен моим официальным доменом

1
задан 13 June 2012 в 17:17

1 ответ

После нескольких часов испытаний и устранения неполадок, вот решение.

Сначала убедитесь, что вы создали запись A в своем DNS-менеджере, чтобы указать ваш поддомен «test.example.com» на IP-адрес вашего сервера (для распространения это должно занять около 24-72 часов).

Затем создайте свой файл хоста с помощью следующей команды (обратите внимание, что я использую ubuntu, который использует отдельные файлы хоста, но вы можете добавить это в основной файл хоста):

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

Добавить следующие данные ниже (я включил ssl в моей системе с портом 443 и не содержал раздел ssl в конце):

<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>

После сохранения сохраните файл и активируйте свой vhost

sudo a2ensite test.example.com

После этого вам будет предложено перезапустить Apache, так что вы должны быть в рабочем состоянии и иметь доступ к phpmyadmin через «test.example.com» вместо «www.example.com/phpmyadmin»

0
ответ дан 13 June 2012 в 17:17

Другие вопросы по тегам:

Похожие вопросы: