我将ubuntu更新为13.10后设置虚拟主机有困难!! 这就是我的尝试:
启动终端并输入:
sudo a2enmod vhost_alias
如果您没有收到任何错误消息,并且您的回复如下所示,那么您就是在正确的轨道上。
Enabling module vhost_alias.
Run '/etc/init.d/apache2 restart' to activate new configuration!
接下来要做的是通过输入
转到sites-available目录cd /etc/apache2/sites-available/
好的,现在我们在apaches目录中,其中虚拟主机的所有定义文件都是。我们想要复制默认模板一,密码命名为default
sudo cp default our-test-site
这将创建一个名为our-test-site的默认模板的副本(当然,您应该用您想要的任何内容替换它)。让我们编辑它,输入
sudo gedit our-test-site
这将在编辑器中打开文件,下面是默认vhost文件的内容(如果你做了一些自定义,通常是YMMV)
ServerAdmin webmaster@localhost
DocumentRoot /var/www
Options FollowSymLinks
AllowOverride None
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
ErrorLog /var/log/apache2/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access.log combined
Alias /doc/ "/usr/share/doc/"
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
我们需要添加一行并编辑两行。
在DocumentRoot指令的正上方添加ServerName my-test-site.local(在第4行的前面)。
在第4行编辑DocumentRoot / var / www路径并将其设置为/ path-to-the-test-site-WITHOUT-trailing-slash。它应该看起来像这样
DocumentRoot /path-to-the-test-site-WITHOUT-trailing-slash
如果您没有注意到我的微妙提示,那么路径末端不应该有一个尾部斜杠。
编辑第9行的路径并将其设置为/ path-to-the-test-site-WITH-trailing-slash /。它应该看起来像这样
DocumentRoot /path-to-the-test-site-WITHOUT-trailing-slash
如果您没有注意到我的微妙提示,那么路径末端应该是一个尾随斜杠。
你已经完成了虚拟主机文件的设置。键入
启用它sudo a2ensite our-test-site
响应应该如下所示
Enabling site our-test-site.
Run '/etc/init.d/apache2 reload' to activate new configuration!
此时虚拟主机设置完成,剩下的就是告诉服务器我们的test-site.local应该被重新发送到127.0.0.1。我们通过输入
来做到这一点sudo gedit /etc/hosts
并在localhost(第1行)之后添加127.0.0.1 our-test-site.local。
整个主机文件应该看起来像
127.0.0.1 localhost
127.0.0.1 our-test-site.local
127.0.1.1 ubuntu-vm
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
保存,关闭编辑器,最后输入
sudo /etc/init.d/apache2 restart
或
sudo apache2ctl restart
所以,你去,你的虚拟主机已经设置,打开浏览器并输入http://our-test-site.local并享受。
更新:如果您在访问localhost的内容时遇到问题,则应将ServerName localhost添加到默认虚拟主机中(如上面针对新虚拟主机所述)。然后禁用并启用站点,并重新启动apache
sudo a2dissite default
sudo a2ensite default
sudo /etc/init.d/apache2 restart
更新2:在新的虚拟主机文件中,您应该更改
AllowOverride None
到
AllowOverride All
用于前两个目录节点(/ one和具有站点路径的节点)。这将允许所有.htaccess文件正常工作并允许重定向。
当然不要忘记
sudo a2dissite our-test-site
sudo a2ensite our-test-site
sudo /etc/init.d/apache2 restart
答案 0 :(得分:6)
问题在于Apache 2.4 / ubuntu 13.10及更高版本的网站可用文件类似于name.conf
而不是
sudo cp default our-test-siteof
我是这样做的
sudo cp default.conf our-test-site.conf
等等。