Apache没有';升级到Ubuntu13.10后不要使用DocumentRoot(使用默认页面,上面写着“它可以工作!”)
我有各种虚拟主机用于我的web开发工作,包括 cnmApache没有';升级到Ubuntu13.10后不要使用DocumentRoot(使用默认页面,上面写着“它可以工作!”),apache,ubuntu-13.10,Apache,Ubuntu 13.10,我有各种虚拟主机用于我的web开发工作,包括 cnm sites-available/cnm 我的档案说得很简单: <VirtualHost *:80> ServerName cnm DocumentRoot /var/www/cnm/public_html </VirtualHost> 其中包括: DocumentRoot/var/www 当我浏览到cnm/时,我需要做什么才能让Apache读取我的cnm文档根目录 注: 我已经尝试将我的site
sites-available/cnm
我的档案说得很简单:
<VirtualHost *:80>
ServerName cnm
DocumentRoot /var/www/cnm/public_html
</VirtualHost>
其中包括:
DocumentRoot/var/www
当我浏览到cnm/时,我需要做什么才能让Apache读取我的cnm文档根目录
注:
a2ensite cnm
和service apache2 reload
启用它。这是一件好事,但它不会改变什么
更改为
或
。那没用Ubuntu 13.10使用apache2.4,您应该检查所有apache配置。但在本例中,您应该注意,
a2ensite
和a2dispate
命令如果不以.conf
结尾,将无法在/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/
应在服务器名中使用具有cnm的Virtualhost
如果您有来自默认Virtualhost的答案,则表示apache在该IP/端口可用的ServerName和ServerAlias列表中找不到主机头中使用的名称,并返回默认Virtualhost。如果您真的陷入困境(并且没有忘记重新启动),您可以始终删除默认的Virtualhost,只保留您正在处理的Virtualhost。我找到了问题的答案。我需要删除/etc/apache2/sites-enabled中的文件
sudoa2ensite mysite
sudo服务apache2重新加载
我找到了这个问题的答案: 升级到
ubuntu13.10
时,DocumentRoot
似乎没有什么不同
这是因为Apache2.4将目录配置移到了其他地方。旧的.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>
现在重新加载您的设置:
service apache2 reload
和DocumentRoot
已返回。:) 用扩展名.conf重命名文件配置“cnm”
mv sites-available/cnm sites-available/cnm.conf
a2ensite sites-available/cnm.conf
准备好了
service apache2 reload
我也有同样的问题
一种方法是禁用默认设置并重新加载apache,但这不是解决方案,因为您必须同时拥有一个vhost:(
我找不到任何关于如何让它在我这边起作用的分步教程。我在这里和那里收集了一些零碎的东西,因此对于那些需要遵循所有步骤的人,这里有:
$ 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”更改为您想要存放文件的位置,并将用户名更改为您自己的用户名):
我遇到了一个类似的问题。我的服务器名和FQDN与默认名称相同。默认名称运行在/var/www/html目录中。我禁用了默认配置,我的站点运行起来非常轻松。谢谢@regilero
sudo a2dissite 000-default.conf
为我修复了它。谢谢!我的便条1说我已经试过了,但没有用。我仍然看到/var/www/index.html而不是/var/www/cnm/index.html:-)我也有同样的问题,这没有用。我的虚拟主机正在工作,它们只是不听DocumentRoot设置<代码>/etc/apache2/envvars不输出任何内容。有什么想法吗?@Redsandro使用envvars的dot命令只是为了加载apache的env变量,因此您可以运行
apache2-h
和所有其他apache2-X
命令,而不会因缺少env变量而出现配置错误。现在没有文档根的listen
,如果您有问题,请在此网站或@engineer上详细解释它:提出一个新问题,并在这个问题中添加/etc/apache2/sites/*中存在的文件列表,apache2-S的输出,等等,详细信息,详细信息,详细信息,错误肯定在其中一个详细信息中,我们无法在没有信息的情况下猜测它在哪里。还要记住,他们已经更改了访问控制指令(例如,Order deny,allow deny from all
到Require all denied
),请看,我也遇到了同样的问题,这没有帮助。我的虚拟主机正在工作,它们只是不听DocumentRoot
设置。步骤2。。。不 真实 的。谢谢。这些都帮不了我,在000-default.conf文件中定义DocumentRoot后,无法识别它。有什么线索吗?没有线索,这里有用。可能将www-data
添加为user:group
?是否需要该部分?似乎对我没有任何帮助。但另一件事解决了我的问题:)(我想你现在需要明确指定目录的所有选项,但我不确定)@CJBrew我不确定。我上面的答案是我通过当时为解决我的问题所做的研究收集的所有资料。但我已经忘了这些作品到底是做什么的:-/
service apache2 reload
sudo a2dissite 000-default.conf
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
# ------------------------------------------------------
<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
sudo a2dissite 000-default.conf