【发布时间】: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 root或public_html的web目录,现在我遇到的错误是require(/home/swipecom/public_html/web/../app/autoload.php): failed to open stream:也许我必须更改 app.php 内部的目录吗?但是如何将路径重定向到home directory?