• Где найти и как установить PHP 5.4 на Ubuntu 16.04?

    romeOz
    @romeOz
    Конечно, можно заморочиться и собрать PHP из исходников. Кроме того, вам придётся собрать и Apache из исходников с добавлением модуля PHP (libapache2-mod-php).
    К сожалению или к счастью, у большинства разработчиков навык сборки чего-либо из исходников безвозмездно утрачен. Разве что расширения для того же PHP (pecl) иногда приходится собирать.
    Как вариант, предлагаю воспользоваться такой замечательной штукой, как контейнеризация, а именно Docker-ом. На текущий момент времени, это наиболее изящное и правильное решение. В приведённый ниже пример добавил линкование с СУБД MySQL

    docker network create mysql_net
    
    docker run --name app --net mysql_net -d -p 8080:80 \
      -v /host/to/path/app:/var/www/app/ \
      -v /host/to/path/config_apache:/etc/apache2/sites-enabled/ \
      romeoz/docker-apache-php:5.4

    , где
    • /host/to/path/app - путь к директории с вашим приложением (от корня), в данном случае, CMS Битрикс
    • /host/to/path/config_apache - путь к директории с вашим apache-конфигом. Можете посмотреть, как выглядит базовый файл конфигурации

    Далее, поднимем контейнер с СУБД:

    docker run --name db --net mysql_net -d \
      -v /host/to/path/data:/var/lib/mysql \
       romeoz/docker-mysql:5.5

    , где /host/to/path/data - директория с вашими данным (БД).

    В CMS Битрикс в качестве хоста в настройках БД, необходимо указать db, т.к. контейнер СУБД имеет такое имя - --name db.
    Ваше приложение будет доступно по адресу http://localhost:8080. Для красоты можете задать в /etc/hosts свой домен, к примеру, 127.0.0.1:8080 myapp.
    Если вы привыкли править БД с помощью web-клиента phpmyadmin, то вот здесь есть инструкция, как поднять официальный контейнер и для него. На вашем месте я бы воспользовался иным другим клиентом - свободным или не свободным. К примеру, во всех продуктах от JetBrains, в том числе, и в IDE PHPStorm, встроен отличный инструмент DataGrip, ранее известный, как 0xDBE.

    Естественно, есть необходимость в этом немного разобраться, но, поверьте, оно того стоит. За этим подходом будущее. Плюс не придётся засирать свою хост-систему всяким мусором, ведь контейнер всегда можно убить, а образ породивший его удалить.
    Ответ написан
    5 комментариев