2012-07-03 27 views
6

Tôi cần thực hiện một số hành động trên hình ảnh jpeg - GD GD của Heroku không cho phép điều đó. Tôi đã đọc rằng nó có thể với Imagick, vì vậy tôi viết lại mã, đẩy nó vào heroku và ...Imagick on heroku - có thể không?

PHP Fatal error: Class 'Imagick' not found in [...]

Vì vậy, tôi đang làm điều gì đó sai (mã hoạt động cục bộ)?

$tlo = new Imagick(); 
$tlo->newImage(640, 480, new ImagickPixel('white')); 
$tlo->setImageFormat('jpg'); 

Có cách nào hoạt động với jpg trên heroku không?

+1

Như để làm sai - vâng, bạn đang cố gắng chạy mã trên môi trường khác nhau, mà không hoàn toàn nhận ra cách hoạt động của nó. 'Imagick' trái ngược với' GD' không phải là một phần của php, yêu cầu thư viện bên ngoài (ImageMagick) và phải được cài đặt bổ sung. –

+0

Đây là 'imagick.so' được biên soạn của tôi trên [github] (https://github.com/alkhoo/heroku-cedar-php-extension) với hướng dẫn. Mất 5 phút để thiết lập nó –

Trả lời

2

ImageMagick, một tiện ích dòng lệnh và lập trình thư viện, phải được cài đặt trên hệ thống cho Imagick để làm việc.

Nếu nó không làm việc cho bạn, sau đó có lẽ dynos web PHP Heroku của không có này được cài đặt theo mặc định. Bạn có hai lựa chọn: bạn có thể tìm thấy một số cách phức tạp để đóng gói ImageMagick với chính ứng dụng của bạn, ví dụ bằng cách thêm các tệp nhị phân đã biên dịch vào cây nguồn git của bạn. Hoặc, bạn có thể sửa đổi Heroku PHP buildpack, là bộ quy tắc thiết lập dyno web trước khi ứng dụng của bạn được triển khai, để cài đặt ImageMagick cùng với chính Apache và PHP. Cách tiếp cận thứ hai có nhiều khả năng hoạt động.

Một khi bạn đã sửa đổi buildpack, thay đổi ứng dụng của bạn để trỏ đến ngã ba buildpack của bạn với các dòng lệnh cụ Heroku (tùy chọn --buildpack) và triển khai lại.

+0

Cảm ơn @Andrew Gorcester, bạn có thể vui lòng cho tôi biết cách thêm imagick vào một tệp tùy chỉnh không? Cảm ơn –

+0

Xin lỗi @OscarFanelli, tôi đã không sử dụng tính năng này trong ba năm vì vậy tôi không nhớ hoặc có thông tin cập nhật. Chúc may mắn! –

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