部署Symfony2项目

Nad*_*ami 5 php deployment hosting symfony

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

编辑:空白页面在Firefox中.Google Chrome正在说些什么:

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

error_log显示:

[2012年3月24日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警告:输入中出现意外字符:第84行/home/leadow33/public_html/mammoky/web/config.php中的'\'(ASCII = 92)状态= 1

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


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

Nad*_*ami 24

回答:

我得到了它的工作,这是我的经验:

  • 将整个项目文件夹上载到服务器.
  • 输入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.');  
}
Run Code Online (Sandbox Code Playgroud)
  • 刷新您的config.php文件,该页面将告诉您系统是否缺少某些必需条件,例如:PHP版本,APC扩展名,给予/缓存和/ 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例如)不存在,但它确实存在存在的,但我确实return $this->render('...:index.html.php')有小iDefaultController.php.因此,使用相同的字母大小写呈现精确的模板(文件)名称.

现在一切顺利,我希望能帮到你.

  • 这不是部署应用程序的好方法.app_dev.php应仅用于开发目的,并且出于安全原因应在生产环境中禁用或保护.通过上述步骤,您将禁用内置安全功能,这可能会导致系统受损. (5认同)