Установка необходимой версии PHP из исходных файлов на сервер под управлением CentOS
Порой необходимо поставить версию PHP “морально устаревшую”. К сожалению попадаются такие проекты, которые не хотят переписывать сайты и готовы существовать на старом ПО. Статья именно про такой случай.
(В примере рассматривается вариант с версией 5.3.28, но процесс сборки ничем не отличается и для других версий, за редким исключением)
Скачиваем необходимую версию PHP с сайта разработчика
wget http://fr2.php.net/distributions/php-5.3.28.tar.gz tar -xvf php-5.3.28.tar.gz cd php-5.3.28
Шаг 3. Производим конфигурацию
Конфигурация производится с включением/отключением необходимых модулей, поэтому следует заранее подготовиться. Указываем опцию --with-config-file-path=/etc, чтобы файл конфигурации был в папке /etc, а не в /usr/local/lib, как идет по умолчанию в Unix системах.
Начинаем процесс конфигурации
(В случае получения ошибок в процессе конфигурации, информацию по их исправлению можно найти дальше в статье )
При успешной конфигурации вывод будет приблизительно следующим:
Generating files updating cache ./config.cache creating ./config.status creating php5.spec creating main/build-defs.h creating scripts/phpize creating scripts/man1/phpize.1 creating scripts/php-config creating scripts/man1/php-config.1 creating sapi/cli/php.1 creating main/php_config.h creating main/internal_functions.c creating main/internal_functions_cli.c +--------------------------------------------------------------------+ | License: | | This software is subject to the PHP License, available in this | | distribution in the file LICENSE. By continuing this installation | | process, you are bound by the terms of this license agreement. | | If you do not agree with the terms of this license, you must abort | | the installation process at this point. | +--------------------------------------------------------------------+
Thank you for using PHP.
Notice: Following unknown configure options were used:
--with-vpx-dir=/usr
Check './configure --help'for available options
Производим сборку
make && make install
Вывод при успешной сборке будет приблизительно следующий:
[root@localhost php-5.3.28]# php -v PHP 5.3.28 (cli) (built: May 28 2015 23:29:01) Copyright (c) 1997-2013 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2013 Zend Technologies
Распространенные ошибки при компилировании
Ошибка #1
Sorry, I cannot run apxs. Possible reasons follow:
1. Perl is not installed 2. apxs was not found. Try to pass the path using --with-apxs2=/path/to/apxs 3. Apache was not built using --enable-so (the apxs usage page is displayed)
The output of apxs follows: ./configure: line 6372: apxs: command not found configure: error: Aborting
Решение #1
yum install httpd-devel
Ошибка #2
checking libxml2 install dir... /usr checking for xml2-config path... configure: error: xml2-config not found. Please check your libxml2 installation.
Решение #2
yum install libxml2 libxml2-devel
Ошибка #3
checking for pkg-config... /usr/bin/pkg-config configure: error: Cannot find OpenSSL's <evp.h>
Решение #3
yum install openssl openssl-devel
Ошибка #4
checking for BZip2 support... yes checking for BZip2 in default path... not found configure: error: Please reinstall the BZip2 distribution
Решение #4
yum install bzip2 bzip2-devel
Ошибка #5
checking for cURL in default path... not found configure: error: Please reinstall the libcurl distribution - easy.h should be in <curl-dir>/include/curl/
Решение #5
yum install curl curl-devel
Ошибка #6
configure: error: jpeglib.h not found.
Решение #6
yum install libjpeg libjpeg-devel
Ошибка #7
configure: error: png.h not found.
Решение #7
yum install libpng libpng-devel
Ошибка #8
configure: error: libXpm.(a|so) not found.
Решение #8
yum install libXpm-devel
Ошибка #9
configure: error: freetype.h not found.
Решение #9
yum install freetype-devel
Ошибка #10
configure: error: Your t1lib distribution is not installed correctly. Please reinstall it.
Решение #10
yum install t1lib-devel
Ошибка #11
checking for GNU MP support... yes configure: error: Unable to locate gmp.h
Решение #11
yum install gmp-devel
Ошибка #12
checking for location of ICU headers and libraries... not found configure: error: Unable to detect ICU prefix or /usr/bin/icu-config failed. Please verify ICU install prefix and make sure icu-config works.
Решение #12
yum install libicu-devel
Ошибка #13
configure: error: mcrypt.h not found. Please reinstall libmcrypt.
Решение #13
yum install libmcrypt libmcrypt-devel
Ошибка #14
configure: error: Cannot find pspell
Решение #14
yum install aspell-devel
Ошибка #15
configure: error: Please reinstall readline - I cannot find readline.h
Решение #15
yum install readline-devel
Ошибка #16
checking for TIDY support... yes configure: error: Cannot find libtidy
Решение #16
yum install libtidy libtidy-devel
Ошибка #17
configure: error: xslt-config not found. Please reinstall the libxslt >= 1.1.0 distribution