FAQ

Использование библиотеки ImageMagick

Внимание! Данная статья устарела. Теперь, если вам нужен imagemagick, то он есть в нашем PHP. Если ваши скрипты не видят данную библиотеку, то площадка находится на необновленном сервере. Напишите в нашу техподдержку, чтобы они перенесли вашу площадку на обновленный сервер.

На наших серверах виртуального хостинга установлена графическая библиотека ImageMagick. Вы можете использовать её утилиты в том числе из PHP-скриптов, однако это потребует подключения собственного PHP интерпретатора в качестве CGI-приложения. Скопировать интерпретатор можно с сервера, на котором размещена ваша виртуальная площадка.

Следует знать, что на обработку CGI-приложений сервер затрачивает гораздо больше ресурсов, чем при использовании скомпилированных средств обработки. Поэтому мы рекомендуем подключать PHP-CGI интерпретатор не для всего сайта, а размещать скрипты для обработки изображений посредством ImageMagick в отдельной директории и подключать обработку скриптов CGI-интерпретатором только для неё.

Например, вы создали виртуальную площадку uXXXXX и разместили на ней домен domain.tld, при этом в качестве document root для домена определена директория /home/uXXXXX/domain.tld/www на сервере. Если создать в ней файл .htaccess и подключить в нём предварительно скомпилированный интерпретатор:

Action php-script /cgi-bin/php 
AddHandler php-script .php
то обрабатываться им будут все скрипты сайта, что может привести к возрастанию бесполезной нагрузки на сервер виртуального хостинга. Лучше создать дополнительную директорию, например, /home/uXXXXX/domain.tld/www/imagemagick, и разместить файл .htaccess в ней. В этом случае PHP-CGI будет обрабатывать только те скрипты, которые размещены в www/imagemagick, обработка остальных скриптов будет происходить посредством модульного PHP-интерпретатора.

Обратите внимание, что в конфигурационном файле интерпретатора не должно быть запрета на использование одной из функций: shell_exec(), exec(), system(), с помощью которой вы будете вызывать утилиты ImageMagick. Проверить наличие необходимой утилиты можно, подключившись к виртуальной площадке по ssh и введя команду which название_утилиты, например:

$ which convert
/usr/local/bin/convert

Убедиться в том, что после копирования и подключения PHP интерпретатора вы получили доступ к использованию утилит ImageMagick, можно с помощью тестового скрипта:

<?php
exec('convert -size 60x60 xc:red square.gif');
?>
<img width="60" height="60" src="square.gif" alt="can't create image" />