禁止您无权访问此服务器.Centos 6/Laravel 4

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)


iav*_*ery 8

如果您使用的是CentOS,则可能是selinux的问题.检查selinux是否启用了'sestatus'.如果启用,您可以使用'sudo setenforce 0'检查是否存在问题(暂时).如果Apache可以服务于该网站,那么你只需要改变文件的情况下使用递归"须藤chcon这个-r -t httpd_sys_content_t"(你可以使用检查现有语境"LS-Z".

Selinux可能不是问题,但值得检查.


小智 5

在文件夹中尝试这个:

chcon -R -t httpd_sys_content_t *
Run Code Online (Sandbox Code Playgroud)