web dev - 服务器未指向 laravel 7.3 public,显示“/索引”页面

Posted

技术标签:

【中文标题】web dev - 服务器未指向 laravel 7.3 public,显示“/索引”页面【英文标题】:web dev - server not pointing to laravel 7.3 public, displaying 'Index of /' page 【发布时间】:2021-06-17 08:28:01 【问题描述】:

我在工作服务器上的新 public_html 目录中创建了一个新的 laravel 项目,使用

composer create-project laravel/laravel public_html

我创建了 .vue 组件和控制器以在访问该站点时显示主页,但显示的只是:

这里是处理请求的 web.php 文件:

<?php

use Illuminate\Support\Facades\Route;

/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/

Route::get('/', [HomepageContoller::class, 'index'])
   ->name('home');

这里是 HomepageController 类:

<?php

namespace App\HTTP\Controllers;

use Inertia\Inertia;

class HomepageContoller extends Controller 

    public function index() 
        return Inertia::render('Homepage/Index');
    


?>

这里是 .vue 组件:

<template>
  <div>
    <h1>Brite Visual Products<h1>
  </div>
</template>

<script>
export default 
  metaInfo:  title: 'Brite Visual Products' ,

</script>

一切都在它所属的地方,自从composer create-project调用以来没有任何东西被移动

更新:

似乎问题只是 web 根目录指向 public_html/ 而不是 public_html/public/

为了解决我需要在我的工作服务器上拥有更高权限的问题,稍后将发布完整的解决方案

【问题讨论】:

您的网络服务器配置不正确。 是的,很明显问题在于 web 根指向的位置,但是在我的 etc 文件中没有 apache2 目录来编辑通常在站点可用或 conf 目录中找到的根配置 如果你进入公共目录并点击 index.php 会发生什么?它会下载那个文件吗? @Kerkouch 您的意思是在显示的 / 页面的索引中吗?如果是这样,不,如果我尝试查看任何 .php 文件,它会返回 500 错误,.json 和其他类似类型没有问题 500 错误表示 PHP 已安装并正在运行。您需要在/etc/apache/sites-available/下配置VirtualHost,并设置DocumentRoot指向public/目录,然后启用站点。 【参考方案1】:

编辑以下文件

vi /var/cpanel/userdata/username/domain.com

将“username”替换为您的 cPanel 帐户用户名,将“domain.com”替换为您的主域名,将“subdir”替换为您的新目录。

在此文件中找到以下两行。

documentroot: /home/username/public_html
path: /home/username/public_html/cgi-bin

修改这两行,将主域的文档根目录更改为“public_html”目录中的子目录。

documentroot: /home/username/public_html/subdir
path: /home/username/public_html/subdir/cgi-bin

如果主域安装了 SSL 证书,请以与上述相同的方式编辑以下文件。

vim /var/cpanel/userdata/username/domain.com_SSL

进行更改后保存文件,然后删除主域的缓存文件。

rm -vf /var/cpanel/userdata/username/domain.com_SSL.cache

运行以下脚本更新用户数据缓存并重建 apache 配置文件。

/scripts/updateuserdatacache
/scripts/rebuildhttpdconf

重新启动 Apache 服务器以加载更改。

service httpd restart

【讨论】:

以上是关于web dev - 服务器未指向 laravel 7.3 public,显示“/索引”页面的主要内容,如果未能解决你的问题,请参考以下文章

Mac OSValet环境配置

Composer - Forked Laravel 4.2 未安装

Laravel 路由未在服务器上更新

未指定输入文件。 (Laravel 与宅基地)

Laravel Web 中间件组在用户未登录时显示页面

未定义变量:用户(查看:/home/laravel/web/laravel.swt101.eu/public_html/abonamenty/resources/views/products/edit