openshift上的php symfony错误内容解码失败

openshift上的php symfony错误内容解码失败,php,apache,.htaccess,symfony,openshift,Php,Apache,.htaccess,Symfony,Openshift,我在openshift上有一个PHP5.4Gear,可以在上面运行wordpress安装 然而,当我尝试部署我的symfony应用程序时,我发现内容编码错误,似乎html输出已中断(尚未完成)。我尝试过修改.htaccess文件,以及在apache的httpd.conf上启用/禁用输出缓冲和/或输出压缩设置。以下是curl的输出: $ curl --compress --raw -i http://webfront-interiorpediadev.rhcloud.com HTTP/1.1 20

我在openshift上有一个PHP5.4Gear,可以在上面运行wordpress安装

然而,当我尝试部署我的symfony应用程序时,我发现
内容编码错误
,似乎html输出已中断(尚未完成)。我尝试过修改.htaccess文件,以及在apache的httpd.conf上启用/禁用输出缓冲和/或输出压缩设置。以下是curl的输出:

$ curl --compress --raw -i http://webfront-interiorpediadev.rhcloud.com
HTTP/1.1 200 OK
Date: Mon, 08 Dec 2014 01:52:30 GMT
Server: Apache/2.2.15 (Red Hat)
X-Pingback: http://webfront-interiorpediadev.rhcloud.com/xmlrpc.php
Cache-Control: no-cache
x-pingback: http://webfront-interiorpediadev.rhcloud.com/xmlrpc.php
vary: Accept-Encoding
content-encoding: gzip
accept-ranges: none
Content-Length: 20
X-Debug-Token: a9e740
X-Debug-Token-Link: /_profiler/a9e740
Content-Type: text/html; charset=UTF-8
Set-Cookie: PHPSESSID=gtarr5ls6tdcejdelrjrffr9p6; path=/
set-cookie: PHPSESSID=jtebjs0ihrdqhvo6f2gicq0rp0; path=/

<!DOCTYPE html>
<!--
$curl--compress--raw-ihttp://webfront-interiorpediadev.rhcloud.com
HTTP/1.1200ok
日期:2014年12月8日星期一01:52:30 GMT
服务器:Apache/2.2.15(红帽)
X-Pingback:http://webfront-interiorpediadev.rhcloud.com/xmlrpc.php
缓存控制:没有缓存
x-pingback:http://webfront-interiorpediadev.rhcloud.com/xmlrpc.php
改变:接受编码
内容编码:gzip
接受范围:无
内容长度:20
X-Debug-Token:a9e740
X-Debug-Token-Link:/_探查器/a9e740
内容类型:text/html;字符集=UTF-8
设置Cookie:PHPSESSID=gtarr5ls6tdcejdelrjrffr9p6;路径=/
设置cookie:PHPSESSID=jtebjs0ihrdqhvo6f2gicq0rp0;路径=/

将Symfony应用程序部署到Openshift的最佳方法是:

  • 确保您有一个Symfony2应用程序在localhost(开发人员和产品)中运行良好
  • 你的项目必须使用git
  • 您的.gitignore文件正在忽略供应商、缓存、引导、日志、编写器等
  • 您已经提交了所有挂起的更改
  • 您需要一个使用PHP5.4的openshift gear和一个MySql 5.5的盒带
  • 您需要安装和配置rhc
  • 将您的装备配置为公开一个名为
    release
    的分支:
    rhc-app-configure--deployment-branch-release-a
  • 创建一个新的php文件,该文件将允许MySQL访问您的应用程序:

  • 提交您的更改
  • 创建一个新分支,将您的更改推送到Openshift:
    git checkout-b release
  • 从openshift添加远程存储库:
    git remote Add openshift-f
  • 合并两个存储库之间的差异
    git Merge openshift/master-s recursive-X ours
  • 在新文件夹“/.openshift/action hooks”(添加openshift存储库时创建)中创建“部署”文件(推送应用程序后在openshift中执行的文件):

  • 授予此文件要执行的权限。在windows中:
    git更新索引--chmod=+x.openshift/action\u hooks/deploy
    在Linux和Mac中:
    chmod+x.openshift/action\u hooks/deploy
  • 将新文件添加到git项目并进行提交
  • 推送至openshift:
    git推送openshift磁头
  • 您的控制台将向您显示它正在执行的每个步骤
  • 回到你的主分支<代码>git签出主机
  • 然后,您可以在项目上保持正常工作,提交更改并移动到
    release
    分支以部署新更改:
    git checkout release
    git merge master
    git push openshift HEAD
    git checkout master

  • 这就是我与Symfony和Openshift合作的方式。(这些说明是我阅读的许多方法的混合,我进行了一些修改。它对我制作的每个应用程序都非常有效。

    谢谢!这是一个很好的工作流程!我还是openshift和symfony的新手,所以我的工作流程仍然混乱。我将采纳您的输入:)顺便问一句,您有没有遇到过内容解码失败的情况?好像输出缓冲失败了,我没有得到完整的输出。。Openshift处理请求的速度非常慢。我想如果你尝试用这种方式部署你的应用程序,内容解码可以很好地工作,因为它可以在localhost中工作。当我采用部署文件时,部署应用程序的大多数问题都开始起作用。也许你可以直接从你的控制台运行这些指令,并通过shell访问你的应用程序。
    <?php
    # app/config/params.php
    if (getEnv("OPENSHIFT_APP_NAME")!='') {
        $container->setParameter('database_host', getEnv("OPENSHIFT_MYSQL_DB_HOST"));
        $container->setParameter('database_port', getEnv("OPENSHIFT_MYSQL_DB_PORT"));
        $container->setParameter('database_name', getEnv("OPENSHIFT_APP_NAME"));
        $container->setParameter('database_user', getEnv("OPENSHIFT_MYSQL_DB_USERNAME"));
        $container->setParameter('database_password', getEnv("OPENSHIFT_MYSQL_DB_PASSWORD"));
    }?>
    
    imports:
        - { resource: parameters.yml }
        - { resource: security.yml }
        - { resource: params.php }
    ...
    
    #!/bin/bash
    
    # Symfony deploy
    export COMPOSER_HOME="$OPENSHIFT_DATA_DIR/.composer"
    
    if [ ! -f "$OPENSHIFT_DATA_DIR/composer.phar" ]; then
        curl -s https://getcomposer.org/installer | php -- --install-dir=$OPENSHIFT_DATA_DIR
    else
        php $OPENSHIFT_DATA_DIR/composer.phar self-update
    fi
    
    unset GIT_DIR 
    cd $OPENSHIFT_REPO_DIR/
    php $OPENSHIFT_DATA_DIR/composer.phar install
    
    php $OPENSHIFT_REPO_DIR/app/console cache:clear --env=dev
    
    chmod -R 0777 $OPENSHIFT_REPO_DIR/app/cache
    chmod -R 0777 $OPENSHIFT_REPO_DIR/app/logs
    
    rm -r $OPENSHIFT_REPO_DIR/php
    ln -s $OPENSHIFT_REPO_DIR/web $OPENSHIFT_REPO_DIR/php
    
    rm -r $OPENSHIFT_REPO_DIR/php
    ln -s $OPENSHIFT_REPO_DIR/web $OPENSHIFT_REPO_DIR/php
    
    php $OPENSHIFT_REPO_DIR/app/console doctrine:schema:update --force