3 Декабря 2015 года увидела свет новая версия PHP. Первое глобальное обновление после 5й версии. Сегодня мы с вами установим новую версию php себе на сервер.
Из основных изменений в PHP 7 нас ожидает:
- В два раза выше производительность по сравнению с пхп 5.6
- Уменьшенное потребление памяти.
- Поддержка 64 бит. Теперь можем записать строки длинной больше 2^31 байт.
- Null coalescing operator (??). Проверяем переменную на существование и возвращаем значение если существует или значение по умолчанию.
- Оператор сравнения «<=>». Более подробно еще будем рассматривать его.
- В define() как константу теперь можно объявить массив.
- Анонимные классы.
Это не все изменения в новой версии, в будущем я буду применять изменения на практике.
Устанавливать новую версию PHP 7 я буду на чистой системе с debian 8.2, однако установка в большинстве случаев подойдет для всех ос на базе debian/ubuntu.
Установка PHP 7
Установку как всегда начинаем с обновления, выполняем:
apt-get update
После выполнения апдейта, выполняем:
apt-get install -y git-core autoconf bison libxml2-dev libbz2-dev libmcrypt-dev libcurl4-openssl-dev libltdl-dev libpng-dev libpspell-dev libreadline-dev
После установки нужных нам компонентов, нужно создать директории:
mkdir -p /etc/php7/conf.d mkdir -p /etc/php7/cli/conf.d mkdir /usr/local/php7
Перейдем в директорию, в которую скачаем файлы для сборки php, я выбрал /tmp
cd /tmp git clone https://github.com/php/php-src.git --depth=1
После выполнения будет создана директория php-src, переходим:
cd php-src
Вводим команду:
./buildconf
После выполнения этой команды система может ругаться ошибками, ниже я опишу решение проблем с которыми я сталкивался.
После завершения выполняем:
./configure --prefix=/usr/local/php7 --enable-bcmath --with-bz2 --enable-calendar --enable-exif --enable-dba --enable-ftp --with-gettext --with-gd --enable-mbstring --with-mcrypt --with-mhash --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-openssl --enable-pcntl --with-pspell --enable-shmop --enable-soap --enable-sockets --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-wddx --with-zlib --enable-zip --with-readline --with-curl --with-config-file-path=/etc/php7/cli --with-config-file-scan-dir=/etc/php7/cli/conf.d
Во время выполнения может появится ошибка, в конце статьи разберем.
Далее делаем:
make
И теперь осталось довольно долго подождать, особенно на слабеньких машинах.
Теперь сделаем тест, ну мало ли…
make test
Если все окей — собственно сама установка php 7:
make install
После установки вводим команду /usr/local/php7/bin/php -v и радуемся новой php:
PHP 7.1.0-dev (cli) (built: Dec 13 2015 16:28:33) ( NTS ) Copyright (c) 1997-2015 The PHP Group Zend Engine v3.1.0-dev, Copyright (c) 1998-2015 Zend Technologies
Решение ошибок
./buildconf: 46: ./buildconf: make: not found
apt-get install make
configure: error: Cannot find OpenSSL’s <evp.h>
apt-get install libssl-dev pkg-config
configure: error: jpeglib.h not found
apt-get install libjpeg-dev
configure: error: xpm.h not found
apt-get install libxpm-dev
configure: error: freetype.h not found.
apt-get install libfreetype6-dev
На данный момент в нашей системе уже живет свежий php 7, в следующих статьях мы с вами более подробно разберем настройку и использование новой версии.
А как сделать чтобы использовался именно этот php /src/local/php7/bin/php ?
У вас веб-сервер по прежнему использует старую версию php?