Повноцінний модуль php5-gd для debian і ubuntu, записки щоденної роботи

За замовчуванням 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/ можна видалити, а можна і залишити, на всякий випадок.