将一个子域名指向安装在Ubuntu 12.04上的phpmyadmin

我一直在努力一点这个设置。 我已经安装了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/的作品&#x3002; 您可以将Alias指令(以及其他对/phpmyadmin引用)更改为/在根目录下显示:

 Alias / /usr/share/phpmyadmin 

或者你可以redirect//phpmyadmin

 RewriteRule ^/$ /phpmyadmin/ [R]