无法读取htaccess文件 - Laravel或权限问题?

时间:2016-09-18 06:00:50

标签: php apache .htaccess laravel

我已将Laravel部署到Fedora 24 VPS,但是,

  

禁止

     

您无权访问此服务器上的/index.php。   服务器无法读取htaccess文件,拒绝访问是安全的

我尝试将Web服务器设置为所有者,并将命令行用户添加到Web服务器组

sudo chown -R apache:apache /var/www/laravel
sudo usermod -aG apache fedora
sudo find /var/www/laravel -type f -exec chmod 644 {} \;
sudo find /var/www/laravel -type d -exec chmod -c 755 {} \;

我还尝试让命令行用户成为所有者并给予命令行用户和Web服务器组权限,

sudo chown -R fedora:apache /var/www/laravel
sudo find /var/www/laravel -type f -exec chmod 664 {} \;
sudo find /var/www/laravel -type d -exec chmod 775 {} \;

最后,我刚试过给予所有777权限,但无济于事。

我使用Composer安装了Laravel - sudo /usr/bin/composer create-project --prefer-dist laravel/laravel /var/www/laravel,这没问题。我使用php artisan serve --host 0.0.0.0没有错误,所以可能表明我的http.conf文件存在问题?

<VirtualHost *:80>
    DocumentRoot /var/www/laravel/public

    <Directory /var/www/laravel>
        AllowOverride All
    </Directory>
</VirtualHost>

任何人都可以分享一些见解吗?我认为标准.htaccess可能有问题,但我不知道如何解释。

环境:

  • PHP 5.6.25
  • Apache 2.4.23
  • Laravel 5.3.9

感谢您的帮助

1 个答案:

答案 0 :(得分:-1)

尝试将虚拟主机DocumentRoot更改为项目的根目录,例如:

/var/www/laravel

而不是

/var/www/laravel/public

并放在那里.htaccess:

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{REQUEST_URI} !^public
    RewriteRule ^(.*)$ public/$1 [L]
</IfModule>