我升级到Ubuntu 13.10。最初在更新后运行apache时,有丢失/损坏的文件,所以我只是重新安装了apache。我备份了vhost文件。
尝试从浏览器访问我的Laravel项目时,会收到403错误。我已经多次更改了根文件夹的权限,但仍然是禁止的。我不相信这是一个laravel问题,因为我已经在13.04修复了它,并且我使用相同的文件。
这是我的000-default.conf文件,位于/ sites-enabled和/ sites-available中。自安装以来,我的apache2.conf文件没有改变。
<VirtualHost *:80>
DocumentRoot /home/brennan/development/MasonACM/public
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /home/brennan/development/MasonACM/public/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
LogLevel warn
CustomLog /var/log/apache2/access.log combined
</VirtualHost>
同样重要的是要注意我的.htaccess文件没有丢失,并且自从该网站在13.04上工作以来没有被更改。
更新:
我现在有apache的主机设置工作,但现在浏览器显示index.php的实际代码,这意味着apache由于某种原因没有使用php。我刚刚检查过php是否安装了,为什么apache不会识别它?
答案 0 :(得分:53)
Apache2可能也已升级到版本2.4
,有几点需要注意。
首先,你现在有Apache 2.4.x +吗?通过运行检查:
$ apache2 -v
如果是这样,你的虚拟主机需要进行一些调整:
某些Options
参数需要+/-语法。 Read more here。当在某些指令上混合+/-时,这可能尤为重要(请阅读上一个链接以了解更多信息)。
变化:
Options Indexes FollowSymLinks MultiViews
为:
Options +Indexes +FollowSymLinks +MultiViews
Apache现在通过mod_authz_host
进行访问控制变化:
Order allow,deny
Allow from all
为:
Require all granted
答案 1 :(得分:2)
我遇到了同样的问题,出于某种原因,用Sudo重新启动Apache有所不同。 mods是否重写并且mcrypt健康?
答案 2 :(得分:0)
我遇到了一个问题,在路由文件(web.php)中,我有两条路由(相同的链接),但是控制器的动作不同。第二个动作为空,这就是空白的原因。
例如:
Route::get('/route', 'Controller@firstAction');
Route::get('/route', 'Controller@secondAction');