Встановлення кількох версій PHP на Apache (Ubuntu), IT Tip - Tricks

Встановлення кількох версій PHP на Apache (Ubuntu)

З виходом гілки PHP 5.3 при розробці проектів ми стали орієнтуватися на цю версію, до того ж, клієнти почали активно оновлювати свої хостинги. Однак більшість проектів було написано під PHP 5.2.x і адаптувати їх під нову версію мови не завжди є можливим. У зв'язку з цим виникла потреба встановити на комп'ютері розробника як мінімум дві версіїPHP (5.2.x та 5.3.x), щоб вони працювали на одному сервері Apache.

Одним із популярних способів вирішення цієї проблеми є підключення однієї версії PHP до апачу як FastCGI додаток, а інший – звичайним способом – як модуль Apache.

Один мій друг написав мануал з налаштування сервера таким механізмом. Він наводив інсталяцію PHP з Apache на серверDebian. Ці кроки легко адаптувати на будь-яку гілку Unix. Я робив налаштуванняUbuntu 11.04. Отже, керуючись інструкцією з блогу, робимо налаштування.

Спочатку потрібно визначитися, яку версію PHP ставити як модуль, а яку підключати як FastCGI. У репозиторії Ubuntu 11.04 за промовчанням йде PHP версії 5.3.5. Таким чином, цю версію можна встановити стандартним способом як модуль apache.

Тепер встановимо PHP 5.2.x, а саме зберемо її з вихідних джерел. Завантажити її можна звідси: http://us3.php.net/get/php-5.2.17.tar.bz2/from/a/mirror

Остання версія гілки 5.2 на даний момент - 5.2.17. В результаті вийде файл PHP-5.2.17.tar.gz. Розпакуємо його командою:

Встановимо необхідні для компіляції бібліотеки:

Підготуємо PHP до збирання:

Тут хочу зазначити, що Ubuntu посварилася на відсутність двох бібліотек libpng.so та lingjpeg.so. Насправді вони встановлені, але самі файли бібліотекPNG та JPEG включають номер версії. У моєму випадку це були:

libpng12.so

libjpeg.so.62

Для усунення помилки достатньо створити символічні посилання з потрібним ім'ям:

Тепер скомпілюємо та встановимо PHP:

Якщо apache не встановлений модуль для роботи з FastCGI встановимо його:

Для зручності активуємо модуль apache mod_actions:

Тепер створимо SH-скрипт, який запускатиме CGI додаток PHP для обробки скриптів:

Запишемо туди, такі рядки:

Дамо цьому скрипту права на запис:

Створимо конфігураційний файл для apache з налаштуваннями обробника PHP скриптів, потрібно сказати серверу, що скрипти повинні оброблятися CGI-додаток PHP 5.2:

Пропишемо там таке:

Ось і все, тепер достатньо в налаштуваннях віртуального хоста додати імпорт файлу php52.conf і для цього хоста буде працювати PHP 5.2: