在Fedora 20上,我创建了一个名为test
的文件夹,然后通过composer create-project laravel/laravel
将Laravel安装到其中。它成功运行,现在我尝试在以下URL中的FireFox中查看它:
http://localhost/~username/test/laravel/public/
但它会引发以下错误:
内部服务器错误
服务器遇到内部错误或配置错误,无法完成您的请求。
请与root @ localhost上的服务器管理员联系,告知他们此错误发生的时间以及您在此错误发生之前执行的操作。
服务器错误日志中可能提供了有关此错误的更多信息。
如果我转到父文件夹,我可以看到除了public
文件夹之外的所有内容都存在。但是,如果我在终端中ls
,我可以看到文件夹就在那边。只有这个项目的其他PHP脚本没有问题。我尝试使用文件夹权限但没有成功。为什么我无法在浏览器中看到该文件夹,为什么在我尝试访问它时会抛出错误500?
答案 0 :(得分:3)
在我查看/var/log/httpd/error_log
之后,我在最后一行看到了以下内容:
[Tue May 20 09:37:21.874443 2014] [core:alert] [pid 2897] [client :: 1:55498]
/home/username/public_html/test/laravel/public/.htaccess
:
此处不允许使用选项,引用:http://localhost/~username/test/
因此,在我的public
文件夹中,我将.htaccess
文件重命名为.htaccess2
,现在它可以正常工作了。当然现在我需要在URL中index.php
之后写public/
,但至少它可以正常工作。这也解决了隐形文件夹错误,因此如果我在浏览器中转到项目根目录(public
的父文件夹),它也会列出public
文件夹。
httpd.conf
文件中的 According to this answer配置可被其他额外文件覆盖。您应该在这些文件中搜索包含AllowOverride
的{{1}}行,并将其替换为AllowOverride AuthConfig FileInfo
。