Fab*_*lio 12 apache httpd.conf http-status-code-403 laravel laravel-4
在我完成设置LAMP并安装了我的laravel 4应用程序后,我遇到了问题.一切似乎进展顺利,当我继续我的IP地址网址时,它正确显示我的应用程序的第一页,但页面的其余部分都给我一个404错误在此服务器上找不到请求的URL.
所以我添加到我的httpd.conf(在我的项目的虚拟主机下) - AllowOverride All Order允许,拒绝
<VirtualHost *:80>
ServerName VPS-IP-ADDRESS
DocumentRoot /var/www/html/nextmatch/public_html/public/
<Directory /var/www/html/nextmatch/public_html/public/>
AllowOverride all
Order allow,deny
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
</Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
现在,当我尝试导航而不是404错误我得到了禁止您没有权限访问此服务器.我设置了chmod 775 -R path/laravel/和777的文件夹存储,但我仍然得到相同的错误任何建议,请?我无法弄清楚这个问题我疯了!感谢您的任何帮助.
Rij*_*ael 13
Web服务器作为特定用户下的守护程序(服务)启动.该用户在httpd.conf中定义.默认情况下,用户将是apache.不要将apache用户与httpd进程混淆.后者是一个webserver守护进程,前者是运行它的用户.如果您创建的文件夹属于root用户或httpd.conf中定义的用户以外的用户,则apache将无法访问它.识别此问题的方法是转到该文件夹并执行ls -l.如果用户在httpd.conf中定义的是apache,那么为了让它访问该文件夹,您应该看到:
drwxr-xr-x. 2 apache apache 4096 Jan 8 2013 public_folder
Run Code Online (Sandbox Code Playgroud)
注意,它说'apache apache',这意味着它属于apache用户和组.如果您是通过root创建的,那么您可能会看到:
drwxr-xr-x. 2 root root 4096 Jan 8 2013 public_folder
Run Code Online (Sandbox Code Playgroud)
apache用户无法访问root定义的文件夹.要解决此问题,请运行以下命令:
chown -R apache:apache myfolder
Run Code Online (Sandbox Code Playgroud)
-R选项是递归的,因此它会将该文件夹中所有文件夹和文件的所有权更新为apache用户.
如果你的所有权如果罚款,那么试着"暂时"关闭selinux.你做的几点:
setenforce 0
Run Code Online (Sandbox Code Playgroud)
这将关闭selinux直到下次重启.理想情况下,您需要启用selinux以获得额外的安全性,并为您的apache文件和文件夹设置有效的上下文.
如果关闭selinux确实有效,那么您的文件和文件夹可能有错误的安全上下文.运行以下命令以还原安全上下文:
restorecon -R -v /var/www/
Run Code Online (Sandbox Code Playgroud)
如果您使用的是CentOS,则可能是selinux的问题.检查selinux是否启用了'sestatus'.如果启用,您可以使用'sudo setenforce 0'检查是否存在问题(暂时).如果Apache可以服务于该网站,那么你只需要改变文件的情况下使用递归"须藤chcon这个-r -t httpd_sys_content_t"(你可以使用检查现有语境"LS-Z".
Selinux可能不是问题,但值得检查.