我无法让我的索引页面显示在我的 cloudways symfony 应用程序上
I cant get my index page to show on my cloudways symfony app
我为我的 Web 应用程序使用 CloudWays 托管。我正在尝试让我的索引页正常工作。示例:www.mysite.com 或 www.mysite.com 指向我的索引或主页。我在 运行 composer require annotations
之后设置了以下控制器
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Routing\Annotation\Route;
class HomeController extends AbstractController
{
/**
* @Route("/", name="main")
*/
public function index()
{
return $this->render('main/index.html.twig', ['controller_name' => 'HomeController',]);
}
}
我遵循了 Symfony 4 官方路由文档,其中定义了这个示例代码(https://symfony.com/doc/4.1/routing.html):
// src/Controller/BlogController.php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Routing\Annotation\Route;
class BlogController extends AbstractController
{
/**
* Matches /blog exactly
*
* @Route("/blog", name="blog_list")
*/
public function list()
{
// ...
}
}
我的项目结构如下:
/projectfolder
---- /public_html
---- /bin
/config
----/dev
framework.yaml
annotations.yaml
/public
----/assets
/css
/js
.htaccess
index.php
/src
----/Controller
----HomeController.php
Kernal.php
/templates
----/main
----index.html.twig
base.html.twig
/var
/vendor
.env
.swp
composer.json
composer.lock
symfony.lock
当我输入 url www.mysite.com 时,出现 403 Forbidden 错误。
Forbidden
You don't have permission to access this resource.
Apache/2.4.25 (Debian) Server at www.mysite.om Port 80
当我输入 url www.mysite.com/public 时,它可以正常工作并完美显示我的网站。
我该如何解决这个问题,使我的索引位于 www.mysite.com 而不是 www.mysite。com/public
Google 域图像:
由于 CloudWays 似乎是一个使用 Apache server
的共享托管站点,您可能需要一个 Apache pack
。 运行 在您的控制台中命令 composer require symfony/apache-pack
并再次上传您的项目文件以查看是否有帮助。
我明白问题出在哪里了。为了解决我的问题,我需要执行以下操作:
步骤 1) 导航到 Cloudways 服务器应用程序设置面板。
步骤 2) 将 webroot 更改为 public 文件在项目中的任何位置。
如果您不知道 public 文件的位置,您可以通过提供的终端连接到 apache 服务器并使用 cd
命令导航到该目录来查找。或者使用 ftps 连接来导航到所需的目录。
完成此操作后 www.mysite.com
应该会带您到 index/home page
。在研究了为什么会发生这种情况后,我发现 index.php
比我最初的根文件夹低一层。为了解决这个问题,我需要将我的根文件夹带到 index.php
所在的正确层。
我为我的 Web 应用程序使用 CloudWays 托管。我正在尝试让我的索引页正常工作。示例:www.mysite.com 或 www.mysite.com 指向我的索引或主页。我在 运行 composer require annotations
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Routing\Annotation\Route;
class HomeController extends AbstractController
{
/**
* @Route("/", name="main")
*/
public function index()
{
return $this->render('main/index.html.twig', ['controller_name' => 'HomeController',]);
}
}
我遵循了 Symfony 4 官方路由文档,其中定义了这个示例代码(https://symfony.com/doc/4.1/routing.html):
// src/Controller/BlogController.php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Routing\Annotation\Route;
class BlogController extends AbstractController
{
/**
* Matches /blog exactly
*
* @Route("/blog", name="blog_list")
*/
public function list()
{
// ...
}
}
我的项目结构如下:
/projectfolder
---- /public_html
---- /bin
/config
----/dev
framework.yaml
annotations.yaml
/public
----/assets
/css
/js
.htaccess
index.php
/src
----/Controller
----HomeController.php
Kernal.php
/templates
----/main
----index.html.twig
base.html.twig
/var
/vendor
.env
.swp
composer.json
composer.lock
symfony.lock
当我输入 url www.mysite.com 时,出现 403 Forbidden 错误。
Forbidden
You don't have permission to access this resource.
Apache/2.4.25 (Debian) Server at www.mysite.om Port 80
当我输入 url www.mysite.com/public 时,它可以正常工作并完美显示我的网站。
我该如何解决这个问题,使我的索引位于 www.mysite.com 而不是 www.mysite。com/public
Google 域图像:
由于 CloudWays 似乎是一个使用 Apache server
的共享托管站点,您可能需要一个 Apache pack
。 运行 在您的控制台中命令 composer require symfony/apache-pack
并再次上传您的项目文件以查看是否有帮助。
我明白问题出在哪里了。为了解决我的问题,我需要执行以下操作:
步骤 1) 导航到 Cloudways 服务器应用程序设置面板。
步骤 2) 将 webroot 更改为 public 文件在项目中的任何位置。
如果您不知道 public 文件的位置,您可以通过提供的终端连接到 apache 服务器并使用 cd
命令导航到该目录来查找。或者使用 ftps 连接来导航到所需的目录。
完成此操作后 www.mysite.com
应该会带您到 index/home page
。在研究了为什么会发生这种情况后,我发现 index.php
比我最初的根文件夹低一层。为了解决这个问题,我需要将我的根文件夹带到 index.php
所在的正确层。