На PHP написано много хороших приложений. Даже нет,
очень много и некоторые из них очень хорошие, так почему бы не использовать эти
приложения на Windows? Особенно, если внутренний портал работает на Windows, а
на Unix машине крутиться внешний сайт компании - тогда
можно сэкономить на инфраструктуре и разместить на Windows
сервере еще и внешний сайт. Либо, если есть желание стандартизировать
инфраструктуру и размещать сайты на Windows
платформе, поскольку разработчики и пользователи работают на
Windows платформе.
На сайте www.iis.net
можно найти
список
популярных PHP приложений
с инструкциями по установке на IIS. Для их запуска
на IIS не требуется изменения
PHP кода.

Установка и настройка PHP для использования с модулем FastCGI.

Для начала, чтобы успешно использовать PHP на
Windows, неплохо было бы PHP
установить.
Шаг 1. Скачать PHP
На сайте PHP.net нужно скачать
последную версию PHP для Windows . Для использования с FastCGI рекомендуется
устанавливать версию PHP без контроля безопасности потоков, поскольку сам модуль
FastCGI гарантирует, что выполнение происходит в одном потоке и поддержка
контроля безопасности потоков в самом PHP привносит лишние проверки и
блокировки, приводящие к значительному падению производительности. Поэтому
выбираем Non-thread-safe Win32 binaries (версия 5.2.6 актуальна на момент написания
этого сообщения).
Стоит отметить, что веряим Non-thread-safe была разработана специально для
работы с FastCGI на IIS (первый релиз был в версии 5.2.1) и использовать в
других средах не рекомендуется. Кстати, начиная с версии 5.2.2 Zend серьезно
работает над оптимизацией производительности PHP под Windows, что не может не
радовать. Если сравнить версии 5.2.1 и 5.2.2, то разницу в скорости обработки
запросов можно легко увидеть с помощью простого нагрузочного теста.
Шаг 2. Установка PHP
Установка осуществляется совсем просто: поскольку мы скачали архив с
исполнимыми файлами, достаточно развернуть этот архив, например, в
директорию C:\Web\PHP.
В качестве базовой конфигурации воспользуемся рекомендованными установками:
cделаем копию файла php.ini-recommended в php.ini в этой же директории и откроем
его для редактирования, после чего пройдем файл сверху расскоментируя следующие
строки, дабы обеспечить безопасность и совместимость с большинством PHP
приложений:
  • open_basedir = директория, где размещены PHP приложения .
    Указание директории ограничит права доступа к файлам PHP приложений только
    этой директорией. Удобно переопределять эту настройку в файлах конфиграции
    непосредственно для каждого приложения, однако не помешает установить эту
    настройку и указать корневую директорию всех PHP приложений. Например, C:\inetpub\PhpSites.
  • cgi.force_redirect = 0
    По умолчанию установлено 1, но необходимо установить в 0, поскольку IIS
    контролирует безопасность выполнения PHP и в этой настройке нет
    необходимости. Более того, включение может привести к неожиданным
    результатам. При использовании с другими web-серверами на Windows эту
    настройку необходимо включить.
  • cgi.fix_pathinfo = 1
    PHP будет устанавливать имя файла в переменной SCRIPT_FILENAME, если
    установить значение 0, то имя файла будет в переменной PATH_TRANSLATED, что
    может нарушить совместимость с большинством приложений.
  • fastcgi.impersonate = 1;
    FastCGI позволяет процессу имперсонироваться используя контекст клиента,
    вызывающего процесс. Этот механизм работает только под FastCGI/IIS, например
    на Apache на Windows это работать не будет.
  • short_open_tag = On
    Большинство приложений используют короткие теги , поэтому будет не
    лишним включить их поддержку.
  • display_errors = On
    На время проверки и отладки PHP приложений на FastCGI стоит включить вывод
    сообщений об ошибках.
Шаг 3. Проверка работоспособности PHP
Пока мы не сконфигурировали IIS, проверить работоспособность интерпретатора
можно просто, например, выполнив команду c:\web\php\php.exe -info > c:\test.txt

Установка и настройка модуля FastCGI на IIS7.

Если у вас у IIS7, то что-то мне подсказывает о названии вашей операционной
системы - Windows Vista? Не угадал, тогда Windows Server 2008! Либо вы хакер и
поставили IIS7 еще-куда-то, но это нестандартное решение и мы его не
поддерживаем;).
Шаг 1. Установка FastCGI
Хочу обрадовать сразу - в IIS7, идущем с Windows Server 2008 и Windows Vista
Service Pack 1 модуль FastCGI уже включен. Его необходимо лишь подключить в
настройках. Для этого на Vista нужно открыть Control Panel -> Programs и выбрать
«Turn Windows Features On or Off»:

После этого необходимо установить фичу в IIS: Internet Information Services
-> World Wide Web Services -> Application Development Features -> CGI. При этом
будет установлена поддержка и CGI и FastCGI.

На Windows Server 2008 процесс аналогичен: Server Manager -> Roles -> Add
Role Services -> Web Server -> Application Development -> CGI.
Собственно все, что требуется для включения модуля FastCGI.
Шаг 2. Конфигурация IIS7
1. Открыть IIS Manager, выбрать узел (сервер) для которого нужно настроить
поддержку PHP. И далее выбрать Handler Mappings.

2. Выбираем на странице Handler Mappings ссылку Add Module Mapping и
заполняем окно следующими значениями:
Request path: *.php (обработка всех файлов с расширением.php)
Module: FastCgiModule (модуль FastCGI)
Executable: C:\Web\PHP\php-cgi.exe (путь к PHP)
Name: PHP (имя для удобства)

После добавления этой настройки появится окно с вопросом о регистрации
FastCGI приложения для этого обработчика. Подтверждаем.
Описанные выше действия привели к созданию в директории PhpSites следующего
web.config файла:


< configuration >
< system.webServer >
< handlers >
< add name =«PHP» path ="*.php" verb ="*"
modules =«FastCgiModule» scriptProcessor ="C:\Web\PHP\php-cgi.exe "
resourceType =«Unspecified» />



Теперь можно переходить к проверке работоспособности PHP.
Шаг 3. Проверяем корректность настройки
В директории узла для которого мы сконфигурировали PHP создаем файл
index.php:
phpinfo();
?>
И обращаемся к этому файлу через HTTP запрос. В результате, если все хорошо и
наша карма не испорчена, запрос будет корректно обработан:

Разумеется, при использовании PHP на
IIS7 могут возникать подводные камни, с которыми нужно
бороться, чтобы достичь ожидаемого результата (замечательной работы
PHP приложений на Windows).
Молотки для разбивания часто встречающихся камней приведены ниже.

Частота перезапуска процессов PHP

Поскольку при использовании PHP на
IIS7 с использованием FastCGI
модуля, сам модуль FastCGI берет на себя
управление процессами и ресурсами, необходимо убедится, что механизм перезапуска
процессов (recycling) в PHP
не будет мешать FastCGI. Это легко сделать, если
настроить FastCGI так, чтобы он всегда перезапускал
процессы раньше, чем это сделает PHP.
В настройках FastCGI существует настройка
instanceMaxRequests, определяющая после обработки какого количества запросов,
процесс будет перезапущен. В PHP аналогичный параметр
задается значением переменной PHP_FCGI_MAX_REQUESTS. Очевидно, чтобы дать
возможность FastCGI рулить процессом, достаточно
установить instanceMaxRequests <= PHP_FCGI_MAX_REQUEST.
Это удобно сделать, отредактировав файл
applicationHost.config (прячется в директории C:\windows\system32\inetsrv\config\).
В конфигурации должна быть следующая информация:

< fastCgi >
< application fullPath ="C:\inetpub\php\php-cgi.exe "
maxInstances =«4» instanceMaxRequests =«10000» >
< environmentVariables >
< environmentVariable name =«PHP_FCGI_MAX_REQUESTS» value =«10000» >


Использование нескольких версий PHP

Поскольку разные версии PHP могут использоваться в
приложениях, которые размещаются на сервере, то хорошо бы было дать возможность
использовать разные версии для разных сайтов.
В файле конфигурации applicationHost.config
достаточно определить секции для разных версий PHP:
< fastCgi >
< application fullPath =«C:\inetpub\php\php-cgi.exe» >
...

< application fullPath =«C:\inetpub\php4\php4.exe» >
...

< application fullPath =«C:\inetpub\php41\php41.exe» >
...


* This source code was highlighted with .
А уже для каждого из сайтов конфигурируется модуль, использующий ту или иную
версию (можно использовать интерфейс, который описан выше, а можно
отредактировать конфигурацию в тексте):
< handlers >
< add name =«PHP4» path ="*.php" verb ="*" modules =«FastCgiModule»
scriptProcessor ="C:\inetpub\php\php41.exe "
resourceType =«Unspecified» />

* This source code was highlighted with .

Использование разных наборов настроек PHP

Если есть желание настраивать PHP по-разному для
разных сайтов, то опять же все это можно описать через настройки конфигурации в
applicationHost.config.
< fastCgi >

< application fullPath ="C:\inetpub\php\php-cgi.exe "

arguments ="-d my.website=wordpress" >

< environmentVariables >

< environmentVariable name =«PHPRC» value =«C:\inetpub\wordpress» />





< application fullPath ="C:\inetpub\php\php-cgi.exe "

arguments ="-d my.website=phpsite" >

< environmentVariables >

< environmentVariable name =«PHPRC» value =«C:\inetpub\phpsite» />






* This source code was highlighted with .

После этого, настройки связываются с соответствующими сайтами в
web.config:
< system.webServer >

< handlers accessPolicy =«Read, Script» >
< add name =«PHP» path ="*.php" verb ="*" modules =«FastCgiModule»
scriptProcessor ="C:\inetpub\php\php-cgi.exe|-d my.website=wordpress "

resourceType =«Unspecified» requireAccess =«Script» />




* This source code was highlighted with .

В соответствии с приведенной конфигурацией, php.ini
нужно разместить в директории каждого из сайтов.
При редактировании настроек, стоит строго соблюдать совпадение путей к
соответствующей версии PHP и с
applicationHost.config и в web.config, чтобы
избежать неожиданных результатов, если пути будут перепутаны.
На первый взгляд редактирование конфигурации может показаться сложным и
неудобным процессом, но как только вы привыкните к конфигурации в
XML и распространению настроек методом
Ctrl+C, Ctrl+V, вы будете удивляться наличию других
способов конфигурации:)

Настройки безопасности PHP

В php.ini мноо разных настроек, многие из которых
влияют на безопасность использования PHP. Настроить
все подходящим образом, достойное дело.
Set allow_url_fopen=Off
; использование URL для операций с файлами
Set allow_url_include=Off
register_globals=Off
; отмена регистрации глобальных переменных
open_basedir=«c:\inetpub\» ;
ограничение на директорию, в которой работает PHP

Max_execution_time=30 ; ограничение
времени выполнения скриптов
max_input_time=60
memory_limit=16M ;
ограничение на размер используемой памяти
upload_max_filesize=2M
post_max_size=8M
max_input_nesting_levels=64
display_errors=Off
; отключение сообщений об ошибках
log_errors=On
error_log=«C:\error.log»
expose_php=Off
; скрыть присутствие PHP

Заключение

PHP на Windows - это не
просто интересно и удобно, главное, что это работает. А команда
IIS работает над тем, чтобы PHP
работал на Windows не хуже, чем на
Unix/Linux (конечно, стараются сделать лучше).
Поскольку это новая тема для Microsoft, то мы можем
сделать какие-то ошибки, можем чего-то не замечать и не понимать, поэтому нам
очень важно получать комментарии от вас - разработчиков и администраторов.
Пишите в комментариях ваши пожелания и проблемы, которые вы видите сейчас в
PHP на Windows, а мы будем
стараться проблемы решать, а пожелания реализовывать.

Теги: Добавить метки

Если вы пользователь Linux, то обратитесь к статье " ".

Выход PHP 7

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

Тем паче, что изменения PHP7 очень значительны:

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

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

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

Особенности установки 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, и удаляем их.
инструкцию , чтобы можно было легко и быстро всё установить.

Php - популярный язык веб программирования и разработки сайтов. С каждой новой версией язык становился все интереснее и интереснее, начиналось все с простого функционально ориентированного языка программирования пригодного только для создания веб страничек, и наконец Php 5 сейчас позиционируется как полнофункциональный объективно ориентированный скриптовый язык. php 7 преподносит много интересных улучшений и исправлений таких как тотальная оптимизация производительности и добавление многопоточности но сегодня не об этом, обзоров возможностей php 7 вы можете найти вагон и маленькую тележку на просторах интернета.

В этой инструкции будет описана установка php 7 в Linux, она рассчитана в первую очередь на пользователей Ubuntu но подойдет и для других дистрибутивов. Мы рассмотрим установку из PPA в Ubuntu и сборку из исходников.

Репозитории PPA позволяют сторонним разработчикам распространять пакеты своих программ в обход официальных репоизиториев Ubuntu. Обычно из PPA можно получить самые новые или даже бета версии программ. После официального релиза php 7 был сделан PPA для Ubuntu. Добавим его в систему:

$ sudo add-apt-repository ppa:ondrej/php-7.0

sudo apt-get update

И можно устанавливать:

sudo apt-get install php7.0

Для поддержки mysql нужно установить библиотеку:

sudo apt-get install php7.0-mysql

Для установки php в виде модуля fpm выполните:

sudo apt-get install php7.0-fpm

Сборка php 7 из исходников

Сначала установим необходимые нам инструменты и библиотеки:

sudo apt-get install git autoconf bison libxml2 libxml2-dev opessllibcurl4-openssl-dev libbz2-dev libjpeg-dev libpng-dev libxpm-dev libfreetype6-dev libgmp-dev libmcrypt-dev libmysqld-dev libpspell-dev librecode-dev

Создадим рабочую папку:

Синхронизируем исходники php с репозитория git:

git clone https://git.php.net/repository/php-src.git

Переходим непосредственно к сборке и установке, программа будет установлена в текущую папку - ~/tmp:

cd php-src
$ sudo ./buildconf
$ sudo ./configure \
--enable-mbstring \
--enable-zip \
--enable-bcmath \
--enable-pcntl \
--enable-ftp \
--enable-exif \
--enable-calendar \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-wddx \
--with-curl \
--with-mcrypt \
--with-iconv \
--with-gmp \
--with-pspell \
--with-gd \
--with-jpeg-dir=/usr \
--with-png-dir=/usr \
--with-zlib-dir=/usr \
--with-xpm-dir=/usr \
--with-freetype-dir=/usr \
--with-t1lib=/usr \
--enable-gd-native-ttf \
--enable-gd-jis-conv \
--with-openssl \
--with-mysql=/usr \
--with-pdo-mysql=/usr \
--with-gettext=/usr \
--with-zlib=/usr \
--with-bz2=/usr \
--with-recode=/usr \
--with-mysqli=/usr/bin/mysql_config
$ make

Создаем папку для конфигурационного файла:

mkdir $HOME/tmp/usr/etc

Создаем конфигурационный файл php со следующим содержимым:

nano $HOME/tmp/usr/etc/php.ini

max_execution_time=600
memory_limit=128M
error_reporting=0
display_errors=0
log_errors=0
user_ini.filename=
realpath_cache_size=2M
cgi.check_shebang_line=0
zend_extension=opcache.so
opcache.enable_cli=1
opcache.save_comments=0
opcache.fast_shutdown=1
opcache.validate_timestamps=1
opcache.revalidate_freq=60
opcache.use_cwd=1
opcache.max_accelerated_files=100000
opcache.max_wasted_percentage=5
opcache.memory_consumption=128
opcache.consistency_checks=0

Сохраните, и php 7 установлен и настроен, можно переходить к тестированию.

Тестирование

Смотрим версию php:

Или выполняем скрипт:

nano ~/tmp/script.php

sapi/cli/php ~/tmp/script.php

И наконец бенчмарки:

sapi/cli/php Zend/bench.php
$ sapi/cli/php Zend/micro_bench.php

Указываем версию своей операционной системы (я указал 64-разрядную Windows), и переходим на страницу загрузки (Go to Download Page https://dev.mysql.com/downloads/windows/installer/5.7.html).

Я выбрал загрузку полного установщика msi. На момент написания этой заметки была актуальной версия MySQL 5.7.21, и скачался дистрибутив по имени mysql-installer-community-5.7.21.0.msi.

Apache 2.4

На момент подготовки статьи была доступна x64 версия 2.4.33, собранная на базе vc14:
httpd-2.4.29-o110g-x64-vc14.zip.
Размер архива - около 10 Мб.

PHP 7.2

На момент подготовки этой статьи была доступна x64 версия PHP 7.2 (7.2.2), Thread Safe, собранная на VC15: php-7.2.2-Win32-VC15-x64.zip.
Размер архива Zip: 24 Мб.
Сейчас есть и поновей.

phpMyAdmin (PMA)

Для управления базами данных MySQL на локальном компьютере, установим бесплатный пакет phpMyAdmin.

Его дистрибутив скачаем с сайта http://www.phpmyadmin.net/
На момент подготовки статьи доступна была версия 4.7.7:
phpMyAdmin-4.7.7-all-languages.zip
Размер - около 11 Мб.

Содержимое архива выкладываем в заранее заготовленную папку, например:
D:\sites\localhost\www

Список для установки

Дистрибутивы скачаны. Устанавливаем в таком порядке:

  • MySQL
  • Apache - настраиваем виртуальные сервера, проверяем на html
  • PHP - с доп настройкой Apache проверяем на php_test.php
  • phpMyAdmin (с доп настройкой php)

Установка MySQL

Запускаем ранее скачанный установщик MySQL (mysql-installer-....msi).

В окне License Agreement устанавливаем галочку в пункте:
I accept the license terms
- и жмем кнопку Next.

В окне Choosing a Setup Type выбираем пункт Custom (чтобы самим выбирать параметры для установки MySQL сервера). Жмем кнопку Next.

В окне выбора компонентов (Select Products and Features) обязательно выбираем компонент MySQL Server - X64. Остальные компоненты - по желанию. Выбрав компонент в левой части окна, нажимаем стрелку вправо, чтобы этот компонент из доступных для установки перешел в правую часть окна - список того,что будем устанавливать.

Нажать Next после выбора компонентов.

В окне Installation жмем кнопку Execute, чтобы запустить установку на выполнение.

Наблюдать за ходом установки можно, нажав кнопку Show Details.

Когда установка закончится (Status станет complete), нажимаем кнопку Next, для перехода к конфигурированию сервера MySQL.

В окне Product Configuration нажимаем кнопку Next.

В окне Type and Networking

оставляем включенным пункт Standalone MySQL Server, жмем Next.

В следующем окне Type and Networking
устанавливаем пункт Config Type = Development Machine

Галки у пунктов TCP/IP и Open Firewall port for network access - оставляем.
Порт связи с MySQL тоже оставляем со значением по умолчанию (Port Number = 3306).

Установим галку у пункта Show Advanced Options.

В окне Accounts and Roles задаем пароль для главного пользователя (с логином root - администратора).

В поле MySQL User Accounts можно добавить других пользователей, которые будут иметь доступ к базам данных MySQL. Мы пока других создавать не будем: подключаться будем, как root.

В окне Windows Service оставляем галку у пункта Configure MySQL Server as a Windows Service (чтобы сервер MySQL запускался в виде системной службы).

Имя системной службы (MySQL57) оставим по умолчанию.

Запускать службу сервера MySQL будем вручную (он нужен нам только на время разработки и тестирования локальных сайтов), поэтому снимаем галочку у пункта Start the MySQL Server at System Startup (чтобы сервер не запускался каждый раз при запуске OC Windows).

Запускать службу будем от имени Standard System Account (эту опцию не меняем).

В окне Plugins and Extensions оставляем все, как есть. Жмем Next.

В окне Advanced Options можно изменить параметры журналов (логов), куда сервер записывает сообщения в ходе своей работы. Здесь можно оставить все, как есть.

В окне Apply Configuration жмем кнопку Execute для применения конфигурации сервера.

По окончании жмем кнопку Finish.

В окне Product Configuration жмем Next.

В последнем окне Installation Complete галки у пунктов можно не устанавливать. Жмем Finish.

Установка и конфигурирование MySQL-сервера закончены.

Запустить/остановить вручную сервер MySQL можно, перейдя в список служб Windows.
Найти в списке MySQL57, щелкнуть по нему правой кнопкой мыши и выбрать "Запустить/Остановить".

Установка Apache 2.4 для Windows

Есть много статей в интернете, где описано, как выполняется установка Apache 2.4 для Windows. Я, может быть, и повторю что-то, но изложу пошагово свою версию.

В архиве, скачанном с сайта разработчика (использован вариант httpd-2.4.29-o110g-x64-vc14.zip), есть папка Apache24. Её, вместе с её содержимым, помещаем на диск С:

Кроме самого пакета (папки Apache24) в архиве лежит файл readme_first.html, который полезно прочитать.

Особое внимание следует обратить на наличие пакета Visual C++ 2015 x64 Redistributable Package в установленной ОС Windows.
Этот пакет содержит набор библиотек, без которых данная сборка Apache работать не будет.
Скачать бесплатно этот пакет можно с сайта Microsoft, по ссылке (https://www.microsoft.com/en-us/download/details.aspx?id=49984), данной в файле readme_first.html. Обязательно его установите, если его ещё нет в вашей ОС.

Если на вашем компе установлены программы, слушащие 80 порт, то лучше их отвадить от использования этого порта, или назначить им другой. Сервер Apache по умолчанию настроен именно на этот порт, см параметр Listen в файле C:\Apache24\conf\httpd.conf

Пробуем запустить сервер (позже рассмотрим вариант запуска сервера в виде системной службы(сервиса)).
Для этого запускаем командную строку в режиме (от имени) администратора.
Переходим в папку C:\Apache24\bin и запускаем программу httpd.exe

При первом запуске может появиться Оповещение системы безопасности Windows о том, что брандмауэр Windows заблокировал некоторые функции этого приложения (см. рисунок)

Ставим галочку, разрешающую Apache HTTP Server связь для Частных сетей.
Работу в общественных сетях можно запретить.

Открыв любой браузер, введём в адресной строке адрес http://localhost/
- должна появиться страница сборщика данного пакета Apache-сервера.

(она с пакетом инсталлирована в папку C:\Apache24\htdocs - это значение имеет переменная DocumentRoot в файле httpd.conf,
но мы его позже изменим).

Значит, сервер Apache стартует и работает нормально.

Если сервер не запускается, то надо посмотреть, какие ошибки он выдает. Ошибки можно увидеть при запуске: в командной строке и в файле C:\Apache24\logs\error.log

Сделаем теперь так, чтобы сервер Apache запускался сервисом (описано в readme_first.html, прилагаемом к дистрибутиву).
В командной строке, запущенной от имени администратора, перейдя в папку C:\Apache24\bin, запустим команду
httpd -k install

Отслеживать состояние службы сервера Apache и выполнять его перезапуск (будем делать часто по ходу настройки) удобно через программу C:\Apache24\bin\ApacheMonitor.exe. Сделайте для неё ярлык и поместите его в удобное для запуска место (в панель задач или на рабочий стол).

Осталось сконфигурировать сервер Apache под наши нужды:
ориентировать на папки, в которых будут лежать наши сайты;
подготовить к работе с MySQL и PHP.

Допустим, мы желаем иметь на локальном компе пока 2 сайта с именами localhost и wp-test
http://localhost/
http://wp-test/

Для этого в системном файле C:\Windows\System32\drivers\etc\hosts должны быть такие строки

127.0.0.1 localhost
127.0.0.2 wp-test

Первая строка обычно уже существует по умолчанию.
Вторую набиваем самостоятельно.

Эти строки сообщают, что хосты с именами localhost и wp-test надо искать по IP-адресам 127.0.0.1 и 127.0.0.2
- оба адреса соответствуют локальному компьютеру.

Перезапуск ОС необязателен.

Создадим на локальном компе папки для хранения сайтовых файлов, например в папке:
D:\sites\localhost
D:\sites\wp-test

В каждой из этих папок создадим 2 файла с именами
access.log
error.log
и подпапку www
D:\sites\localhost\www
D:\sites\wp-test\www
- в этих папках создадим файлы index.html с таким содержимым:
это localhost
это wp-test

Теперь настроим сервер Apache на использование виртуальных хостов, соответствующих нашим сайтам.

Отредактируем конфигурационный файл сервера (C:\Apache24\conf\httpd.conf).
Для этого его надо открыть в текстовом редакторе.
Я для этого использую NotePad++ (очень многофункциональный бесплатный редактор).

Виртуальные хосты обычно прописываю в конец этого файла.

Добавим туда такие строки:

#localhost ServerName localhost DocumentRoot "D:/sites/localhost/www" ErrorLog "D:/sites/localhost/error.log" CustomLog "D:/sites/localhost/access.log" common #wp-test ServerName wp-test DocumentRoot "D:/sites/wp-test/www" ErrorLog "D:/sites/wp-test/error.log" CustomLog "D:/sites/wp-test/access.log" common AllowOverride All Options Includes FollowSymLinks Require all granted

Проверяем, открываются ли в браузерах страницы по адресам
http://localhost/
http://wp-test/

При нормальном открытии страницы должны отображать такие строки:
это localhost
и
это wp-test

Аналогично можно создавать и другие виртуальные веб-сервера на локальном компьютере.

Дополнительные настройки для Apache, которые могут пригодиться.

Установка PHP 7

Содержимое скачанного архива php-7.2.2-Win32-VC15-x64 выкладываем в папку C:\php\

Внимательно читаем файл C:\php\install.txt из дистрибутива.
В этом файле кратко описано, как установить PHP в системе и настроить его для работы с Apache.

Путь C:\php добавляем в системную переменную PATH

Для тестирования PHP на нашем локальном сайте http://localhost/
создадим в его папке (D:\sites\localhost\www) файл php_test.php с таким содержимым:

Тогда при открытии адреса http://localhost/php_test.php должна открываться страница с данными от команды phpinfo.

Подготовим Apache к работе с PHP

В файле httpd.conf

В том месте, где грузятся модули (ищите группу команд LoadModule), в конце группы (если ещё нет такой строки) добавляем:

LoadModule php_module "C:/php/php7apache2_4.dll"

Укажем путь, где установлен php, директивой:

PHPIniDir "C:/php"

В секции дописываем index.php:

DirectoryIndex index.html index.php

В секции , где такие команды, как AddType application...

добавляем строку

AddType application/x-httpd-php .php

Сохраняем httpd.conf и перезапускаем Apache.

После этого тестовая страница http://localhost/php_test.php будет открываться.

Отредактируем файл настроек PHP для работы phpMyAdmin и не только.

Файл php.ini-production переименовываем в php.ini (оставляем в той же папке C:\php\)

Редактируем php.ini так

Раскомментируем строку

Extension_dir = "ext"

Включим параметр (по умолчанию=Off)

Enable_dl = On

Укажем папку для загрузки временных файлов

Upload_tmp_dir="d:/sites/uploadtemp" upload_max_filesize = 500M

В разделе; Dynamic Extensions ;

раскомментируем строки:

Extension=gd2 extension=mbstring extension=mysqli

Включим еще одно расширение:

Extension=openssl

Для того, чтобы, например, обновлять плагины wordpress на локальном сайте через админку. Иначе выходит ошибка: No working transports found.

Для выполнения долгих скриптов продлим максимальное время их выполнения, например, так:

Max_execution_time = 300

Установка phpMyAdmin

Скачав дистрибутив и выложив его содержимое в папку D:\sites\localhost\www
зайдем в папку с документацией \www\doc\html и откроем файл setup.html

Следуя его инструкциям, создадим в корневом каталоге сайта (www) подпапку config (это нужно на время конфигурирования phpMyAdmin скриптом, который можно запустить, открыв страницу настройки по адресу http://localhost/setup/).
Переименуем лежащий в корневом каталоге файл \www\config.sample.inc.php
в рабочий файл \www\config.inc.php
- этот файл откроем для редактирования и определим в нем параметр $cfg["blowfish_secret"] - заполнив любыми символами, например, фразой ANY_WHAT_YOU_WANT:

$cfg["blowfish_secret"] = "ANY_WHAT_YOU_WANT"; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */

и, сохранив,закроем этот файл.

Проверим, открываются ли страницы сайта:
http://localhost/
http://localhost/index.php

Для загрузки Apache 2.4 откройте браузер и перейдите на сайт apachelounge.com .

В зависимости от того, какая разрядность Вашей системы, скачайте архив либо для Apache 2.4.25 Win64 , либо для Apache 2.4.25 Win32 .


После этого загрузите службу vc_redist .


После перехода по ссылке откроется следующее окно. Выберете язык Русский (для удобства) и нажмите на кнопку Скачать .


Далее поставьте галочку возле vc_redist.x64.exe и нажмите Next .


После того, как Вы скачали vc_redist , введите в адресной строке браузера windows.php.net/download для загрузки PHP . Далее в разделе PHP 7.0 (7.0.16) скачайте архив zip либо VC14 x86 Thread Safe (2017-Feb-14 22:22:54) , либо VC14 x64 Thread Safe (2017-Feb-14 22:22:54) .


Всё, что нужно, Вы скачали. Теперь установите саму службу vc_redist на компьютер. Запустите у себя в загрузках vc_redist.x64.exe . Откроется следующее окно, нажмите Запустить .


После нажмите галочку возле Я принимаю условия лицензии и нажмите Установить .


Далее перейдите в Компьютер => Локальный диск (С:) и создайте папку WEB , в которую будете устанавливать Apache и PHP . Внутри папки WEB создайте папку php . После этого откройте архив с Apache и извлеките папку Apache24 в папку WEB . Далее откройте архив с PHP и всё содержимое извлеките в папку php в папке WEB .
Наконец, Вы можете перейти к настройке Apache 2.4 . В папке WEB откройте папку Apache24 , а в ней папку conf . Внутри папки conf есть файл httpd.conf . Откройте его в текстовом редакторе. Нужно в файле httpd.conf указать, где располагается Apache . То есть нужно во всех местах добавить папку WEB перед Apache24 . Для этого нажмите Ctrl + F => Заменить . В строке Найти: напишите c:/ , а в строке Заменить на: напишите c:/WEB/ . После нажмите Заменить всё .


Далее опуститесь в самый низ файла и добавьте следующие 3 строчки:
LoadModule php7_module "c:/WEB/php/php7apache2_4.dll" AddHandler application/x-httpd-php .php
PHPIniDir "c:/WEB/php" PHP - файла php.ini .


После нажмите Ctrl + F и в поле Найти: напишите documentroot и нажмите Enter .


Но перед тем, как Вы что-то измените дальше, перейдите в папку WEB => Apache24 => htdocs и создайте здесь папку www . Затем поместите стандартный файл index.html в созданную папку www .
Возвращайтесь к текстовому документу и добавьте папку www в строчку DocumentRoot "c:/WEB/Apache24/htdocs" как показано на картинке ниже.


Далее нажмите Ctrl + F и в поле Найти: введите directoryindex . Нажмите Enter .


В строчке DirectoryIndex index.html допишем перед index.html index.php . То есть, когда Вы будете заходить на Ваш сайт, в первую очередь будет загружаться index.php .


Если Вы хотите использовать файл .htaccess , то нужно в строке AllowOverride None вместо None написать All .


Далее перейдите в папку WEB => php . Найдите файл php.ini-development . В его имени удалите -development , оставьте php.ini . Откройте файл php.ini в текстовом редакторе. Нажмите Ctrl + F и в поле Найти: введите extension_dir . Нажмите Enter .


Раскомментируйте строку ; extension_dir = "./" (удалите ; ) и укажите в какой папке будет работать php код. Далее в строке doc_root = укажите "c:/WEB/php/ext" .


После этого прокрутите файл немного вниз и раскомментируйте 2 верхние библиотеки, как показано на картинке ниже.


Теперь Вы можете заняться установкой самого Apache . Нажмите комбинацию клавиш Windows + R . После в поле Открыть: напишите cmd и нажмите ОК .
Далее напишите в командной строке c:\WEB\Apache24\bin\httpd.exe -k install .


Нажмите Enter и Apache 2.4 установится. Чтобы запустить Apache , перейдите в папку WEB => Apache24 => bin . Запустите ApacheMonitor.exe . Затем нажмите правой кнопкой мыши на иконку Apache в правом нижнем углу рабочего стола и нажмите Start .


Проверьте, работает ли Apache . Для этого откройте браузер, в адресной строке введите localhost и нажмите Enter . Если у Вас появилась надпись It works! , как на картинке ниже, то Вы всё сделали правильно.

Эта статья также доступна на следующих языках: Тайский

  • Next

    Огромное Вам СПАСИБО за очень полезную информацию в статье. Очень понятно все изложено. Чувствуется, что проделана большая работа по анализу работы магазина eBay

    • Спасибо вам и другим постоянным читателям моего блога. Без вас у меня не было бы достаточной мотивации, чтобы посвящать много времени ведению этого сайта. У меня мозги так устроены: люблю копнуть вглубь, систематизировать разрозненные данные, пробовать то, что раньше до меня никто не делал, либо не смотрел под таким углом зрения. Жаль, что только нашим соотечественникам из-за кризиса в России отнюдь не до шоппинга на eBay. Покупают на Алиэкспрессе из Китая, так как там в разы дешевле товары (часто в ущерб качеству). Но онлайн-аукционы eBay, Amazon, ETSY легко дадут китайцам фору по ассортименту брендовых вещей, винтажных вещей, ручной работы и разных этнических товаров.

      • Next

        В ваших статьях ценно именно ваше личное отношение и анализ темы. Вы этот блог не бросайте, я сюда часто заглядываю. Нас таких много должно быть. Мне на эл. почту пришло недавно предложение о том, что научат торговать на Амазоне и eBay. И я вспомнила про ваши подробные статьи об этих торг. площ. Перечитала все заново и сделала вывод, что курсы- это лохотрон. Сама на eBay еще ничего не покупала. Я не из России , а из Казахстана (г. Алматы). Но нам тоже лишних трат пока не надо. Желаю вам удачи и берегите себя в азиатских краях.

  • Еще приятно, что попытки eBay по руссификации интерфейса для пользователей из России и стран СНГ, начали приносить плоды. Ведь подавляющая часть граждан стран бывшего СССР не сильна познаниями иностранных языков. Английский язык знают не более 5% населения. Среди молодежи — побольше. Поэтому хотя бы интерфейс на русском языке — это большая помощь для онлайн-шоппинга на этой торговой площадке. Ебей не пошел по пути китайского собрата Алиэкспресс, где совершается машинный (очень корявый и непонятный, местами вызывающий смех) перевод описания товаров. Надеюсь, что на более продвинутом этапе развития искусственного интеллекта станет реальностью качественный машинный перевод с любого языка на любой за считанные доли секунды. Пока имеем вот что (профиль одного из продавцов на ебей с русским интерфейсом, но англоязычным описанием):
    https://uploads.disquscdn.com/images/7a52c9a89108b922159a4fad35de0ab0bee0c8804b9731f56d8a1dc659655d60.png