Установка двух версий PHP на сервер CentOS.
На сервере CentOS7 по умолчанию после выполнения команды yum install php
будет установлен php версии 5.4
# php -v
PHP 5.4.16 (cli) (built: Nov 6 2016 00:29:02)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
Установим еще одну версию php. Версию 7.
Устанавливаем дополнительные пакеты:
# yum install gcc make
# yum install libxml2-devel
# yum install mysql-devel httpd-devel gd-devel libmcrypt-devel mcrypt bison-devel mhash-devel libcurl-devel
# yum install bison
Скачиваем исходный код php7 с GIT
# cd /usr/src/
# git clone https://github.com/php/php-src.git
# cd php-src/
Выполняем сборку конфигуратора:
# ./buildconf --force
При этом может быть ошибка:
buildconf: checking installation...
buildconf: autoconf version 2.63 found.
You need autoconf version 2.64 or newer installed
to build PHP from Git.
make: *** [buildmk.stamp] Ошибка 1
Ошибка говорит о том, что нужно обновить autoconf
# wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz
# tar xvfvz autoconf-2.69.tar.gz
# cd autoconf-2.69
# ./configure
# make
# make install
Новая версия установилась в /usr/local/bin/autoconf, тогда как текущая версия находиться в директории /usr/bin/
# ./buildconf --force
Нормальный вывод:
buildconf: checking installation...
buildconf: autoconf version 2.69 (ok)
rebuilding aclocal.m4
rebuilding configure
rebuilding main/php_config.h.in
Или:
# ./buildconf --force
Forcing buildconf
Removing configure caches
Проводим конфигурирование:
# ./configure --bindir=/usr/local/bin/ --with-config-file-path=/usr/local/etc/ --with-curl --with-mhash --with-mysqli --with-gd --with-pdo-mysql --enable-mbstring --with-openssl --with-pcre-regex --enable-soap --with-apxs2 --with-zlib
Здесь директория для бинарника - /usr/local/bin/
Директория для поиска конфигурационных файлов (php.ini) - /usr/local/etc/
Компилируем и устанавливаем:
# make
# make test
На следующий вопрос с предложением отправить отчет об ошибках отвечаем «n»
You may have found a problem in PHP.
This report can be automatically sent to the PHP QA team at
http://qa.php.net/reports and http://news.php.net/php.qa.reports
This gives us a better understanding of PHP's behavior.
If you don't want to send the report immediately you can choose
option "s" to save it. You can then email it to qa-reports@lists.php.net later.
Do you want to send this report now? [Yns]: n
# make install
Подготавливаем файл php.ini
# cp /usr/src/php-src/php.ini-production /usr/local/etc/php.ini
Теперь можно использовать php7 запуская его с указанием полного пути:
# /usr/local/bin/php -v
PHP 7.3.0-dev (cli) (built: Sep 22 2017 12:52:17) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.3.0-dev, Copyright (c) 1998-2017 Zend Technologies