我有各种虚拟主机用于我的网站开发工作,包括cnm。 该
sites-available/cnm
我的文件很简单地说:
<VirtualHost *:80> ServerName cnm DocumentRoot /var/www/cnm/public_html </VirtualHost>
我升级到了Ubuntu 13.10,当我将浏览器指向cnm /时,我看到/var/www/index.html文件似乎在默认文件中显示
sites-available/000-default.conf
其中说(除其他外):
<VirtualHost *:80> DocumentRoot /var/www
当我浏览到cnm /时,我需要做些什么来让Apache读取我的cnm文档根目录?
笔记:
我已经尝试将我的sites-available / cnm文件重命名为sites-available / cnm.conf,并使用a2ensite cnm
和service apache2 reload
。 这是一件好事,但它没有改变。
我已经尝试将<VirtualHost *:80>
更改为<VirtualHost cnm.localhost>
或<VirtualHost cnm>
。 那什么都没做。
Ubuntu 13.10使用apache 2.4 ,你应该检查你所有的apache配置。 但是对于这种情况,您应该注意,如果不以.conf
结尾, a2ensite
和a2dissite
命令将无法在/ etc / apache2 / sites-available中看到您的文件,因此将其重命名为sites-available/cnm.conf
并运行a2ensite cnm
。
那么你的虚拟主机的定义肯定比*:80
更好,这意味着这个虚拟主机在端口80上被所有IP接口( *
)激活cnm.localhost
或cnm
在这里是无效值,只有IP号码(你的apache服务器的ip)或*
为所有,和一个端口号。
然后检查你的配置是由apache读取的,运行这些命令:
# load apache env # be careful, there is a dot and a space . /etc/apache2/envvars # Check apache Virtualhosts config apache2 -S
你应该得到像这样的东西:
VirtualHost configuration: *:80 is a NameVirtualHost default server something (/etc/apache2/sites-enabled/000-default.conf:1) port 80 namevhost something (/etc/apache2/sites-enabled/000-default.conf:1) port 80 namevhost cnm (/etc/apache2/sites-enabled/cnm.conf:4)
如果没问题,并且如果你的主机文件中有正确的ip为cnm
,那么你可以用ping来测试,然后使用http://cnm/
应该在serverName中使用具有cnm的虚拟主机。
如果你有一个默认的虚拟主机的答案,那么这意味着Apache没有找到你的主机头中的serverName和serverAlias可用于该IP /端口的名称,并回退到默认的虚拟主机。 如果你真的陷入困境(你没有忘记重启),你总是可以删除默认的虚拟主机,只保留你正在使用的虚拟主机。
我找到了我的问题的答案。 我需要删除/ etc / apache2 / sites-enabled中的文件。
sudo a2ensite mysite
。 sudo service apache2 reload
我找不到任何一步一步的教程如何使它在我身边工作。 我在这里和那里聚集了点点滴滴,所以对于那些需要所有步骤的人来说,这里有:
$ sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/local-mydefault.conf $ sudo gedit /etc/apache2/sites-available/local-mydefault.conf
将以下内容粘贴到local-mydefault.conf文件中(将路径'/ your / full / path'更改为您想要的文件的位置,然后将用户名更改为您自己的用户名):
# ------------------------------------------------------ <VirtualHost *:80> serverName localhost serverAdmin webmaster@localhost DocumentRoot /your/full/path <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /your/full/path> DirectoryIndex index.php Options Indexes FollowSymLinks MultiViews AllowOverride None Require all granted allow from all </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> User username Group username # ------------------------------------------------------
然后键入以下命令
$ cd /etc/apache2/sites-available/ $ sudo a2ensite local-mydefault.conf $ sudo a2dissite 000-default.conf $ sudo /etc/init.d/apache2 restart
我找到了这个问题的答案:
升级到Ubuntu 13.10
, DocumentRoot
似乎没有什么区别。
这是因为Apache 2.4将Directory配置移到其他地方。 旧的.conf
文件仍然有这些行:
DocumentRoot "/var/www/myVhost" <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory "/var/www/myVhost"> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory>
删除(或注释掉) <Directory>
指令,所以你只有:
DocumentRoot "/var/www/myVhost"
现在重新加载你的设置: service apache2 reload
和DocumentRoot
回来了。 🙂
重命名扩展名为.conf的文件配置“cnm”
mv sites-available/cnm sites-available/cnm.conf a2ensite sites-available/cnm.conf
准备好了!
service apache2 reload
在路上我有同样的问题是禁用000默认和重新加载Apache,但这不是解决方案,因为你必须只有一个虚拟主机在同一时间:(
sudo a2dissite 000-default.conf sudo service apache2 reload
我遇到了类似的问题。 我的服务器名称和我的FQDN与默认运行到/ var / www / html目录相同。 我禁用了默认配置,我的网站工作起来很轻松。 感谢@regilero。
sudo a2dissite 000-default.conf
给我修好了