Laravel 在本地 ubuntu 20 中显示空白页

标签 laravel apache .htaccess ubuntu

我正在使用 ubuntu 20,laravel 项目使用 运行php工匠服务但是当我使用此 URL 访问该站点时laravel-local.com 它显示空白页
无法得到任何错误
可用站点

 <VirtualHost *:80>
  ServerAdmin admin@MyWebsite.com
  DocumentRoot /var/www/html/laravel-local.com/public
  ServerName laravel-local.com

  <Directory /var/www/html/laravel-local.com/public>
     Options +FollowSymlinks
     AllowOverride All
     Require all granted
  </Directory>

  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
我试过的
  • 授予项目 777 访问权限
  • 更改所有权
  • 删除存储/框架内的文件夹
  • 更改存储文件夹权限
  • composer dump-autoload, php artisan cache and config clear
  • 删除公用文件夹中的.htaccess 文件

  • 我尝试了上述所有步骤仍然有一个空白页
    根文件夹中的 .htaccess 文件
    <IfModule mod_rewrite.c>
    
    RewriteEngine  On
    RewriteRule ^(.*)$ public/$1 [L]
    
    </IfModule>
    
    公共(public)文件夹中的.htaccess
    <IfModule mod_rewrite.c>
    Options -Indexes
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>
    
    RewriteEngine On
    
    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)/$ /$1 [L,R=301]
    
    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
    
    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
    </IfModule>
    

    最佳答案

    sites-available


    更新:您的 vHost 配置应在“启用站点”中定义,以便实际应用配置。在“sites-available”中创建一个从“sites-enabled”到实际配置文件的符号链接(symbolic link)。并重新启动 Apache。
    <IfModule mod_rewrite.c>
    
    RewriteEngine  On
    RewriteRule ^(.*)$ public/$1 [L]
    
    </IfModule>
    

    您不需要 .htaccess像这样的文件(需要放在 /public 目录上方的目录中),因为您已经配置了 /public目录为 DocumentRoot在服务器配置中。
    如果您还删除了 .htaccess /public 中的文件子目录,那么这将导致重写循环(500 错误)。
    您只需要文档根目录中的标准 Laravel 前端 Controller (.htaccess 文件),即。在 /public子目录。
    但是,您应该定义 DirectoryIndex (如果尚未在服务器配置中设置),在您的 vHost(<Directory> 容器)或主 Laravel 的顶部 .htaccess文件(在 /public 文件夹内)。如果没有定义,那么对 Laravel 目录本身(主页)的请求将不会通过 Laravel 路由,并且可能会导致来自 Apache 的 403 Forbidden 响应(或者更糟的是,如果 Indexes 已启用,则会出现目录列表)。
    例如:
    DirectoryIndex index.php
    

    关于Laravel 在本地 ubuntu 20 中显示空白页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69725722/

    相关文章:

    javascript - 通过弹出表单更新数据库时,表单提交不起作用

    php - Eloquent Eager Loading 约束限制

    apache - 带有 "deny from all"的 htaccess 文件是否也拒绝子目录?

    python pip install mod_wsgi 失败,可能出现 unicode 错误

    .htaccess - htaccess 重写目录

    .htaccess Url 按值重写标签

    php - Laravel 5.2 使 :auth

    mysql - 根据相关表使用哪个 laravel 查询对顶部条目进行排序

    linux - 在 Red Hat Linux Apache Server 脚本中识别错误并查找变量的值

    php - htaccess 尾部斜线问题