我一直在努力一点这个设置。 我已经安装了phpmydamin的所有先决条件,本身可以在ip / phpmyadmin中find。 现在我有一个子域,我想指向它。 比方说,我想指出data.somedomain.com到phpmyadmin这样的一种方式,而不是ip / phpmyadmin我可以访问它作为data.somedomain.com.I一直在做简单的VirtualHost创build,但我认为有点迷失在这个。 这里是/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感谢您的build议。
所有你需要做的是为apache设置一个子域名。 你可以通过在/ etc / apache2 / sites-available中创build一个configuration文件来实现。
这是我的..
<VirtualHost *:80> ServerAdmin [email protected] 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.example.local中的phpmyadmin。
您真正需要的是您的DNS解决scheme的CNAME。 例如,如果您使用的是像godaddy.com这样的人,则可以在其dnspipe理页面上添加一个名为data.somedomain.com的cname,以parsingsomedomain.com。
粗略看一下你的nginx虚拟主机,你可能要先从一个最小configuration开始,只是简单地将data.somedomain.com的请求指向你的/ usr / share / phpmyadmin。 我也build议使用htaccess来lockingphpmyadmin(没有比你的数据库被黑客更糟的了)。
您提到的错误消息File does not exist: /etc/apache2/htdocs肯定是虚拟主机没有正确指定参数DocumentRoot的标志。 确保你把它指向正确的目录。
phpMyAdmin仍然设置在path/phpmyadmin ,你应该发现http://data.example.com/phpmyadmin/的作品。 您可以将Alias指令(以及其他对/phpmyadmin引用)更改为/在根目录下显示:
Alias / /usr/share/phpmyadmin
或者你可以redirect/到/phpmyadmin :
RewriteRule ^/$ /phpmyadmin/ [R]