我在设置 Apache Server 时遇到了麻烦。我还没有关闭默认安装中的任何功能,我正在尝试启用“虚拟主机”功能。我希望托管在 EC2(12.04 服务器)上的 Apache Server 在人们访问时为我的网站提供服务。我的 DNS 提供商是 godaddy,我已将我的网站从 godaddy 转发到我的 EC2 地址。问题是,无论我做什么,默认的“它有效!”页面始终可用。我搞不懂。这是我的 ports.conf 文件的顶部:
NameVirtualHost *:80
Listen 80
<IfModule mod_ssl.c>
# If you add NameVirtualHost *:443 here, you will also have to change
# the VirtualHost statement in /etc/apache2/sites-available/default-ssl
# to <VirtualHost *:443>
# Server Name Indication for SSL named virtual hosts is currently not
# supported by MSIE on Windows XP.
Listen 443
</IfModule>
<IfModule mod_gnutls.c>
Listen 443
</IfModule>
我的站点在文件中指定sites-available
,并且在中有一个指向我的站点目录的符号链接可见sites-enabled
。
这是sites-available
我的网站的文件中的内容:
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName somesite.com
ServerAlias *.somesite.com
DocumentRoot /var/www/somesite
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www/somesite>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
有什么建议吗?需要进一步的信息吗?我花了好几个小时才搞定,但一无所获。我似乎按照教程说的做了。我没有禁用默认设置,但听说最好保持这个设置?谢谢。
答案1
伙计。我花了这么长时间才修复这个问题,我觉得自己太愚蠢了。显然我对管理一无所知……
问题是我通过 GoDaddy 设置了转发到我的服务器,但仅此而已。我希望我的服务器知道它来自mysite.com
哪里,但我没有在请求中传递它。请求只是/
。答案是将我的转发从:
234.56.78.912:80
(其中 IP 的第一部分是我刚刚编造的……)
到
234.56.78.912:80/mySite/home.html
现在,当它到达服务器时,请求就会mySite/home.html
被识别。感谢反复尝试!