Dup*_*tta 6 apache ubuntu virtualhost
我在我的Ubuntu 14.04机器上安装了Apache 2.4.7,我的一些虚拟主机不同意我的意见.我有5个虚拟主机,我正在尝试运行; 其中3个工作,2个不工作.两个不起作用的.conf文件是:
002-tmpnet.conf
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/tmpnet
ServerName tmpnet
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www/html/tmpnet/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
#Order allow,deny
#allow from all
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
003-tmpcom.conf
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/tmpcom
ServerName tmpcom
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www/html/tmpcom>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
#Order allow,deny
#allow from all
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
这两个都回归了
500 Internal server errors
Run Code Online (Sandbox Code Playgroud)
当试图访问他们.如果我通过localhost(即localhost/html/tmpnet)访问它们,它可以正常工作,而不是在尝试使用虚拟主机时.
我的主机文件是:
127.0.0.1 localhost
127.0.1.1 Eagle
127.0.1.1 tmpcom
127.0.1.1 tmpbiz
127.0.1.1 tmporg
127.0.1.1 tmpnet
127.0.1.1 thatsmybrick
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
Run Code Online (Sandbox Code Playgroud)
我的apache2.conf是:
Mutex file:${APACHE_LOCK_DIR} default
PidFile ${APACHE_PID_FILE}
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
# These need to be set in /etc/apache2/envvars
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}
HostnameLookups on
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf
Include ports.conf
<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>
AccessFileName .htaccess
<FilesMatch "^\.ht">
Require all denied
</FilesMatch>
LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %O" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
IncludeOptional conf-enabled/*.conf
IncludeOptional sites-enabled/*.conf
Run Code Online (Sandbox Code Playgroud)
我已经被困在这一段很长一段时间了,我真的很感激一些帮助.任何指向正确方向的都会令人惊叹.
谢谢
这可能有点晚了,不确定你是否找到了解决方案,但这就是我所做的.在花了很多时间修改我的配置文件并调整我的vhost之后,我决定使用a2dissite 000 ...默认站点并重新加载apache.一旦我这样做,重定向就像epxected一样工作.当你在服务器上有多个站点时,我不知道这将如何展开,如果它将默认为第一个加载的vhost或...我总是认为apache必须有一个默认主机,我可以那是错的.
我不仅要禁用默认值:
sudo a2dissite 000-default.conf
Run Code Online (Sandbox Code Playgroud)
但我也不得不重新加载apache作为sudo - 没有sudo它没有正确重新加载
sudo service apache2 reload
Run Code Online (Sandbox Code Playgroud)
小智 1
您还面临这个问题吗?
您是否查看了位于 /var/log/apache2/error.log 的错误日志?错误日志是不言自明的,可以很好地解决问题。
我的机器上的错误显示了这一点(错误声明的后半部分)
.htaccess:无效命令“RewriteEngine”,可能拼写错误或由未包含在服务器配置中的模块定义
就我而言,Apache 模块重写未启用。我启用了该模块,瞧,虚拟主机设置生效了。
我还发现您正在使用语句“AllowOverride All”,这表明您正在尝试使用重写模块。使用命令启用模块“重写”(如果尚未启用),sudo a2enmod rewrite
然后重新启动 apache2sudo /etc/init.d/apache2 restart
看看这是否有帮助!
归档时间: |
|
查看次数: |
17161 次 |
最近记录: |