Lac*_*hev 39 apache apache-config ubuntu-13.10
我有以下问题
我的主机文件如下:
127.0.0.1 localhost
127.0.1.1 barbala4o-HP-ProBook-4530s
127.0.1.1 mysite.localhost
Run Code Online (Sandbox Code Playgroud)
我的文件/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>
Run Code Online (Sandbox Code Playgroud)
在sudo a2ensite mysite.localhost.conf
mysite.localhost /上执行并重新启动apache 之后,只在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
Run Code Online (Sandbox Code Playgroud)
在目录中的任何其他文件夹,/var/www/
例如test,当我输入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
Run Code Online (Sandbox Code Playgroud)
如果我这样做sudo a2dissite mysite.conf
并重新启动apache,一切正常.我想问题是在某个地方,mysite.localhost.conf
但我无法找到.有任何想法吗?10倍
Anj*_*K P 56
Ubuntu 13.10和变种已经转移到Apache 2.4.Apache 2.4希望启用的虚拟主机配置文件默认以.conf结尾.
解
现在要纠正此问题,可以使用两种方法来实现相同的结果.
第一个解决方案和简单的解决方案是为所有虚拟主机添加.conf扩展.新的Apache 2.4使用新的Apache 2.4配置文件中概述的.conf扩展名读取站点可用目录中的每个虚拟主机.
第二种解决方案是删除位于/etc/apache2/apache2.conf中的Apache 2.4配置文件中的.conf扩展名
在旧的Apache 2.2文件中,.conf文件包含一个Include sites-enabled /,而新的.conf文件有
# Include the virtual host configurations:
IncludeOptional sites-enabled/*.conf
Run Code Online (Sandbox Code Playgroud)
将该行更改为:
# Include the virtual host configurations:
IncludeOptional sites-enabled/
Run Code Online (Sandbox Code Playgroud)
结果:命令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"
Run Code Online (Sandbox Code Playgroud)
Lac*_*hev 13
我在实验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>
Run Code Online (Sandbox Code Playgroud)
显然,开发Ubuntu 13.10的人决定使用它不再有价值
<VirtualHost *:80>
Run Code Online (Sandbox Code Playgroud)
在制作虚拟主机时,而不是必须这样做
<VirtualHost mysite.localhost>
Run Code Online (Sandbox Code Playgroud)
与专门指定DirectoryIndex混合使用.这解决了我遇到的问题,现在事情正在发挥作用(希望如此,最终会出现一些问题)显然apache的配置文件是不同的.
我有同样的问题,但上述帖子中没有一个适合我.后来我阅读并查看了Apache和PHP的每个配置文件.
我可以弄清楚在apache2.conf(在ubuntu 13.10中)有一个叫做的标志
HostnameLookups off
Run Code Online (Sandbox Code Playgroud)
默认情况下,这将设置为关闭,我将其更改为
HostnameLookups on
Run Code Online (Sandbox Code Playgroud)
通过这样做,Apache开始提升我的主机条目和vhost配置.
以下是我的实际Vhost文件.我曾经使它工作
Offcourse我也建议Require all granted
在Vhost 指令中添加.
<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>
Run Code Online (Sandbox Code Playgroud)
我发布这个帖子是为了帮助那些不想浪费时间的人将Ubuntu从13.10降级到13.04.
我没有看到这个博客,我也无法理解hostnameLookups究竟是什么意思.
希望这可以帮助 .
归档时间: |
|
查看次数: |
64181 次 |
最近记录: |