2012-05-16 3 views
9

Heroku에서 PHP 응용 프로그램을 사용하고 있는데, 외부 API와 대화하고 내 DB에 글을 쓰는 백그라운드 작업자를 설치해야합니다. Heroku는 Ruby에서는 작동하지만 PHP에서는 작동하지 않습니다.PHP Heroku 배경 작업자?

이것은 Heroku에서 PHP로 쉽게 할 수 있습니까?

나는 백그라운드 프로세스를 시작 태클 적이 내가 어떤 문서가 그것을 자세히 찾을 수 없습니다 ...

답변

14

하면 다음과 같은 환경 변수를 추가

# Add this config 
$ heroku config:add LD_LIBRARY_PATH=/app/php/ext:/app/apache/lib 

다음 방금 추가 할 수 있습니다 작업자를 Procfile에 추가하십시오.

worker: cd ~/www/ && ~/php/bin/php worker.php 
+0

기동력이 없습니다. 시작시 작업자 프로세스가 충돌합니다. 왜 구성 변수가 필요한가요? 루비 proc 파일을 보면 "worker : bundle exec stalk worker.php"와 같은 예제를 볼 수 있습니다. – cal

+1

@cal'heroku run bash'를 실행하고'~/php/bin/php -i'를 실행하려고하면 LD_LIBRARY_PATH 환경 변수가 필요한 이유를 알 수 있습니다 :'/ app/php/bin/php : 공유 라이브러리를로드하는 중 오류가 발생했습니다 : libmcrypt.so.4 : 공유 객체 파일을 열 수 없습니다 : 해당 파일 또는 디렉토리가 없습니다. ' –

+1

BTW, @cal과 같은 문제가 있지만 위의 답변이 정확한지 확신합니다. 나는 test.php 스크립트를 사용하여 간단히 시도했다.''그리고'123'을 echo합니다. 내 자신의 서버에서 정상적으로 실행되는 PHP 스크립트가 Heroku 서버에서 상태 코드 0으로 끝나는 이유를 모르겠습니다. –