Установка необходимой версии PHP из исходных файлов на сервер под управлением CentOS
Порой необходимо поставить версию PHP “морально устаревшую”. К сожалению попадаются такие проекты, которые не хотят переписывать сайты и готовы существовать на старом ПО. Статья именно про такой случай.
(В примере рассматривается вариант с версией 5.3.28, но процесс сборки ничем не отличается и для других версий, за редким исключением)
Скачиваем необходимую версию PHP с сайта разработчика
1 2 3
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
Производим сборку
1
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
1 2 3 4 5 6 7 8 9
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
1
yum install httpd-devel
Ошибка #2
1 2 3
checking libxml2 install dir... /usr checking for xml2-config path... configure: error: xml2-config not found. Please check your libxml2 installation.
Решение #2
1
yum install libxml2 libxml2-devel
Ошибка #3
1 2
checking for pkg-config... /usr/bin/pkg-config configure: error: Cannot find OpenSSL's <evp.h>
Решение #3
1
yum install openssl openssl-devel
Ошибка #4
1 2 3
checking for BZip2 support... yes checking for BZip2 in default path... not found configure: error: Please reinstall the BZip2 distribution
Решение #4
1
yum install bzip2 bzip2-devel
Ошибка #5
1 2 3
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
1
yum install curl curl-devel
Ошибка #6
1
configure: error: jpeglib.h not found.
Решение #6
1
yum install libjpeg libjpeg-devel
Ошибка #7
1
configure: error: png.h not found.
Решение #7
1
yum install libpng libpng-devel
Ошибка #8
1
configure: error: libXpm.(a|so) not found.
Решение #8
1
yum install libXpm-devel
Ошибка #9
1
configure: error: freetype.h not found.
Решение #9
1
yum install freetype-devel
Ошибка #10
1
configure: error: Your t1lib distribution is not installed correctly. Please reinstall it.
Решение #10
1
yum install t1lib-devel
Ошибка #11
1 2
checking for GNU MP support... yes configure: error: Unable to locate gmp.h
Решение #11
1
yum install gmp-devel
Ошибка #12
1 2
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
1
yum install libicu-devel
Ошибка #13
1
configure: error: mcrypt.h not found. Please reinstall libmcrypt.
Решение #13
1
yum install libmcrypt libmcrypt-devel
Ошибка #14
1
configure: error: Cannot find pspell
Решение #14
1
yum install aspell-devel
Ошибка #15
1
configure: error: Please reinstall readline - I cannot find readline.h
Решение #15
1
yum install readline-devel
Ошибка #16
1 2
checking for TIDY support... yes configure: error: Cannot find libtidy
Решение #16
1
yum install libtidy libtidy-devel
Ошибка #17
1
configure: error: xslt-config not found. Please reinstall the libxslt >= 1.1.0 distribution