2013-07-10 1 views
1

친구, 정말, 난이 오류 메시지가 있나 OpenShift있는 동안에 cloud9의 IDE에서 내 YII 생산 응용 프로그램,OpenShift에서 yii 응용 프로그램을 배포하는 동안 CException 오류가 발생합니까?

CException 

응용 프로그램 실행 경로 "는/var/lib 디렉토리/openshift/51dd48794382ecfd530001e8/응용 프로그램을 배포하는 시도 -root/runtime/repo/php/protected/runtime "은 유효하지 않습니다. 웹 서버 프로세스에서 쓰기 가능한 디렉토리인지 확인하십시오.

심지어 내가 Cloud9 IDE에 775 (는 chmod -R 775 디렉토리)에 폴더 권한을 변경하고 다시 배치하지만, 앞으로 같은 오류는, 그것은

답변

0

수 있습니다 감사합니다

을 저를 도와주세요 폴더에 부여 된 소유권 때문입니다. 웹 서버 사용자 그룹을 확인하십시오. 해당 디렉토리가 쓰기 가능한지 여부와 플랫폼을 변경할 때 웹 서버에 어떤 영향을 미칩니 까?

희망이 있으면 도움이 될 것입니다.

1

낡은 질문이지만, 최근에 같은 문제가 발생했습니다.

"yii"패키지의 압축을 풀었을 때 여러 폴더가 비어 있었으며 "framework/protected/runtime"중 하나였습니다.

OpenShift에 배포하려면 git에 yii 패키지를 커밋하고 커밋을 OS에 적용해야합니다. 그러나 git은 빈 폴더를 커밋하지 않으므로 배포시 만들어지지 않습니다. 그 폴더 안에 파일을 만들고 그 파일을 커밋/푸시하기 전에 git repo에 추가해야합니다. 일반적인 절차는 ".gitkeep"파일을 해당 폴더에 추가하는 것입니다 (빈 더미 파일이므로 자식 폴더가 표시됩니다).

이렇게하면이 특정 오류가 해결됩니다.

감사합니다.

0

Yii 응용 프로그램의 경우 자산 및 보호 된/런타임 폴더는 특별합니다. 첫째, 두 폴더는 서버 (httpd) 프로세스에 의해 존재하고 쓰기 가능해야합니다. 둘째,이 두 폴더는 임시 파일을 포함하므로 git에서 무시해야합니다. 이러한 임시 파일이 커밋 된 경우 일반 서버 (Openshift 서버가 아님)에 배포하면 병합 충돌이 발생할 수 있습니다. 나는 $ OPENSHIFT_DATA_DIR에서 두 폴더를 생성하고 응용 프로그램의 폴더 둘 다에 대한 기호 링크를 작성, 쉘 스크립트가 openshift에 의해 호출에 추가 내 배포에서

php/assets/ 
php/protected/runtime/ 

: 그래서 .gitignore이 두 폴더를 넣어 .

#!/bin/bash 
if [ ! -d $OPENSHIFT_DATA_DIR/runtime ]; then 
mkdir $OPENSHIFT_DATA_DIR/runtime 
fi 
# remove symlink if already exists, fix problem when with gears > 1 and nodes > 1 
rm $OPENSHIFT_REPO_DIR/php/protected/runtime 
ln -sf $OPENSHIFT_DATA_DIR/runtime $OPENSHIFT_REPO_DIR/php/protected/runtime 

if [ ! -d $OPENSHIFT_DATA_DIR/assets ]; then 
mkdir $OPENSHIFT_DATA_DIR/assets 
fi 

rm $OPENSHIFT_REPO_DIR/php/assets 
ln -sf $OPENSHIFT_DATA_DIR/assets $OPENSHIFT_REPO_DIR/php/assets 

쉘 스크립트가 openshift 배포 후 각 기어에서 만든 임시 폴더를 보장 : 이것은 내가 here에서 적응 쉘 스크립트 (.openshift/action_hooks/배포)의 내용이다. 기본적으로 새 디렉토리의 권한은 u + rwx이며, 기어가 아파치 또는 다른 것이 아닌 장비 사용자로서 httpd를 실행하기 때문에 httpd 프로세스가 쓰기 가능해진다.

관련 문제