首页 > 解决方案 > 通过 filezilla 将 symfony 4.2 项目部署到共享主机

问题描述

我有一个基于 Symfony 4.2 的项目。我想将此项目部署到共享主机。但是在 symfony 文档中,并没有什么清楚的。

我将所有项目部署到 public_html 下的托管中。

但可能面板没有找到 index.php。在 cpanel 上,我无法更改文档根目录。

当前文档根目录:public_html

项目文件夹结构

我的 index.php 在 public 文件夹下。

   <?php

   use App\Kernel;
   use Symfony\Component\Debug\Debug;
   use Symfony\Component\HttpFoundation\Request;

   require dirname(__DIR__).'/config/bootstrap.php';

   if ($_SERVER['APP_DEBUG']) {
        umask(0000);

        Debug::enable();
   }

   if ($trustedProxies = $_SERVER['TRUSTED_PROXIES'] ?? 
        $_ENV['TRUSTED_PROXIES'] ?? false) {
        Request::setTrustedProxies(explode(',', $trustedProxies), 
  Request::HEADER_X_FORWARDED_ALL ^ Request::HEADER_X_FORWARDED_HOST);
   }

   if ($trustedHosts = $_SERVER['TRUSTED_HOSTS'] ?? 
       $_ENV['TRUSTED_HOSTS'] ?? false) {
            Request::setTrustedHosts([$trustedHosts]);
   }

   $kernel = new Kernel($_SERVER['APP_ENV'], (bool) 
   $_SERVER['APP_DEBUG']);
   $request = Request::createFromGlobals();
   $response = $kernel->handle($request);
   $response->send();
   $kernel->terminate($request, $response);

有人可以帮我解决这个问题吗?

标签: symfonycpanelsymfony4shared-hosting

解决方案


我有一个在共享主机下运行的 symfony4 应用程序,所以在 .htaccess 中尝试这个配置

<IfModule mod_rewrite.c>
    Options +FollowSymLinks
    RewriteBase /
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ public/index.php [QSA,L]
</IfModule>

对于资产,在 framework.yaml 中试试这个

    assets:
        base_path: '/public'

推荐阅读