在OpenShift上部署yii应用程序时出现CEException错误?

在OpenShift上部署yii应用程序时出现CEException错误?,yii,file-permissions,openshift,cloud9-ide,Yii,File Permissions,Openshift,Cloud9 Ide,朋友们,我试图将我的yii生产应用程序从Cloud9IDE部署到OpenShift,但这样做时,我收到了这个错误消息 CException 应用程序运行时路径“/var/lib/openshift/51dd48794382ecfd530001e8/app root/runtime/repo/php/protected/runtime”无效。请确保它是可由Web服务器进程写入的目录 即使我在Cloud9 IDE上将文件夹权限更改为775(chmod-R 775 directory),并再次部署

朋友们,我试图将我的yii生产应用程序从Cloud9IDE部署到OpenShift,但这样做时,我收到了这个错误消息

 CException
应用程序运行时路径“/var/lib/openshift/51dd48794382ecfd530001e8/app root/runtime/repo/php/protected/runtime”无效。请确保它是可由Web服务器进程写入的目录


即使我在Cloud9 IDE上将文件夹权限更改为775(
chmod-R 775 directory
),并再次部署,但我还是遇到了相同的错误。

这可能是由于文件夹的所有权。 检查web服务器用户组,目录是否可写,以及更改平台时对web服务器的影响


希望我的建议有用。

这可能是由于文件夹的所有权。 检查web服务器用户组,目录是否可写,以及更改平台时对web服务器的影响


希望我的建议有用。

这是一个老问题,但我最近碰到了同样的问题

提取“yii”包时,有几个文件夹是空的,“framework/protected/runtime”就是其中之一

要部署到OpenShift,您需要将yii包提交到git,并将提交推送到操作系统。但是,git不会提交空文件夹,因此它们不会在部署中创建。您需要在这些文件夹中创建一些文件,并在提交/推送之前将这些文件添加到git repo中。通常的过程是向这些文件夹中添加一个“.gitkeep”文件(它只是一个空的虚拟文件,所以git可以看到这些文件夹)


这将修复这个特定的错误。

这是一个老问题,但我最近遇到了同样的问题

提取“yii”包时,有几个文件夹是空的,“framework/protected/runtime”就是其中之一

要部署到OpenShift,您需要将yii包提交到git,并将提交推送到操作系统。但是,git不会提交空文件夹,因此它们不会在部署中创建。您需要在这些文件夹中创建一些文件,并在提交/推送之前将这些文件添加到git repo中。通常的过程是向这些文件夹中添加一个“.gitkeep”文件(它只是一个空的虚拟文件,所以git可以看到这些文件夹)


这将修复此特定错误。

对于Yii应用程序,资产和受保护/运行时文件夹是特殊的。首先,这两个文件夹都必须存在并可由服务器(httpd)进程写入。其次,这两个文件夹包含临时文件,git应该忽略它们。如果这些临时文件被提交,在普通服务器(而不是Openshift服务器)中的部署将导致git合并冲突。因此,我将这两个文件夹放在.gitignore中:

php/assets/
php/protected/runtime/
在我的部署中,我添加了一个由openshift调用的shell脚本,在$openshift_DATA_DIR下创建两个文件夹,并在应用程序的文件夹中创建指向这两个文件夹的符号链接。这是shell脚本(.openshift/action\u hooks/deploy)的内容,我从中改编:


shell脚本确保在openshift部署后在每个gear上创建临时文件夹。默认情况下,新目录的右边是u+rwx,它可以通过httpd进程写入,因为gear以gear用户(而不是apache或其他什么)的身份运行httpd。

对于Yii应用程序,资产和受保护/运行时文件夹是特殊的。首先,这两个文件夹都必须存在并可由服务器(httpd)进程写入。其次,这两个文件夹包含临时文件,git应该忽略它们。如果这些临时文件被提交,在普通服务器(而不是Openshift服务器)中的部署将导致git合并冲突。因此,我将这两个文件夹放在.gitignore中:

php/assets/
php/protected/runtime/
在我的部署中,我添加了一个由openshift调用的shell脚本,在$openshift_DATA_DIR下创建两个文件夹,并在应用程序的文件夹中创建指向这两个文件夹的符号链接。这是shell脚本(.openshift/action\u hooks/deploy)的内容,我从中改编:

shell脚本确保在openshift部署后在每个gear上创建临时文件夹。默认情况下,新目录的右边是u+rwx,它可以通过httpd进程写入,因为gear作为gear用户(而不是apache或其他什么)运行httpd