Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php OpenShift操作挂钩部署问题_Php_Git_Bash_Symfony_Openshift - Fatal编程技术网

Php OpenShift操作挂钩部署问题

Php OpenShift操作挂钩部署问题,php,git,bash,symfony,openshift,Php,Git,Bash,Symfony,Openshift,我有一个symfony 2项目,我正试图在OpenShift online上启动。我根据需要创建了这个目录,并在本地运行symfony,效果非常好 但是,当我部署到OpenShift应用程序时,部署和部署后操作挂钩不会运行。我甚至没有在git push上看到文档中提到的输出 我还应该注意,我可以使用ssh连接到应用程序中,并创建一个test.sh,它将运行完全相同的代码并按预期工作 任何帮助都将不胜感激,我已经向支持人员提交了多张票,但运气不佳 以下是指向目录结构屏幕截图的链接: 下面是我的p

我有一个symfony 2项目,我正试图在OpenShift online上启动。我根据需要创建了这个目录,并在本地运行symfony,效果非常好

但是,当我部署到OpenShift应用程序时,部署和部署后操作挂钩不会运行。我甚至没有在git push上看到文档中提到的输出

我还应该注意,我可以使用ssh连接到应用程序中,并创建一个test.sh,它将运行完全相同的代码并按预期工作

任何帮助都将不胜感激,我已经向支持人员提交了多张票,但运气不佳

以下是指向目录结构屏幕截图的链接:

下面是我的post_部署挂钩:

#!/bin/bash
# This deploy hook gets executed after dependencies are resolved and the
# build hook has been run but before the application has been started back
# up again.  This script gets executed directly, so it could be python, php,
# ruby, etc.

# set the location for composer home to the data dir
export COMPOSER_HOME="$OPENSHIFT_DATA_DIR/.composer"

# check if composer exists in data dir
if [ ! -f "$OPENSHIFT_DATA_DIR/composer.phar" ]; then
    curl -s https://getcomposer.org/installer | /opt/rh/php54/root/usr/bin/php -- --install-dir=$OPENSHIFT_DATA_DIR
else
    /opt/rh/php54/root/usr/bin/php $OPENSHIFT_DATA_DIR/composer.phar self-update
fi

# check and set the symlink for vendor dir
if [ ! -d "$OPENSHIFT_DATA_DIR/vendor" ]; then
    echo !!! vendor directory does NOT exist - creating symlink...
    mkdir $OPENSHIFT_DATA_DIR/vendor
    echo !!! created vendor directory - creating symlink...
    ln -s $OPENSHIFT_DATA_DIR/vendor $OPENSHIFT_REPO_DIR/vendor
    echo !!! created symlink - setting permissions on directory...
    chmod -R 0777 $OPENSHIFT_DATA_DIR/vendor
    echo !!! permissions have been set on vendor directory!
else
    echo !!! vendor directory already exists - skipping symlink...
fi

// shortened for brevity, but the rest is the same.

# use composer install
( unset GIT_DIR ; cd $OPENSHIFT_REPO_DIR ; /opt/rh/php54/root/usr/bin/php $OPENSHIFT_DATA_DIR/composer.phar install )

确保您正在使action_hooks可执行(chmod+x),然后将该信息添加到git,并执行git推送。在Windows上,您需要运行:

git update-index --chmod=+x .openshift/action_hooks/*
(这不是答案,但我没有足够的声誉对你的帖子发表评论)
为了改进钩子,您应该检查
$OPENSHIFT\u REPO\u DIR/供应商是否存在。如果
$OPENSHIFT\u DATA\u DIR/vendor
DIR已经存在,则不会创建符号链接

#检查供应商目录
如果[!-d“$OPENSHIFT_DATA_DIR/vendor”];然后
mkdir$OPENSHIFT\u DATA\u DIR/供应商
chmod-R 0777$OPENSHIFT\u数据\u目录/供应商
fi
#检查符号链接
如果[!-d“$OPENSHIFT\u REPO\u DIR/供应商”];然后
ln-s$OPENSHIFT\数据\目录/供应商$OPENSHIFT\回购\目录/供应商
fi