Как установить PHP 7 и как обновить до PHP 7 на Windows

BKeaton

Green Team
18.07.2018
204
341
BIT
130
Если вы пользователь Linux, то обратитесь к статье "Как установить PHP 7 (PHP-FPM и FastCGI) для ISPConfig 3 на Debian 8 (Jessie)".

Выход PHP 7

На данный момент доступен PHP 7.0.0 Alpha выпуск 2. В самые ближайшие дни появится первая бета. Ни альфы ни беты не рекомендуются для реальной работы. Но попробовать их на тестовом сервере уже можно.

Тем паче, что изменения PHP7 очень значительны:
  • Увеличение производительности PHP 7 до двух раз по сравнению с PHP 5.6 (вот это да!)
  • Ожидаемая поддержка 64-бит
  • Многие фатальные ошибки теперь Exceptions (исключения)
  • Удаление старых и не поддерживаемых SAPI (программных интерфейсов серверных приложений) и расширений
  • Оператор NULL коалесцирующий (??)
  • Комбинированный оператор сравнения (<=>)
  • Декларация возвращаемого типа
  • Декларация скалярного типа
  • Анонимные классы
Как установить PHP 7 на Windows

PHP любой версии почти всегда ставят в паре с сервером и системой управления базами данных. Если у вас совсем нет сервера, то обратитесь к статье «Установка и настройка сервера Apache, PHP, MySQL, phpMyAdmin на Windows 10». Когда в той статье дойдёте до установки PHP, то возвращайтесь сюда.

Если сервер у вас уже есть, то общие вопросы по обновлению вы найдёте в статье «Обновление сервера Apache и его компонентов».

Особенности установки PHP 7 на Windows

Я ставил на Apache 2.4 VC14. Если вы ещё не обновили сервер, то сделайте это. Ссылки и подробности по этой инструкции.

Для скачивания PHP 7.0 перейдите на . Все программы всегда скачивайте только с официальных сайтов!

Выберите версию Thread Safe (64-битную или 32-битную как и ваш сервер Apache).

Обязательно нужен Visual C++ Redistributable for Visual Studio 2015! Если вы уже обновили сервер Apache, то этому серверу также нужен этот пакет. Т.е. вы уже должны были его установить. Если это не так, то перейдите на и скачайте пакет соответствующей битности.

После скачивания установите его.

Если при установке сервера вы пользуетесь моей инструкцией, то распакуйте содержимое скаченного архива с PHP в каталог C:ServerbinPHP.

Перейдите в этот каталог, найдите файл php.ini-development и переименуйте его в php.ini.

Откройте этот файл любым текстовым редактором, найдите там строчку
Код:
; extension_dir = "ext"
И замените её на
Код:
extension_dir = "ext"
Теперь нам нужно включить расширения для PHP, поскольку без них большинство сайтов и скриптов работать не будут. Внимание: на данный момент с некоторыми расширениями не удаётся запустить сервер, поэтому внимательно посмотрите ниже. Найдите группу строк:
Код:
;extension=php_bz2.dll
;extension=php_curl.dll
;extension=php_fileinfo.dll
;extension=php_gd2.dll
;extension=php_gettext.dll
;extension=php_gmp.dll
;extension=php_intl.dll
;extension=php_imap.dll
;extension=php_interbase.dll
;extension=php_ldap.dll
;extension=php_mbstring.dll
;extension=php_exif.dll ; Must be after mbstring as it depends on it
;extension=php_mysqli.dll
;extension=php_oci8_12c.dll ; Use with Oracle Database 12c Instant Client
;extension=php_openssl.dll
;extension=php_pdo_firebird.dll
;extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
;extension=php_pdo_pgsql.dll
;extension=php_pdo_sqlite.dll
;extension=php_pgsql.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
И замените их на следующие строки. Обратите внимание, некоторые расширения оставлены отключёнными, поскольку при их включении Apache не запускается!
Код:
extension=php_bz2.dll
extension=php_curl.dll
extension=php_fileinfo.dll
extension=php_gd2.dll
extension=php_gettext.dll
extension=php_gmp.dll
extension=php_intl.dll
extension=php_imap.dll
;extension=php_interbase.dll
extension=php_ldap.dll
extension=php_mbstring.dll
extension=php_exif.dll ; Must be after mbstring as it depends on it
extension=php_mysqli.dll
;extension=php_oci8_12c.dll ; Use with Oracle Database 12c Instant Client
extension=php_openssl.dll
;extension=php_pdo_firebird.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
extension=php_pdo_odbc.dll
extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
extension=php_pgsql.dll
;extension=php_pspell.dll
extension=php_shmop.dll
Теперь находим следующую группу строк:
Код:
;extension=php_soap.dll
;extension=php_sockets.dll
;extension=php_sqlite3.dll
;extension=php_tidy.dll
;extension=php_xmlrpc.dll
;extension=php_xsl.dll
Эти расширения можно включить все:
Код:
extension=php_soap.dll
extension=php_sockets.dll
extension=php_sqlite3.dll
extension=php_tidy.dll
extension=php_xmlrpc.dll
extension=php_xsl.dll
Сохраняем и закрываем файл.

Теперь переходим к конфигурационному файлу Apache. У тех, кто ставил по моей инструкции, этот файл здесь C:ServerbinApache24confhttpd.conf

Открываем его любым текстовым редактором. Находим строки, которыми мы подключали PHP 5, и удаляем их.
Код:
#BEGIN PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL
PHPIniDir "C:/Server/bin/PHP"
AddHandler application/x-httpd-php .php
LoadModule php5_module "C:/Server/bin/PHP/php5apache2_4.dll"
#END PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL
Вместо них добавляем строки:
Код:
#BEGIN PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL
PHPIniDir "C:/Server/bin/PHP"
AddHandler application/x-httpd-php .php
LoadModule php7_module "C:/Server/bin/PHP/php7apache2_4.dll"
#END PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL
Перезапускаем сервер и наслаждаемся новым PHP 7:

30301


П.с. сразу после выхода стабильной версии PHP 7 я обновлю инструкцию, чтобы можно было легко и быстро всё установить.
 
  • Нравится
Реакции: Vertigo

Сергей Попов

Кодебай
30.12.2015
4 727
6 723
BIT
449
СЛАВА
13.12.2015 в 19:06
Всё делаю по инструкции, всё работает, но без php.ini, как только его добавляю, то апач не выводя ошибок отказывается работать

СЛАВА
13.12.2015 в 19:39
удалил пару строк, всё работает

extension=php_interbase.dll

extension=php_oci8_12c.dll

extension=php_pdo_firebird.dll

extension=php_pdo_oci.dll

КРЯНГА АНАТОЛИЙ
29.12.2015 в 21:14
Спасибо! Заработало!

ДМИТРИЙ
14.01.2016 в 21:11
Благодарю! Всё хорошо и правильно изложено! 5 баллов!

Установил на новый комп. PHP7 с Apache, MySQL и PHPMyAdmin, но столкнулся с неожиданной для меня проблемой.

Любая функция Mysql_* (mysql_pconnect(); , mysql_connect(); , mysql_query(); …) в коде страницы выдает ошибку:

«»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»

Fatal error: Uncaught Error: Call to undefined function mysql_connect() in …adminincludesdatabase.php:13 Stack trace: #0 …index.php(14): include() #1 {main} thrown in …adminincludesdatabase.php on line 13

«»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»

Стал разбираться и выяснилось, что с приходом PHP7 функции ” MySQL_* ” больше не поддерживаются. На их замену уже полностью пришли ” MySQLi_* “.

Любой Хостер на сегодняшний день пользуется PHP5.* с поддержкой ” mysql_* “.

Пожалуйста, помогите подключить функции ” mysql_* ” в PHP7. Слишком много всего написано с их использованием.

Заранее Вам ОЧЕНЬ благодарен!

ЛЕОНИД
02.06.2016 в 12:49
уже как несколько лет все нормальные программисты используют PDO. PHP7 создан для создания новых проектов, а не для поддержки старья с mysql_connect

СТАС
31.01.2016 в 18:10
Все делал по вашей инструкции. Ставлю PHP7. В итоге апач вываливает ошибку.

Пробовал закоментировать модули, как в этой инструкции – не помогло. Пробовал закоментировать как написали в комментариях (https://codeby.net/blogs/?p=3215#comment-2577) – тоже не помогло.

Если закоментировать вообще все модули – запускается апач и работает PHP.

Как быть? Некоторые модули нужны в повседневной работе.

СТАС
31.01.2016 в 18:29
Вот, кстати, вручную перебрал все модули. Вот список тех, из-за которых апач не работает:

extension=php_curl.dll
extension=php_intl.dll
extension=php_interbase.dll
extension=php_ldap.dll
extension=php_oci8_12c.dll ; Use with Oracle Database 12c Instant Client
extension=php_pdo_firebird.dll
extension=php_pdo_oci.dll
extension=php_pdo_pgsql.dll
extension=php_pgsql.dll
extension=php_pspell.dll
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!