Прочее        24.03.2021   

Установка php 7 на windows 10. Как установить локальный сервер Apache с Php, MySQL, phpMyAdmin на компьютере с Windows

И описывает лишь отличительные моменты , которые касаются установки Apache24 и PHP7 на Windows. Описание установки СУБД MySQL остается прежним и не повторяется в этой инструкции.

Прежде чем продолжить чтение, обратите внимание на то, действительно ли вам необходимо устанавливать и настраивать всё это под Windows?Может быть Вам стоит обратить внимание на и не тратить свое время и нервы на настройку того же самого напрямую в Windows? В любом случае, прочтите статью про . Возможно она сэкономит вам не только время, но и здоровье.

Данная инструкция рассчитана на разработчиков с базовыми знаниями Apache и PHP. В данной инструкции будут описана только разница в установке Apache и PHP с основной инструкцией по установке PHP 5.6. Если Вы не в курсе, что такое WEB-сервер, http-протокол и интерпретатор PHP, то Вы всегда можете узнать об этом более подробно, прочитав документацию.

Я не буду отвечать в комментариях на вопросы, ответ на которые есть в этой или основной инструкциях, ссылка на основную инструкцию указана в первом абзаце, а так же на вопросы, которые касаются понимания работы Apache и PHP и уж тем более на вопросы по ошибкам в разработке. Для этого существуют соответствующие ресурсы, литература, форумы, курсы. Однако, Вы всегда можете задать любой интересующий Вас вопрос. Возможно, кто-то из сообщества сможет Вам помочь.

Итак, поехали!

Установка Apache 2.4 VC14

  1. Загружаем Apache 2.4 binaries VC14 под свою систему по ссылке http://www.apachelounge.com/download/ Качаем 64 разрядную версию сервера. На момент написания этих строк файл назывался так: httpd-2.4.17-win64-VC14.zip
  2. Если нужны какие-то дополнительные модули, их можно загрузить там же (для базовой установки нет необходимости)
  3. Загружаем и устанавливаем обновления Visual C++ Redistributable for Visual Studio 2015 с сайта Microsoft.
  4. Разархивируем содержимое папки Apache24 из скаченного архива в D:\USR\apache . Обратите внимание, что в D:\USR\apache нужно положить не папку Apache24 из архива, а ее содержимое. Инсталлировать ничего не требуется.
  5. В файле изменяем значение ServerRoot на «d:/USR/apache» (строка 37 ) и значение DocumentRoot Direcroty ) на «d:/USR/www» (строки 243 и 244 ). Так же следует раскомментировать строку 219 и изменить ее на: ServerName localhost:80
  6. Изменяем параметры хранения логов в том же файле (находим параметры и изменяем): ErrorLog "D:/USR/log/apache-error.log" CustomLog "D:/USR/log/apache-access.log" common
  7. Устанавливаем сервис Apache. Открываем командную строку от имени Администратора и вставляем туда следующую строку: D:\USR\apache\bin\httpd.exe -k install
  8. Следим за сообщениями об ошибках во время установки сервиса. Если все сделано верно, никаких ошибок быть не должно. Если у вас после выполнения строки не появилась снова командная строка, то вы что-то сделали неправильно. Просто воспользуйтесь функциями скопировать и вставить, чтобы не допускать ошибок при перепечатке.
  9. Создаем на рабочем столе ярлык для D:\USR\apache\bin\ApacheMonitor.exe и/или помещаем его в автозагрузку (для открытия окна автозагрузки в WIN8..10 необходимо нажать WIN+R, затем ввести shell:Startup и нажать ОК)
  10. Запускаем ApacheMonitor. В системном трее появится ярлык. Нажимаем на него левой кнопкой, выбираем Apache24 -> Start.
  11. В браузере заходим на http://localhost/ — должны увидеть It works!
  12. Если не увидели такой надписи, разбираемся, что пошло не так (читаем логи, гуглим, пытаемся самостоятельно разобраться с проблемой, раз уж решили разбираться в тонкостях работы веб-сервера)

Установка PHP 7

  1. Загружаем последнюю версию VC14 x64 Thread Safe по ссылке http://windows.php.net/download/ . Обратите внимание, что нужен именно VC14 и именно Thread Safe . Файл, который Вам нужен, скорее всего будет называться наподобие: php-7.0.0-Win32-VC14-x64.zip
  2. Извлекаем содержимое архива в D:\USR\php . Как в случае с Apache, инсталлировать ничего не требуется.
  3. В файл D:\USR\apache\conf\httpd.conf добавляем строки: LoadModule php7_module "d:/USR/php/php7apache2_4.dll" AddHandler application/x-httpd-php .php # Путь к файлу php.ini PHPIniDir "D:/USR/php"
  4. И изменяем значение параметра DirectoryIndex на index.html index.php (строка 278 )
  5. Используя ApacheMonitor перезапускаем Apache (Apache24 -> Restart)
  6. Заходим браузером http://localhost/index.php и убеждаемся, что PHP работает (в браузере будет вывод PhpInfo).
  7. Делаем копию шаблона конфигурационного файла D:\USR\php\php.ini-development с именем D:\USR\php\php.ini — это конфигурационный файл для РНР.
  8. Редактируем конфигурационный файл D:\USR\php\php.ini . Пользуясь поиском находим внутри файла, раскомментируем и изменяем параметры. Обратите внимание, что параметр extension определяет набор расширений РНР. Раскомментируйте те расширения, которые нужны Вам. В примере расширения, которые были нужны мне. Временную зону указывайте свою, а не мою: extension_dir = "D:/USR/php/ext" sys_temp_dir = "D:/USR/tmp" extension=php_curl.dll extension=php_gd2.dll extension=php_gettext.dll extension=php_mbstring.dll extension=php_mysqli.dll extension=php_openssl.dll date.timezone = Europe/Zaporozhye

    Если у Вас возникли проблемы с запуском curl, обратитесь к этой инструкции .

  9. Выполняем в командной строке php -m чтобы просмотреть список подключенных расширений.
  10. Перезапускаем Apache используя ApacheMonitor

Установка и настройка всего остального не изменилась. Обратитесь пожалуйста к по установке PHP 5.6 для получения подробной информации.

В статье описывается установка Apache 2.4 + PHP 5.6 + MySQL 5.6 на операционную систему Windows 7 / 8 / 8.1 / 10

Прежде чем продолжить чтение, обратите внимание на то, действительно ли вам необходимо устанавливать и настраивать всё это под Windows?Может быть Вам стоит обратить внимание на и не тратить свое время и нервы на настройку того же самого напрямую в Windows? В любом случае, прочтите статью про . Возможно она сэкономит вам не только время, но и здоровье.

Данная инструкция будет полезна начинающим WEB-разработчикам, которые собираются установить на своем ПК с ОС Windows WEB-сервер Apache с интерпретатором PHP последних версий. Конечно же, намного проще установить сборку, наподобие Denwer или прибегнуть к использованию инсталляторов и не париться по поводу настроек. Однако каждый WEB-разработчик обязан понимать процесс работы WEB-сервера, процесс его установки и настройки.

Если Вы хотите установить PHP 7, то обратитесь пожалуйста к статье.

Если в процессе сборки сервера по этой инструкции Вы столкнулись с проблемами и все еще считаете себя WEB-разработчиком, то будет правильным шагом разобраться в возникших проблемах, а не писать в комментарии что инструкция говно. Инструкция рабочая. Проверено временем и сотнями инсталляций. Будьте внимательней при выполнении простых шагов. Выполнение шагов вручную и разбор ситуаций, если не заработало, добавит Вам skill как разработчику. Если Вы не WEB-разработчик и не планируете им быть, то подыщите простой способ установки в интернете - данная инструкция не для Вас.

Обратите внимание, что под Windows XP данные версии VC11 запустить будет невозможно (или крайне затруднительно).

Подготовительные работы

Убедитесь, что у вас именно Windows 7 или новее. Если у Вас Windows XP, данная инструкция не поможет Вам, так как описанная здесь версия Apache не работает под Windows XP.

Удалите все WEB-серверы, которые устанавливали до этого, зайдите в службы и убедитесь, что там нет служб Apache или IIS. Если у вас уже установлен какой-либо веб-сервер, второй параллельно скорее всего не заработает вовсе.

Если у Вас есть Скайп, обязательно отключите в настройках использование 80 порта. В конечном итоге Вы должны убедиться, что ни одна служба не использует 80й порт.

Для работы очень желательно иметь файловый менеджер, позволяющий создавать файлы с любыми расширениями, либо, что еще лучше, редактор кода, наподобие Sublime Text или Notepad++ или полноценную IDE.

Структура папок может быть различной, однако данная инструкция написана под определенную структуру и, если ей следовать, всё гарантированно заработает.
Перед тем как начать, создайте на диске D папку USR , внутри которой создайте 5 подпапкок: apache , php , tmp , www , log . Именно так. Без указания номеров версий.

В каталоге www создаем индексные файлы (при помощи файлового менеджера или редактора кода), которые будут нужны для проверки того, что все работает:

  • index.html с содержимым: It works!
  • index.php с содержимым:

Если файлового менеджера / редактора кода / IDE нет, скачайте архив с этими двумя файлами . Но, если Вы считаете себя WEB-разработчиком, Вы должны обзавестись инструментами.

В системную переменную PATH добавляем:

;D:\USR\apache;D:\USR\apache\bin;D:\USR\php;

Замечания!

Приведенные в примерах конфигурационных файлов номера строк могут отличаться для других версий apache и php.
Все команды, включая редактирование файлов, должны осуществляться от имени Администратора.

Установка Apache 2.4

Хотя для простой разработки на PHP и нет необходимости в отдельном WEB-сервере (в PHP встроен собственный WEB-сервер, которого почти всегда достаточно для разработки одного проекта), все же рекомендуется произвести установку и настройку WEB-сервера Apache, хотя бы потому, что программист обязан знать эти тонкости. В конечном итоге придется работать с WEB-сервером и придется разбираться с его конфигурацией. Так что приступим.

  1. Загружаем Apache 2.4 binaries VC11 под свою систему по ссылке http://www.apachelounge.com/download/VC11/ Скорее всего у Вас 64 разрядная ОС, поэтому Вам понадобится файл с именем, наподобие httpd-2.4.xx -win64-VC11.zip
  2. Если нужны какие-то дополнительные модули, их можно загрузить там же (для базовой установки нет необходимости)
  3. Разархивируем содержимое папки Apache24 из скаченного архива в D:\USR\apache . Обратите внимание, что в D:\USR\apache нужно положить не папку Apache24 из архива, а ее содержимое. Инсталлировать ничего не требуется.
  4. В файле изменяем значение ServerRoot на "d:/USR/apache" (строка 37 ) и значение DocumentRoot Direcroty ) на "d:/USR/www" (строки 242 и 243 ). Так же следует раскомментировать строку 218 и изменить ее на: ServerName localhost:80
  5. Изменяем параметры хранения логов в том же файле (находим параметры и изменяем): ErrorLog "D:/USR/log/apache-error.log" CustomLog "D:/USR/log/apache-access.log" common
  6. Устанавливаем сервис Apache (от имени Администратора). Открываем командную строку от имени Администратора и вставляем туда следующую строку: D:\USR\apache\bin\httpd.exe -k install
  7. Следим за сообщениями об ошибках во время установки сервиса. Если все сделано верно, никаких ошибок быть не должно. Если у вас после выполнения строки не появилась снова командная строка, то вы что-то сделали неправильно. Просто воспользуйтесь функциями скопировать и вставить, чтобы не допускать ошибок при перепечатке.
  8. Создаем на рабочем столе ярлык для D:\USR\apache\bin\ApacheMonitor.exe и/или помещаем его в автозагрузку (для открытия окна автозагрузки в WIN8 необходимо нажать WIN+R, затем ввести shell:Startup и нажать ОК)
  9. Запускаем ApacheMonitor. В системном трее появится ярлык. Нажимаем на него левой кнопкой, выбираем Apache24 -> Start.
  10. В браузере заходим на http://localhost/ — должны увидеть It works!
  11. Если не увидели такой надписи, разбираемся, что пошло не так (читаем логи, гуглим, пытаемся самостоятельно разобраться с проблемой, раз уж решили разбираться в тонкостях работы веб-сервера)

Установка PHP 5.6

  1. Загружаем последнюю версию VC11 x86 Thread Safe или VC11 x64 Thread Safe по ссылке http://windows.php.net/download/ . Обратите внимание, что нужен именно VC11 и именно Thread Safe . Разрядность должна быть как у Apache. Файл, который Вам нужен, скорее всего будет называться наподобие: php-5.6.11-Win32-VC11-x86.zip или php-5.6.11-Win32-VC11-x64.zip
  2. Извлекаем содержимое архива в D:\USR\php . Как в случае с Apache, инсталлировать ничего не требуется.
  3. В файл D:\USR\apache\conf\httpd.conf добавляем строки: LoadModule php5_module "d:/USR/php/php5apache2_4.dll" AddHandler application/x-httpd-php .php # Путь к файлу php.ini PHPIniDir "D:/USR/php"
  4. И изменяем значение DirectoryIndex на index.html index.php (строка 276 )
  5. Используя ApacheMonitor перезапускаем Apache (Apache24 -> Restart)
  6. Заходим браузером http://localhost/index.php и убеждаемся, что PHP работает.
  7. Делаем копию файла D:\USR\php\php.ini-development с именем D:\USR\php\php.ini
  8. Пользуясь поиском находим, раскомментируем и изменяем параметры: extension_dir = "D:/USR/php/ext" sys_temp_dir = "D:/USR/tmp" extension=php_mysql.dll extension=php_mysqli.dll extension=php_openssl.dll date.timezone = Europe/Zaporozhye
  9. Выполняем в командной строке php -m чтобы просмотреть список подключенных модулей.
  10. Перезапускаем Apache используя ApacheMonitor

Виртуальные хосты в Apache

  1. Если на компьютере производится отладка нескольких проектов, то могут понадобиться виртуальные хосты (сайты). На примере будем рассматривать два виртуальных хоста: s1.localhost и s2.localhost . Для удобства будем создавать папки с такими же названиями, что совсем не обязательно в реальной системе.
  2. Следует учесть, что при использовании виртуальных хостов, параметр DocumentRoot конфигурационного файла Apache более не имеет смысла. Основным хостом сервера (который будет доступен по адресу http://localhost/) теперь является первый виртуальный хост в конфигурационном файле виртуальных хостов!
  3. Для начала необходимо добавить в файл c:\Windows\System32\drivers\etc\hosts строки: 127.0.0.1 s1.localhost 127.0.0.1 s2.localhost

    Делать это нужно от имени Администратора. Желательно после этого перезагрузиться, но на практике этого не требовалось. Если изменить файл не удается (права доступа), вы можете скопировать его на рабочий стол, изменить, а затем скопировать обратно.

  4. Создаем папки для виртуальных хостов D:\USR\www\s1.localhost и D:\USR\www\s2.localhost , в которых будут располагаться файлы. В каждой из папок создаем файл index.html с содержимым S1 и S2 соответственно (для контроля того, что все работает как нужно)
  5. Затем создаем папки для логов: D:\USR\log\s1.localhost и D:\USR\log\s2.localhost - тут будут храниться логи каждого из сайтов. Вообще-то, логи можно хранить в одной папке, но я привык делать так - мне так более удобно.
  6. Далее необходимо включить поддержку виртуальных хостов. В файле D:\USR\apache\conf\httpd.conf раскомментировать строку Include conf/extra/httpd-vhosts.conf
  7. Далее редактируем файл d:\USR\apache\conf\extra\httpd-vhosts.conf — он должен выглядеть так (каждому виртуальному хосту свой блок VirtualHost): ServerAdmin [email protected] DocumentRoot "D:/USR/www/s1.localhost" ServerName s1.localhost ServerAlias www.s1.localhost ErrorLog "D:/USR/log/s1.localhost/error.log" CustomLog "D:/USR/log/s1.localhost/access.log" common ServerAdmin [email protected] DocumentRoot "D:/USR/www/s2.localhost" ServerName s2.localhost ServerAlias www.s2.localhost ErrorLog "D:/USR/log/s2.localhost/error.log" CustomLog "D:/USR/log/s2.localhost/access.log" common
  8. Первый виртуальный хост s1.localhost теперь будет основным хостом системы, т.к. его блок следует первым в конфигурационном файле, т.е. будет доступен при входе на

В этой статье я опишу процесс установка PHP 7 в Ubuntu из PPA-репозитория. Эта заметка будет написана в формате небольшого мануала, поэтому я постараюсь кратко изложить техническую техническую сторону процесса. Дополнительно, в предыдущих моих постах вы можете прочить как установить PHP 7 в и . А еще есть описание процесса из исходников в Debian, это вариант более трудоемкий, но зато имеет очевидные преимущества с точки зрения оптимизации.

Установка PHP 7 в Ubuntu

На данный момент PHP 7 официально не доступен для установки в Ubuntu. Но мы можем установить PHP 7 в Ubuntu используя PPA — персональный репозиторий apt, размещенный на сайте Launchpad . С помощью PPA сторонние разработчики имеют возможность создавать и распространять пакеты для Ubuntu за пределами официальных каналов.

С помощью команды ниже добавьте репозиторий PHP 7 в Ubuntu:

Add-apt-repository ppa:ondrej/php

После установки PPA, обновите локальный кэш пакетов:

Apt-get update

Теперь у нас есть доступ к новым пакетам, мы можем выполнить установку PHP 7 в Ubuntu. В этой статье я опишу процесс настройки PHP 7 для использования его в связке с веб-сервером Nginx. Для этого нам потребуется установить PHP-FPM:

Apt-get install php7.0-fpm

Если ваше скрипты используют в процессе работы MySQL, выполните команду:

Apt-get install php7.0-mysql

Настройка PHP 7 для работы с Nginx

Процессы PHP 7 и Nginx взаимодействуют между собой с помощью unix-сокета. По умолчанию в PHP 7 unix-сокет имеет следующее расположение:

/var/run/php/php7.0-fpm.sock

Откройте конфигурационный файл default в текстовом редакторе nano:

Nano /etc/nginx/sites-enabled/default

Полностью удалите все содержимое файла default , а заетем скопируйте строки из примера ниже:

Server { listen 80 default_server; root /var/www/html; index index.php index.html; server_name _; location / { try_files $uri $uri/ /index.php?q=$uri&$args; } location ~ \.php$ { try_files $uri = 404; fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }

Закройте файл и сохраните изменения. Чтобы использовать новые настройки необходимо перезапустить Nginx:

Nginx -t service nginx restart

Проверка работы PHP 7

Чтобы проверить правильность установки и настройки PHP 7 в Ubuntu, в коневом каталоге сайта создайте файл:

Nano /var/www/html/info.php

Следующего содержания:

Откройте файл в вашем браузере:

Http://server_ip/info.php

Если вы правильно установили и настроили PHP 7 в Ubuntu, вы должны увидеть страницу содержащую информацию о его конфигурации.

На 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, а мы будем
стараться проблемы решать, а пожелания реализовывать.

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

Для загрузки 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! , как на картинке ниже, то Вы всё сделали правильно.