learn

نصب Imagick در اوبونتو؛ اتصال PHP به ImageMagick و آزمون تصویر

راهنمای نصب و آزمون واقعی Imagick، با تفکیک محیط خط فرمان و وب و حفظ محدودیت‌های پردازش تصویر.

نصب Imagick در اوبونتو به نسخهٔ PHP و محیط اجرای برنامه وابسته است. ImageMagick ابزار و کتابخانهٔ پردازش تصویر است و Imagick رابط PHP آن محسوب می‌شود. نصب یکی الزاماً فعال شدن دیگری در سایت را ثابت نمی‌کند. ابتدا مشخص کنید برنامه با کدام PHP و کدام روش، مانند PHP-FPM، اجرا می‌شود.

انتخاب بسته برای نصب Imagick در اوبونتو

افزونهٔ imagick جزو افزونه‌های همراه هستهٔ PHP نیست. اوبونتو بستهٔ آماده ارائه می‌کند؛ در نصب دارای چند PHP باید بستهٔ همان نسخه را انتخاب کنید.

php -v
php --ini
sudo apt update
apt-cache policy imagemagick php-imagick

اگر PHP پیش‌فرض توزیع همان نسخهٔ مورد استفادهٔ شماست:

sudo apt install imagemagick php-imagick

برای نمونه، بستهٔ Ubuntu 24.04 از طریق مخزن توزیع عرضه می‌شود. در محیط دارای PHP نسخه‌ای، ابتدا وجود بسته‌ای مانند php8.3-imagick را با apt-cache بررسی کنید و فقط بستهٔ هماهنگ را نصب کنید. فایل باینری افزونهٔ یک PHP را دستی به پوشهٔ نسخهٔ دیگر کپی نکنید.

بارگذاری افزونه در محیط درست

نصب بسته معمولاً فایل تنظیم فعال‌سازی را ایجاد می‌کند. اگر افزونه بارگذاری نشد، مسیر فایل‌های ini مربوط به همان نسخه و SAPI را بررسی کنید؛ فعال بودن در CLI به معنی فعال بودن در FPM نیست.

برای برنامه‌ای که واقعاً با php8.3-fpm اجرا می‌شود، نمونهٔ راه‌اندازی مجدد این است:

sudo systemctl restart php8.3-fpm
sudo systemctl status php8.3-fpm --no-pager

نام سرویس را با نسخهٔ واقعی جایگزین کنید. در Apache با mod_php، راه‌اندازی مجدد apache2 لازم می‌شود؛ در Nginx همراه FPM، صرفاً restart کردن Nginx افزونهٔ PHP را بارگذاری نمی‌کند. تغییر ini بدون توجه به محیط مؤثر ممکن است بی‌نتیجه باشد.

آزمون خط فرمان و تولید یک تصویر

php --ri imagick

برای آزمون عملی، فایل تازهٔ imagick-check.php را در پوشهٔ خصوصی بسازید. این نمونه از newImage و writeImage برای تولید PNG کوچک استفاده می‌کند:

<?php
$image = new Imagick();
$image->newImage(120, 80, new ImagickPixel('white'));
$image->setImageFormat('png');
$image->writeImage(__DIR__ . '/imagick-check.png');
echo "PNG created
";

در همان پوشه و با PHP هدف اجرا کنید:

php imagick-check.php

پیش از اجرا مطمئن شوید فایل خروجی با همین نام دادهٔ مهمی ندارد. پس از اجرا، وجود و نمایش صحیح تصویر را بررسی کنید. این آزمون هم بارگذاری کلاس و هم امکان نوشتن خروجی در آن مسیر را می‌سنجد.

تأیید در سایت و رفع خطا

برای وب، وضعیت افزونه را در ابزار سلامت برنامه یا آزمون محدود مدیریتی بررسی کنید. آزمون CLI جای این مرحله را نمی‌گیرد. صفحهٔ عمومی phpinfo لازم نیست؛ اطلاعات محیط را در دسترس همه قرار ندهید.

خطای Class Imagick not found معمولاً به بارگذاری افزونه یا نسخهٔ اشتباه مربوط است. نبود پشتیبانی یک فرمت می‌تواند به کتابخانه و وابستگی‌های ImageMagick مربوط باشد. خطای not authorized یا policy نیز با نصب مجدد همیشه رفع نمی‌شود.

سیاست امنیتی ImageMagick محدودیت فرمت، حافظه و منابع را کنترل می‌کند. برای رفع یک خطای PDF یا فایل ورودی، تمام محدودیت‌ها را حذف نکنید؛ نیاز واقعی، ابزار وابسته و محدودهٔ دسترسی را بررسی کنید. آزمون PNG موفق به معنی اجازهٔ پردازش همهٔ فرمت‌ها نیست.

مطالعهٔ مرتبط

بازبینی فنی: ۱۳ آبان ۱۴۰۵. تاریخ انتشار اولیه و نشانی قبلی حفظ شده‌اند.

مطالب مرتبط

ارسال نظر

فهرست مطالب