我已经在openshift上部署了我的Symfony 2.1应用程序,它不起作用。
调用app.php
服务器返回200 OK
和白页(在我的本地服务器中运行良好)。
日志:
=> php-5.3 / logs / error_log-20130306-000000-EST< == [Tue Mar 05 19:16:00 2013] [错误] [client 127.5.146.1] PHP 3. require_once() /var/lib/openshift/5e487f6c4a484700999d9213755b64eb/app-root/runtime/repo/php/app/bootstrap.php.cache:4 [Tue Mar 05 19:16:00 2013] [错误] [客户端127.5.146.1] PHP 4。 要求() /var/lib/openshift/5e487f6c4a484700999d9213755b64eb/app-root/runtime/repo/php/app/autoload.php:5 [Tue Mar 05 19:16:00 2013] [错误] [客户端127.5.146.1] PHP 5。 ComposerAutoloaderInit12cecca862685bdd480babbdd1b1ec7a :: getLoader() /var/lib/openshift/5e487f6c4a484700999d9213755b64eb/app-root/runtime/repo/php/vendor/autoload.php:7 [Tue Mar 05 19:16:00 2013] [错误] [客户端127.5.146.1] PHP致命 错误:require():需要打开失败 '/var/lib/openshift/5e487f6c4a484700999d9213755b64eb/app-root/runtime/repo/php/vendor/kriswallsmith/assetic/src/functions.php'(include_path ='。:/ var / lib / openshift / 5e487f6c4a484700999d9213755b64eb / app-root /runtime/repo//libs/:/var/lib/openshift/5e487f6c4a484700999d9213755b64eb/php-5.3/phplib/pear/pear/php/:/usr/share/pear/“) 在 /var/lib/openshift/5e487f6c4a484700999d9213755b64eb/app-root/runtime/repo/php/vendor/composer/autoload_real.php 第42行[Tue Mar 05 19:16:00 2013] [错误] [客户端127.5.146.1] PHP 堆栈跟踪:[Tue Mar 05 19:16:00 2013] [错误] [客户端127.5.146.1] PHP 1. {main}() /var/lib/openshift/5e487f6c4a484700999d9213755b64eb/app-root/runtime/repo/php/web/app.php:0 [Tue Mar 05 19:16:00 2013] [错误] [客户端127.5.146.1] PHP 2。 require_once() /var/lib/openshift/5e487f6c4a484700999d9213755b64eb/app-root/runtime/repo/php/web/app.php:7 [Tue Mar 05 19:16:00 2013] [错误] [客户端127.5.146.1] PHP 3。 require_once() /var/lib/openshift/5e487f6c4a484700999d9213755b64eb/app-root/runtime/repo/php/app/bootstrap.php.cache:4 [Tue Mar 05 19:16:00 2013] [错误] [客户端127.5.146.1] PHP 4。 要求() /var/lib/openshift/5e487f6c4a484700999d9213755b64eb/app-root/runtime/repo/php/app/autoload.php:5 [Tue Mar 05 19:16:00 2013] [错误] [客户端127.5.146.1] PHP 5。 ComposerAutoloaderInit12cecca862685bdd480babbdd1b1ec7a :: getLoader() /var/lib/openshift/5e487f6c4a484700999d9213755b64eb/app-root/runtime/repo/php/vendor/autoload.php:7
有任何想法或建议吗?
答案 0 :(得分:1)
好像你错过了齿轮库中的一些文件。你添加了 - 提交 - 推送所有文件吗?
您可以通过运行以下命令获取已部署的* .php文件列表:
ssh <INTO-YOUR-GEAR> 'cd ~/app-root/runtime/repo/php && find ./ -name \*.php'
(显然你需要用你的SSH字符串替换<INTO-YOUR-GEAR>
)
答案 1 :(得分:1)
你没有&#34;热身&#34;你的缓存因为bootstrap.php.cache
文件不存在,看起来你只是推动你的仓库并且在openshift方面什么也没做。
您需要首先配置您的symphony应用程序,即下载所有依赖项,填写所有数据库设置,邮件程序设置和所有其他内容。
使用此命令rhc ssh -a <yourappname>
进入您的设备,cd进入您的symfony根目录,然后运行php composer.phar install
这将启动完全部署您的应用所需的一切
答案 2 :(得分:1)
将Symfony应用程序部署到Openshift的最佳方法是:
release
:rhc app-configure --deployment-branch release -a <app-name>
<?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"));
}?>
这将告诉应用程序,如果是openshift环境,则需要为不同的用户加载数据库
imports:
- { resource: parameters.yml }
- { resource: security.yml }
- { resource: params.php }
...
git checkout -b release
git remote add openshift -f <youropenshiftrepository.git>
git merge openshift/master -s recursive -X ours
#!/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
git update-index --chmod=+x .openshift/action_hooks/deploy
在Linux和Mac中:chmod +x .openshift/action_hooks/deploy
git push openshift HEAD
git checkout master
release
分支机构部署新的更改:git checkout release
git merge master
git push openshift HEAD
{{1} } 这就是我如何使用Symfony和Openshift。 (这些说明是我阅读的多种方式的混合,我对其进行了一些修改。对于我所制作的每个应用程序,它都非常有用。