虚拟主机在Ubuntu 13.10和Apache 2.4.6

我有以下问题
我的主机文件如下:

127.0.0.1 localhost 127.0.1.1 barbala4o-HP-ProBook-4530s 127.0.1.1 mysite.localhost 

我在/etc/apache2/sites-available/mysite.localhost.conf文件如下所示:

 <VirtualHost *:80> ServerAdmin webmaster@localhost ServerName mysite.localhost DocumentRoot /var/www/mysite <Directory /var/www/mysite/> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> ErrorLog /var/log/apache2/mysite-error.log CustomLog /var/log/apache2/mysite-access.log common </VirtualHost> 

sudo a2ensite mysite.localhost.conf ,重新启动Apache的mysite.localhost /只在本地主机上我得到以下(如列出一个目录中没有索引文件):

 Index of / [ICO] Name Last modified Size Description [DIR] apache_logs/ 2013-09-24 10:15 - [DIR] mysql/ 2013-10-22 10:05 - [DIR] tools/ 2013-10-22 10:05 

并在/var/www/目录中的任何其他文件夹像testing时,我进入localhost/test而不是加载index.php文件它显示:

 Not Found The requested URL /adlantic was not found on this server. Apache/2.4.6 (Ubuntu) Server at localhost Port 80 

如果我做sudo a2dissite mysite.conf并重新启动Apache一切都加载好。 我猜这个问题是在mysite.localhost.conf某处,但我找不到在哪里。 有任何想法吗? 10倍

Ubuntu 13.10和变种已经转移到Apache 2.4。 Apache 2.4希望启用虚拟主机configuration文件在默认情况下以.conf结尾。

现在要纠正这个问题,有两种方法可以用来实现相同的结果。

  1. 第一个解决scheme和简单的解决scheme是为所有虚拟主机添加一个.conf扩展名。 新的Apache 2.4读取新的Apache 2.4configuration文件中概述的.conf扩展名的sites-available目录中的每个虚拟主机。

  2. 第二个解决scheme是删除位于/etc/apache2/apache2.conf的Apache 2.4configuration文件中的.conf扩展名

在旧的Apache 2.2文件中.conf文件有一个Include sites-enabled /而新的.conf文件有

 # Include the virtual host configurations: IncludeOptional sites-enabled/*.conf 

将该行更改为:

 # Include the virtual host configurations: IncludeOptional sites-enabled/ 

结果:命令a2ensite yourdomain现在按预期运行。 如果你正在使用第二种方法; 您的虚拟主机文件不需要具有.conf扩展名。

 Note: Configuration file is "/etc/apache2/apache2.conf" in new Apache, so please copy document root path and other configurations from "/etc/apache2/sites-available/000-default.conf" to "/etc/apache2/apache2.conf" 

实验3小时后发现问题。 显然,在新的Ubuntu 13.10中有一些愚蠢的原因,虚拟主机的conf文件看起来类似于这个:

 <VirtualHost mysite.localhost> ServerAdmin webmaster@example.com ServerName mysite.localhost ServerAlias mysite.localhost # Indexes + Directory Root. DocumentRoot /var/www/mysite/public_html <Directory /var/www/mysite/public_html/> DirectoryIndex index.php Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> # Logfiles ErrorLog /var/log/apache2/mysite-error.log CustomLog /var/log/apache2/mysite-access.log common </VirtualHost> 

显然,开发Ubuntu 13.10的人决定使用它不再有价值

 <VirtualHost *:80> 

当做一个虚拟主机,而不是必须的

 <VirtualHost mysite.localhost> 

混合具体指定DirectoryIndex。 这解决了我现在的问题,现在正在工作(希望他们应该,最终可能会出现一些问题)显然,Apache的configuration文件是不同的。

我有同样的问题,但以上这些贴子都没有为我工作。 后来我阅读并回顾了Apache和PHP的每个configuration文件。

我可以找出在apache2.conf(在Ubuntu 13.10)有一个标志叫

 HostnameLookups off 

默认情况下,这将被设置为closures,我改变了这个

 HostnameLookups on 

通过这样做,Apache开始了我的主机条目和vhostconfiguration。

另外下面是我的实际的Vhost文件。 我曾经使它工作

Offcourse我也build议在Vhost指令中添加Require all granted

 <VirtualHost *:80> ServerName test.yoursite.domain.in DocumentRoot path_to_code_base/public <Directory path_to_code_base/public> Options -Indexes Require all granted DirectoryIndex index.php AllowOverride All </Directory> ErrorLog /path_to_code_base/logs/error.log LogLevel warn CustomLog /path_to_code_base/logs/access.log combined </VirtualHost> 

我发布这个post是为了帮助那些不想浪费时间的人把Ubuntu从13.10降级到13.04。

我没有看到这个博客,我也无法理解hostnameLookups是什么意思。

希望这可以帮助 。

对于Ubuntu 13.10 Apache 2.4.6

你将会拥有

 /etc/apache2/apache2.conf /etc/apache2/sites-available/000-default.conf 

/etc/apache2/sites-enabled/000-default.conf 指向 /etc/apache2/sites-available/000-default.conf

现在,编辑apache2.conf并添加

 <Directory /home/my_site/public_html/> #YOUR SETTINGS </Directory> 

并编辑sites-available/000-default.conf并将<VirtualHost *:80>更改为<VirtualHost localhost:80>以使apache监听localhost(在端口80上)作为默认设置。

现在让mysite.localhost工作,把它添加到sites-available/000-default.conf

 <VirtualHost mysite.localhost:80> ServerName mysite.localhost ServerAdmin webmaster@mysite.localhost DocumentRoot /home/my_new_site_public_html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> 

现在编辑你的/etc/hosts/文件,把mysite.localhostIP127.0.1.1改为127.0.0.1

现在访问http://mysite.localhost http://localhost

🙂

 <VirtualHost *:80> ServerAdmin webmaster@localhost ServerName mysite.localhost DocumentRoot /var/www/mysite <Directory /var/www/mysite/> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> ErrorLog /var/log/apache2/mysite-error.log CustomLog /var/log/apache2/mysite-access.log common </VirtualHost> 

在我的情况下,我刚刚取代<VirtualHost *:80><VirtualHost mysite.localhost:80>经过多次试验和错误

我希望这有帮助。

问候,

执行:
vim可以用你最喜欢的文本编辑器如nano,pico等来改变

vim /etc/apache2/apache2.conf

原始文件:

 # Sets the default security model of the Apache2 HTTPD server. It does # not allow access to the root filesystem outside of /usr/share and /var/www. # The former is used by web applications packaged in Debian, # the latter may be used for local directories served by the web server. If # your system is serving content from a sub-directory in /srv you must allow # access here, or in any related virtual host. <Directory /> Options FollowSymLinks AllowOverride None Require all denied </Directory> <Directory /usr/share/> AllowOverride None Require all granted </Directory> <Directory /var/www/> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory> 

将None更改为All

编辑文件:

 # Sets the default security model of the Apache2 HTTPD server. It does # not allow access to the root filesystem outside of /usr/share and /var/www. # The former is used by web applications packaged in Debian, # the latter may be used for local directories served by the web server. If # your system is serving content from a sub-directory in /srv you must allow # access here, or in any related virtual host. <Directory /> Options FollowSymLinks AllowOverride All Require all denied </Directory> <Directory /usr/share/> AllowOverride All Require all granted </Directory> <Directory /var/www/> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> 

对于Kubuntu 14.04和Apache 2.4.7

在尝试上述build议之后,仍然遇到权限问题,“chmod 755 $ HOME”为我工作。 不要在多用户系统上使用。

只是一个关于这个主题的人拉出他们的头发的笔记,你需要使用sudo所有这些设置发生,如果你正在使用一个AWS实例。

 sudo a2ensite example.com 

请记住,你需要这样做,甚至重新启动Apache。 如果你没有看到你的变化发生,这可能是罪魁祸首。

 sudo service apache2 restart