Встановлення кількох версій 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: