Я немного боролся с этой настройкой. Я установил все необходимые компоненты для phpmydamin, и сам он доступен по адресу ip / phpmyadmin. Теперь у меня есть субдомен, на который я хочу указать. скажем, я хочу указать data.somedomain.com на phpmyadmin таким образом, чтобы вместо ip / phpmyadmin я мог получить к нему доступ как data.somedomain.com. Я делал простое создание VirtualHost, но я думаю, что я потерялся в вот этот. здесь /etc/phpmyadmin/apache.conf
:
# phpMyAdmin default Apache configuration
<VirtualHost *:80>
ServerName data.somedomain.com
Alias /phpmyadmin /usr/share/phpmyadmin
<Directory /usr/share/phpmyadmin>
Options FollowSymLinks
DirectoryIndex index.php
Options All
AllowOverride All
Require all granted
<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>
<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>
</VirtualHost>
то, что я добавил, было <VirtualHost>
обертка тега и ServerName
и эти Options All AllowOverride All Require all granted
когда я получаю доступ к URL-адресу, он выдает 404
код: Запрошенный URL / не найден на этом сервере.
и журналы содержат эту запись: File does not exist: /etc/apache2/htdocs
спасибо за ваши предложения.
Все, что вам нужно сделать, это настроить поддомен для apache. Вы можете сделать это, создав файл конфигурации в / etc / apache2 / sites-available.
Вот мой ..
<VirtualHost *:80>
ServerAdmin adminn@example.local
ServerName phpmyadmin.example.local
DocumentRoot /usr/share/phpmyadmin
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
LogLevel notice
CustomLog /var/log/apache2/access.log combined
ErrorLog /var/log/apache2/error.log
ServerSignature On
</VirtualHost>
Сохраните это в /etc/apache2/sites-available/phpmyadmin.conf и включите поддомен.
a2ensite phpmyadmin
И перезапустите сервер apache
service apache2 reload
Теперь вы можете использовать phpmyadmin из phpmyadmin.example.local.
Что вам действительно нужно, так это CNAME с вашим решением DNS. Например, если вы использовали кого-то вроде godaddy.com, вы бы добавили cname data.somedomain.com на его страницу управления DNS, которая преобразуется в somedomain.com.
Беглый просмотр вашего виртуального хоста nginx, вы можете сначала начать с минимальной конфигурации, которая просто направляет запросы для data.somedomain.com на ваш / usr / share / phpmyadmin. Я также предлагаю заблокировать phpmyadmin с помощью htaccess (нет ничего хуже, чем взломать вашу базу данных).
Вы упомянули сообщение об ошибке File does not exist: /etc/apache2/htdocs
определенно является признаком параметра DocumentRoot
неправильно указан для виртуального хоста. Убедитесь, что вы указали правильный каталог.
phpMyAdmin все еще настроен по пути /phpmyadmin
вы должны найти это http://data.example.com/phpmyadmin/ работает. Вы можете либо изменить Alias
директива (и другие ссылки на /phpmyadmin
) к /
представить его под корень:
Alias / /usr/share/phpmyadmin
Или вы можете перенаправить /
к /phpmyadmin
:
RewriteRule ^/$ /phpmyadmin/ [R]