我的目标是在同一个虚拟机上托管两个不同的站点,并且都在端口80上。一个是domain.com上的Wordpress站点,另一个是app.domain.com上的基于Web的应用程序。如果无法做到这一点,那么我的另一个目标是只在Domain.com端口80上运行Wordpress网站。
我的注册商是1and1.com,DNS设置如下(如下)。请注意,他们不允许主域名的CNAME记录,仅适用于子域名。这是我的A记录(这篇文章中的IP地址和域名不是我的真实记录):
Type: A Record Value: 123.456.789.10
我的主机是Azure,我的虚拟机IP地址为123.456.789.10。此Azure VM的端点配置如下:
TCP Public Port 8080 Private Port 8080 TCP Public Port 80 Private Port 80 TCP Public Port 2121 Private Port 21 TCP Public Port 22 Private Port 22
在Azure上,我有一个DNS区域配置如下:
Name: www Type: A TTL: 3600 Value: 123.456.789.10
我的apache默认文件配置如下:
# FOR WORDPRESS WEBSITE (DOMAIN.COM) Listen 80 <VirtualHost *:80> DocumentRoot /var/www/html/wordpress/ <Directory "/var/www/html/wordpress/"> AllowOverride All </Directory> </VirtualHost> # FOR APPLICATION (APP.DOMAIN.COM) <VirtualHost *:80> DocumentRoot /var/www/application/ <Directory "/var/www/application/"> AllowOverride All </Directory> </VirtualHost>
Wordpress根文件夹中的.htaccess文件配置如下:
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress <IfModule mod_suphp.c> AddHandler application/x-httpd-php54 .php .php5 .php4 .php3 </IfModule>
Wordpress配置文件:
It's totally standard and the site was running last week without issue while on port 8090, but I wanted to use port 80 instead.
Ubuntu托管文件:
127.0.0.1 localhost ServerName domain.com # The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ff02::3 ip6-allhosts
目前我在浏览器中收到错误消息&gt;&gt;这个网站无法访问domain.com花了太长时间才能回复。 ERR_CONNECTION_TIMED_OUT但有时在调整我的设置时(上图)我会在浏览器中看到一个目录列表,其中显示了apache的默认目录/ var / www
我的感觉是我需要更多A和CNAME记录设置,但我不确切知道如何配置它们。我已经花了整整5天时间研究这个并且谷歌搜索解决方案对我不起作用。任何指针都会很棒!
答案 0 :(得分:0)
<VirtualHost *:80>
ServerName domain.com
DocumentRoot /var/www/html/wordpress/
ErrorLog /var/www/html/wordpress/error.log
<VirtualHost *:80>
ServerName app.domain.com
DocumentRoot /var/www/application/
ErrorLog /var/www/application/error.log
答案 1 :(得分:0)
我不知道Azure,但你需要公开打开80端口 - 看起来目前只设置了8080.
另外,你肯定需要:
ServerName
指令。
如果您可以提供真实的域名,我们可以为您检查DNS /端口等。
答案 2 :(得分:0)
我得到了它!这个网站是从另一个网站的副本构建的,我注意到当我将我的Wordpress文件夹的内容直接复制到/ var / www /时,地址栏不会加载网站但是它会显示domain.com:8090 (其中&#34; domain.com&#34;是我的新网站&#34; 8090&#34;是旧网站以前使用的端口号)在地址栏中RELENTLESSLY,即使我的apache中没有包含此指令配置文件。这让我觉得由于某种原因,某些代码行指向这个端口。所以通过phpmyadmin我修改了Wordpress&#34;网站名称&#34;和&#34; url&#34;我的数据库中的值(包含此端口号)与我的新域匹配,没有端口号和中提琴。对我来说,为什么这有帮助是没有意义的,但无论如何,该网站然后加载了很棒!但这只是问题的一半,因为我不应该将我的wordpress内容直接放在/ var / www中,而是放在我想要的任何地方。
当我的同事决定复制我的文件&#34; / etc / apache2 / sites-available / default&#34;问题的后半部分已经解决了。到一个新文件&#34; /etc/apache2/sites-enabled/default.conf"由于我不明白的原因。根据他的说法,这使得apache实际上开始在/ etc / apache2 / sites-available / default文件中监听我的指令,因此齿轮再次开始转动。对我来说这没有任何意义,因为它与我运行的其他apache服务器相矛盾,所以如果值得,我会得到澄清并再次发布。