Привет я в настоящее время работаю над установкой 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 будет заменен моим официальным доменом
После нескольких часов испытаний и устранения неполадок, вот решение.
Сначала убедитесь, что вы создали запись 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»