部署Symfony2项目


Deploying a Symfony2 project

我们正在进行一个Symfony2项目。现在,它已经完成并准备部署。我们将整个项目文件上传到服务器(当然是通过ftp)和数据库。现在,当我们打开它的任何一页时,我们都只得到一个空白页(空的源代码)。缓存是干净的,日志不会显示任何新内容。我们在谷歌上搜索了将Symfony2项目部署到主机的步骤,但没有找到一个好的解释(甚至这些都是关于Symfonynot-version-2的)。我们认为这可能是配置问题,但目前还不清楚。任何帮助都将不胜感激。提前谢谢。

编辑:空白页面在Firefox中。谷歌Chrome正在说:

服务器错误网站在检索时遇到错误http://*.com/mamoky/web/app_dev.php/main维护或配置不正确。以下是一些建议:稍后重新加载此网页。HTTP错误500(内部服务器错误):服务器尝试时遇到意外情况以满足请求。

error_log显示:

〔24-Mar-2012 23:29:24〕PHP解析错误:语法错误,意外T_STRING,中应为T_CONSTANT_ENCAPSED_STRING或"("/home/leadow33/public_html/mammoky/web/app.php,第7行

它是:使用Symfony''Component''HttpFoundation''Request;和

〔24-Mar-2012 23:15:08〕PHP警告:输入中出现意外字符:''''(ASCII=92)状态=1 in/home/leadow33/public_html/mammoky/web/config.php,第84行

它是:$reflector=new''ReflectionExtension('intl');


编辑:我已经发布了我的解决方案,请在此处查看。

答案:

我开始工作了,这是我的经验:

  • 将整个项目文件夹上载到服务器
  • 输入www.your-website.com/project-name/web/config.php
  • 它应该说:"这个脚本只能从localhost访问"
  • 打开此网站:http://www.whatismyip.com,它应该显示您的公共IP地址,复制它
  • 从管理面板(如cPanel)打开config.php并编辑config.php

if (!in_array(@$_SERVER['REMOTE_ADDR'], array('127.0.0.1', '::1', /*your IP here*/))) {
    header('HTTP/1.0 403 Forbidden');
    die('This script is only accessible from localhost.');  
}

  • 刷新你的config.php文件,页面会告诉你你的系统是否缺少一些必要的条件,比如:PHP版本、APC扩展、授予/cache和/log文件夹写入权限等
  • 在您提供了所需的条件后,您将看到一种配置您的项目以连接到数据库(如果您有数据库的话)的形式,此步骤非常简单
  • 打开链接www.your-website.com/project-name/web/app_dev.php,它将帮助您开始使用Symfony2项目
  • 如果您在app_dev.php中收到以下消息:You are not allowed to access this file...只需对app_dev.php执行与步骤4和5中相同的操作(将您的公共IP地址添加到阵列中)
    注意Hakan Deryal(评论):如果你没有一个固定的IP地址,你需要做最后一步,每次你从DHCP获得一个新的IP地址。因此,要解决此问题,请打开app_dev.php并注释掉die('You are not allowed to..行,但这不是推荐的方法,因为您正在禁用文件的内置安全性
  • 有一件事阻止了我,也可能阻止你,我部署项目的服务器是区分大小写的(与我计算机上的localhost不同),所以它一直告诉我模板(例如Index.html.php)不存在,但它确实存在,但我在DefaultController.php中用小i做了return $this->render('...:index.html.php')。因此,使用相同的大小写字母来呈现准确的模板(文件)名称

现在一切都很顺利,我希望这对你有所帮助。

在我的例子中,它是php版本*,我通过运行config.php来发现错误,并删除了检查ip地址的行。在我的主机上,我刚刚为我的脚本更改了PHP的默认版本。

*由于名称空间仅来自5.3。

生产不是app_dev,而是app。。页面可能与您创建的视图源相同?你试过运行框架zip附带的config.php吗?

如果您的安装运行在共享Web服务器上,请尝试在app.php中设置以下行:

date_default_timezone_set('America/Los_Angeles');

这解决了我的问题。