2012-05-16 34 views
9

Tôi đang sử dụng Heroku chạy một ứng dụng PHP, tôi cần thiết lập các nhân viên nền tảng nói chuyện với các API bên ngoài và ghi vào DB của tôi, Heroku có rất nhiều thông tin về việc thiết lập nhân viên cho Ruby chứ không phải cho PHP.Nhân viên nền PHP Heroku?

Điều này có thể thực hiện được dễ dàng trên Heroku bằng PHP không?

Tôi chưa bao giờ giải quyết tung ra quá trình nền và tôi dường như không thể tìm thấy bất kỳ tài liệu chi tiết nó ...

Trả lời

14

Thêm các biến môi trường sau đây:

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

Sau đó, bạn chỉ có thể thêm công nhân đến Procfile của bạn.

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

Không có niềm vui, tôi thấy rằng quy trình công nhân bị treo khi khởi động, tại sao cấu hình var cần thiết? Nhìn vào các file proc ruby ​​tôi thấy các ví dụ như "worker: bundle exec stalk worker.php", nó có nên theo một mẫu như thế không? – cal

+1

@cal Nếu bạn chạy 'heroku run bash', và thử chạy' ~/php/bin/php -i', bạn sẽ thấy tại sao biến LD_LIBRARY_PATH env là cần thiết: '/ app/php/bin/php: trong khi tải thư viện chia sẻ: libmcrypt.so.4: không thể mở tập tin đối tượng được chia sẻ: Không có tập tin hoặc thư mục nào đó –

+1

BTW, tôi có cùng vấn đề với bạn @cal, nhưng tôi khá chắc chắn câu trả lời ở trên là chính xác. Tôi đã thử nó với một kịch bản test.php đơn giản là ' ', và nó lặp lại' 123' rồi thoát. Không chắc tại sao kịch bản lệnh PHP của tôi chạy tốt trên máy chủ của riêng tôi sẽ chỉ thoát với mã trạng thái 0 trên máy chủ Heroku. –

Các vấn đề liên quan