首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Apache上运行两个站点?复杂形势

如何在Apache上运行两个站点?复杂形势
EN

Stack Overflow用户
提问于 2016-04-19 21:08:25
回答 3查看 86关注 0票数 0

我的目标是托管来自同一个VM的两个不同的站点,并且都位于端口80上。一个是domain.com上的Wordpress站点,另一个是app.domain.com上基于web的应用程序。如果不能这样做,那么我的另一个目标是只让Wordpress站点在domain.com端口80.上运行。

我的注册服务器是1和1.com,DNS设置如下(如下所示)。请注意,它们不允许用于主域的CNAME记录,只允许用于子域。这是我的A记录(这篇文章中的IP地址和域名不是我的真实记录):

Type: A Record Value: 123.456.789.10

我的主机是Azure,其中运行的VM的虚拟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默认文件配置如下:

对于WORDPRESS网站(DOMAIN.COM)侦听80 DocumentRoot /var/www/html/wordpress/ AllowOverride All # FOR APPLICATION (APP.DOMAIN.COM) DocumentRoot /var/www/application/ AllowOverride All

我在Wordpress根文件夹中的.htaccess文件配置如下:

开始WordPress RewriteEngine On RewriteRule ^index.php$ -L RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule。/index.php L# END WordPress AddHandler application/x-httpd-php54 .php .php5 .php4 .php3

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

目前,我在浏览器>>中收到一条错误消息,这个站点无法到达,domain.com花了很长时间才做出响应。ERR_CONNECTION_TIMED_OUT,但有时当调整我的设置(上面)时,我会在浏览器中得到一个目录列表,其中显示了apache的默认目录/var/www

我的感觉是,我需要更多的A和CNAME记录设置,但我不知道具体如何配置他们。我已经花了整整5天的时间来研究这个问题,并在谷歌上搜索那些对我不起作用的解决方案。任何指示都是很棒的!

EN

回答 3

Stack Overflow用户

发布于 2016-04-19 22:21:42

你试过ServerName了吗?并将其添加到主机文件中。

代码语言:javascript
运行
复制
<VirtualHost *:80>
    ServerName domain.com
    DocumentRoot /var/www/html/wordpress/
    ErrorLog /var/www/html/wordpress/error.log

代码语言:javascript
运行
复制
<VirtualHost *:80>
    ServerName app.domain.com
    DocumentRoot /var/www/application/
    ErrorLog /var/www/application/error.log

票数 0
EN

Stack Overflow用户

发布于 2016-04-20 05:27:21

我不知道Azure,但是您需要公开打开端口80 --看起来现在只设置了8080。

此外,您肯定需要:

代码语言:javascript
运行
复制
ServerName

指令。

如果您能提供您的真实域名,我们可以检查DNS/端口等为您。

票数 0
EN

Stack Overflow用户

发布于 2016-04-22 16:27:25

我有个主意!该站点是从另一个站点的副本构建的,我注意到,当我将Wordpress文件夹的内容直接复制到/var/www/地址栏时,地址栏将不会加载站点,但它将显示domain.com:8090 (其中"domain.com“是我的新站点,"8090”是以前使用的端口号),即使这个指令没有包含在我的apache文件中。这给了我这样的想法:由于某种原因,一些代码正在指向这个端口。因此,通过phpmyadmin,我修改了数据库中的Wordpress "site name“和"url”值(其中包含这个端口号),以匹配我的新域,没有端口号和中提琴。对我来说,这是没有道理的,为什么这起作用,但无论如何,网站然后加载了伟大的!但这只是问题的一半,因为我不应该将wordpress内容直接放在/var/www中,而应该放在我想要的任何地方。

由于我不明白的原因,当我的同事决定复制我的文件“/etc/apache2/sites可用/默认为新文件”/etc/apache2/sites启用/default.conf“时,问题的后半部分就解决了。根据他的说法,这使得apache实际上开始听我在/etc/apache2/site中的指令-可用/默认文件,因此开始重新开始工作。对我来说,这是没有意义的,因为它与我正在运行的其他apache服务器相矛盾,所以我会得到澄清,如果有价值的话,我会再次发帖。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36729491

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档