Несколько версий PHP могут работать на одном сервере , но лишь одна из них может работать как модуль apache. Я буду ставить версию PHP 5.3 как модуль apache. Вторая будет PHP 5.4 как cgi, третью версию PHP 5.5 поставлю для своих тестов , она будет тоже работать как CGI.
Во-первых лучше обновить порты чтоб поставить последние версии:

1
portsnap fetch update

Приступим к установке php 5.3 , посмотрим где находится интересующая нас версия :

1
whereis php53

php53: /usr/ports/lang/php53

Переходим:

1
2
cd /usr/ports/lang/php53
make config

Выбираем:

[*] APACHE Build Apache module

остальное по своему усмотрению

1
make install clean

После установки сервер нам выдаст сообщение какие настройки нужно внести в apache чтоб включить php.

Незабываем переименовать файл
php.ini-production
(я его просто копирую)

1
cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini

Далее ставим
php-extensions
посмотрим где они находятся:

1
whereis php53-extensions

php53-extensions: /usr/ports/lang/php53-extensions

Приступим к установке:

1
2
cd /usr/ports/lang/php53-extensions
make config

Выбираем все что нам нужно и устанавливаем :

1
make install clean

Мы полностью установили версию PHP 5.3 как модуль apache.

Приступим к установке второй версии PHP.
Итак,будем ставить версию PHP 5.4.
Сейчас в портах эта версия считается основной по этому если мы введем команду :
cd /usr/ports/lang/php54
/usr/ports/lang/php54: Нет такого файла или каталога.

Основная версия меняется со временем но каталог ее остается неизменным это :

/usr/ports/lang/php5

Начнем:

1
2
cd /usr/ports/lang/php5
make config

Выбираем все что нам нужно и устанавливаем , только ставить будем не в директорию по умолчанию , а в
/usr/local/php54

1
make PREFIX=/usr/local/php54 PHPBASE=/usr/local/php54 install

PREFIX — прописываем куда собирать.
PHPBASE — базовая директория.

В моем случае выскакивала ошибка при установке.
Как с версией PHP 5.4 , так и с PHP 5.5
Но все лечилось
reinstall
т.е.

1
make PREFIX=/usr/local/php54 PHPBASE=/usr/local/php54 reinstall

После установки php, нужно установить extensions (расширения):

1
2
cd /usr/ports/lang/php5-extensions
make config

Выбираем расширения которые нам нужны и начинаем установку :

1
make PREFIX=/usr/local/php54 PHPBASE=/usr/local/php54 install

Незабываем переименовать файл
php.ini-production
(я его просто копирую)

1
cp /usr/local/php54/etc/php.ini-production /usr/local/php54/etc/php.ini

После установки расширений все готово , осталось только проверить :

1
/usr/local/php54/bin/php-cgi -v

покажет версию php

1
/usr/local/php54/bin/php-cgi -m

покажет установленные расширения

Версию PHP 5.5 я ставил точно так же как и PHP 5.4

Напомню что extensions для PHP 5.5 находятся в

1
/usr/ports/lang/php55-extensions

Для того чтобы работало несколько версий PHP нужно скопировать php-cgi версии PHP 5.4 в директорию /usr/local/www/apache22/cgi-bin/ копированную версию php-cgi переименуем для нашего удобства , чтоб получилось php54-cgi .
и так :

1
cp /usr/local/php54/bin/php-cgi /usr/local/www/apache22/cgi-bin/php54-cgi

Далее с помощью файла
.htaccess
который находится в корне нашего сайта или если его нет , то создаем и пропишем внутри следующие строки:

1
2
AddHandler php54 .php
Action php54 /cgi-bin/php54-cgi

Для установки и настройки PHP 5.5 все делаем как с версией PHP 5.4.

Создадим файл:
index.php
на нашем сайте чтоб проверить какую версию PHP мы используем и пропишем внутри
стандартные строки :

1
<!--?php // Показывать всю информацию, по умолчанию INFO_ALL phpinfo(); ?-->
1
<!--?php // Показывать информацию только о загруженных модулях. // phpinfo(8) выдает тот же результат. phpinfo(INFO_MODULES); ?-->

В строке Server API
увидим как работает наш PHP как модуль Apache или как CGI.

Все , настройка закончена , мы получили сервер с тремя разными версиями PHP !

Несколько версии php на одном сервере FreeBSD PHP 5.3 , PHP 5.4 , PHP 5.5

Несколько версии php на одном сервере FreeBSD PHP 5.3 , PHP 5.4 , PHP 5.5: 3 комментария

  • 11/12/2014 в 15:20
    Постоянная ссылка

    Добрый день. Установил по инструкции. CGI не работает (страница сайта пустая). В логах пусто. Куда копать?

    Ответить
    • 28/12/2014 в 23:48
      Постоянная ссылка

      Игорь здравствуйте , буквально несколько дней назад ставил на чистый сервер apache24 , php5 и Mysql .После этого добавил еще PHP55 все делал как сам писал выше .Единственный момент почему то PHP55 не захотел работать в основном домене который прописан в конфиге Apache в файле httpd.conf . Но все домены которые висят в httpd-vhosts.conf подхватывают PHP55.

      Ответить
  • 23/01/2017 в 11:33
    Постоянная ссылка

    Спасибо, добавил по вашей инструкции PHP70 на FreeBSD8. Только расширение fileinfo не захотело собираться, пришлось без него. А так все чисто гладко.

    Ответить

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *