【问题标题】:Symfony 3 application on a CPANEL won't workCPANEL 上的 Symfony 3 应用程序无法运行
【发布时间】:2017-04-14 17:31:40
【问题描述】:

我的本​​地计算机上有正在运行的 symfony 3 应用程序,我已将整个应用程序上传到我的 CPANEL 主机上,该主机没有 SSH 访问权限,并且在 root public_html 下( www.domain.com)。我只是使用 FTP 帐户上传目录。在将应用程序上传到主机之前,我没有进行任何更改,只是删除了目录 \var\cache\var\logs

但是,当我尝试使用 url 访问应用程序时,我看到的只是应用程序目录并且应用程序没有运行。

更新

第 1 步。我像这样移动了主目录中的所有 SF 目录,

主页/swipecom

  • 缓存
  • 非接触式(SF 目录所在的位置)
  • public_html(/web唯一的SF目录)
  • 变量
  • ssl
  • tmp
  • public_ftp
  • 日志

第 2 步。我在 public_html 中创建了一个 .htaccess,就像这样

<IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteBase /web/

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ app.php [QSA,L]
</IfModule>

这是我遇到的错误。

更新

我已经像这样更改了public_html/web/app.php 的路径,以重定向到/home2/swipecom/contactless/app/autoload.php

<?php

use Symfony\Component\HttpFoundation\Request;

/** @var \Composer\Autoload\ClassLoader $loader */

$loader = require '/home2/swipecom/contactless/app/autoload.php';
include_once '/home2/swipecom/contactless/var/bootstrap.php.cache';

$kernel = new AppKernel('prod', false);
$kernel->loadClassCache();
//$kernel = new AppCache($kernel);

// When using the HttpCache, you need to call the method in your front controller instead of relying on the configuration parameter
//Request::enableHttpMethodParameterOverride();
$request = Request::createFromGlobals();
$response = $kernel->handle($request);
$response->send();
$kernel->terminate($request, $response);

这是我遇到的

更新

我用谷歌搜索了这个问题,发现 PHP 版本存在问题,这就是为什么我快速将我的 PHP 版本从 5.4(本机)更改为 5.5,而这里又遇到了另一个问题。

【问题讨论】:

  • 将您的主机指向/web 目录。
  • 我尝试使用www.domain.com/web 访问网络文件夹,结果如下Parse error: syntax error, unexpected 'class' (T_CLASS), expecting identifier (T_STRING) or variable (T_VARIABLE) or '{' or '$' in /home/swipecom/public_html/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Bundle/Bundle.php on line 224
  • 你看过这个链接吗:stackoverflow.com/questions/41451529/…我想它可能对你有帮助。
  • 谢谢,我把所有的 sf 目录都移到了home directory,除了我刚刚放入web rootpublic_htmlweb 目录,现在我遇到的错误是require(/home/swipecom/public_html/web/../app/autoload.php): failed to open stream: 也许我必须更改 app.php 内部的目录吗?但是如何将路径重定向到home directory

标签: php symfony


【解决方案1】:

web 文件夹应该是您的网络根目录。

您还需要保留var\cachevar\logs 文件夹。他们在那里是有原因的。

【讨论】:

  • 你的意思是我必须复制 /web 文件夹内的所有文件并粘贴到 www.domain.com?
  • 不,你必须保持标准的 Symfony 目录结构。只需将 web 文件夹指定为 web 根目录。不知道如何在 cpanel 中完成。
  • 我更新了上面的代码,你能检查一下这是否正确。谢谢
猜你喜欢
  • 1970-01-01
  • 2016-08-14
  • 1970-01-01
  • 2013-02-20
  • 2012-12-24
  • 1970-01-01
  • 1970-01-01
  • 2020-11-03
  • 2020-07-16
相关资源
最近更新 更多