symfony - 通过 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);
有人可以帮我解决这个问题吗?
解决方案
我有一个在共享主机下运行的 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'
推荐阅读
- javascript - 嵌套路由在 react-router-dom 中不起作用
- react-native - 世博会推送通知不推送到物理设备
- hangfire - 向单个 Hangfire 服务器添加过滤器
- json - 错误:NoSuchMethodError:在 null 上调用了方法“子字符串”
- blazor-webassembly - Blazor 页面 (WebAssembly/WASM):EditForm 和 EditContext 如何在 SetParametersAsync 中始终为空?
- python - 没有重复的多个熊猫系列/列的假设策略
- javascript - 如何将 Node.js http.IncomingMessage 转换为 Fetch Request 对象?
- r - 错误如何:比较(1)仅适用于原子和列表类型被解析
- javascript - 如何在 React 中实现注销功能
- python - 我想用一个特定的基因组运行我的功能。我怎样才能激活它?