Случается такое когда после установки, или чаще после переноса на новое оборудование сайта на движке MeidaWiki при загрузке изображений появляется вот такая досадная ошибка:
Ошибка создания миниатюры: /bin/bash: /usr/bin/convert: No such file or directory
Вот тогда уж действительно приходится покопаться в конфигурации движка и окружения, что бы понять суть проблемы. На самом же деле всё достаточно просто. Видно, что пользователь от которого работает сервер Apache/php пытается через bash выполнить такую команду:
/usr/bin/convert
Но в процессе выполнения получает ошибку:
No such file or directory
Я долго думал для чего надо вызывать этот файл. Оказалось всё проще простого. Это команда для программы imagemagick. Как оказалось она у меня не стояла на сервере и естественно я принялся её ставить. Думая, что нужно ставить как модуль PHP приписал следующее:
$ apt-get install php5-imagick // в случае php4 - php4-imagick
Как позже оказалось, надо ставить именно отдельную версию imagemagick для Linux Ubuntu в моём случае. Далее вызываю команду для установки самого пакета ImageMagick:
$ apt-get install imagemagick
Всё прошло успешно и после установки программы выдаёт данные по каким адресам обращаться для различных действий. Оказалось, что для конвертирования надо выполнять не /usr/bin/convert
а /usr/bin/convert.im6
. Понятное дело, что в конфигурационном файле MediaWiki записана старая команда и её надо изменить. Открываем файл LocalSetting.php и находим подобные строки (если не хватает — добавьте):
## To enable image uploads, make sure the 'images' directory ## is writable, then set this to true: $wgEnableUploads = true; $wgUseImageResize = true; $wgUseImageMagick = true; $wgImageMagickConvertCommand = "/usr/bin/convert"; #$wgImageMagickConvertCommand = "C:/Program Files/ImageMagick-6.3.2-Q16/convert";
В зависимости от ОС пути могут быть разными. В моём случае для Ubuntu, мне надо раскомментировать строку $wgImageMagickConvertCommand = "/usr/bin/convert";
и изменить путь до convert c "/usr/bin/convert"
на "/usr/bin/convert.im6"
.
Вот и всё! Закачиваем новый файл конфигураций на рабочий сервер и перезапускаем его:
$ /etc/init.d/apache2 restart
Теперь все изображения в MediaWiki должны работать.
Естественно в каждом конкретном случаи пути надо указывать свои. Суть лишь в том, что в настройках MediaWiki движка надо правильно прописать этот путь к файлу convert. В Windows системах он так же может называться convert.exe. В общем главное, что бы у вас на сервере была установлена библиотека ImageMagick (убедиться в этом можно к примеру через php функцию phpinfo()
, которая выводит всю сопутствующую информацию о PHP и web сервере в целом) и знать точный путь до файла convert. В Windows серверах к примеру настройка переменной wgImageMagickConvertCommand
может выглядеть так:
$wgImageMagickConvertCommand = "C:/Program Files/ImageMagick-6.3.2-Q16/convert.exe";
В общем думаю у вас всё получится.