За замовчуванням PHP функції imageantialias () і imagerotate () відключені в модулі gd.so для Debian і його похідних. Зроблено це задля забезпечення стабільності і безпеки. Задумка може і благая, але раз ми шукаємо рішення цієї проблеми, значить воно того варто. Наприклад Drupal не захоче працювати з урізаним модулем.
По суті досить пересобрать PHP і встановити новий повноцінний пакет php5-gd. Зробити це зовсім не складно, хоча опис буде досить докладний. Збирати будемо з початкових кодів, що само по собі цікаво =)
Далі всі дії проводяться в рутовий терміналі або в звичайному через команду sudo. Для наочності буду писати без sudo.
Встановлюємо необ'ходімий для будь-якої збірки пакет і до нього на додачу інші:
Переходимо в папку збірки початкових кодів і отримуємо потрібні нам пакети:
По суті нам потрібно зібрати установчі пакети з PHP5, але візьмемо ми звідти тільки модуль gd.so для заміни.
Далі встановлюємо пакети потрібні для збірки php5-gd, їх чимало, але відступати вже пізно:
Тепер потрібно змінити опцію збірки PHP5, яка нас так не влаштовує. Переходимо в папку з вихідними кодами php5 (в залежності від версії директорія може називатися інакше), відкриваємо на редагування файл з опціями збірки:
Знаходимо (Ctrl + W) рядок:
І замінюємо її на нижчеописане, прибравши «, / usr»:
Далі запускаємо збірку пакета і йдемо пити чай з булочками:
Процес завершується успішно і нам потрібно перевстановити розширення або замінити старий gd.so на новий (старий про всяк випадок бекап). Перевстановити пакет можна так:
Ім'я пакета може відрізнятися в заисимости від версії системи і самих початкових кодів.
У другому варіанті, щоб швидко знайти потрібний нам файл, можна скористатися нехитрим але вкрай корисним способом:
Ну і нарешті перезавантажуємо сервер:
Перевіряємо phpinfo () і переконуємося, що модуль GD приблизно такий - bundled (2.0.34 compatible)
Файли з каталогу /usr/src/php5-5.2.6.dfsg.1/ можна видалити, а можна і залишити, на всякий випадок.