- Как подключить PHP к Apache на Windows
- Настройка PHP в Windows
- Подключение PHP к Apache
- Настройка PHP
- Как запустить Apache на Windows
- Настройка Apache на Windows
- Как установить на Windows Apache 2.4 и PHP 7
- Установка PHP 7 в Windows
- Настройка Apache для использования PHP
- Включение mod_rewrite для перезаписи URL-адресов
- Настройка PHP с MySQL
- Как проверить, установлен ли PHP
- Регистрация службы Apache
Как подключить PHP к Apache на Windows
Начнём с того, что скачаем самую новую версию PHP для Windows с официального сайта: https://windows.php.net/download/
Там несколько вариантов, которые различаются:
- версией (например, 7.2, 7.1, 7.0, 5.6)
- битностью (64 и 32)
- Thread Safe или Non Thread Safe
Выбирайте самую последнюю версию, с той битностью, какая у вашего сервера. Т.е. если у вас Apache 64-битный, то PHP также должен быть 64-битным. Всегда выбирайте Thread Safe версию.
Для каждого файла имеется две ссылки:
Выбирайте Zip, поскольку отладочный пакет только для тех, кто действительно знает, зачем он им нужен. Здесь имеется ввиду не отладка PHP-скриптов, а отладка самого интерпретатора PHP.
Настройка PHP в Windows
Настройка выполняется в два этапа:
- подключение PHP к Apache
- изменение настроек самого PHP (какие расширения включены, сколько выделено памяти PHP скриптам и т.д.)
Подключение PHP к Apache
Для подключения PHP к Apache откройте конфигурационный файл веб-сервера, который расположен по следующему пути: Apache24\conf\httpd.conf (в папке сервера, в подпапке conf, файл httpd.conf).
В этот файл добавьте три строки, две из которых нужно откорректировать:
В первой строке вместо C:/путь/до/PHP напишите точный путь до папки, куда вы распаковали файлы PHP. В третьей строке C:/путь/до/PHP/php8apache2_4.dll также откорректируйте путь, указав расположение PHP папки.
К примеру, я распаковал PHP в папку C:/Server/bin/PHP, тогда мои настройки следующие:
Если папка PHP находится в корне диска C, тогда эти строки должны быть такими:
Чтобы изменения вступили в силу, перезапустите веб-сервер или компьютер.
Настройка PHP
В папке PHP найдите файл php.ini-development и переименуйте его в php.ini – это нужно сделать обязательно, иначе PHP не будет видеть сделанные настройки.
Открываем файл php.ini любым текстовым редактором, ищем строчку
и заменяем её на
Обратите внимание, что вам нужно скорректировать строку C:\путь\до\PHP\ext\, указав конкретный путь до папки, где размещены файлы PHP.
У PHP (как и у Apache) имеется много расширений. Если вы не знаете, какое расширение для чего нужно, то как минимум два варианта:
- начать изучить предназначение каждого расширения и подключить только те, которые вам действительно нужны;
- подключить самые важные расширения, чтобы любые сайты и движки работали без ошибок.
Чтобы подключить большую часть расширений, найдите группу строк:
и замените её на:
теперь раскомментируйте эту группу строк:
Мы подключили самые востребованные расширения, чтобы работало как можно больше функций PHP.
Как запустить Apache на Windows
Веб-сервер Apache – это служба, которая работает в фоне и у которой нет графического интерфейса. Эта служба устанавливается и запускается в командной строке.
Если вам нужен только веб-сервер без дополнительных модулей, то вы можете ограничиться базовой настройкой.
Настройка Apache на Windows
На самом деле, базовая настройка веб-сервера крайне проста – необходимо только правильно указать путь до папки, в которой помещены веб-сайты – этого будет достаточно для запуска веб-сервера.
Кстати, в конфигурационном файле уже прописаны значения многих параметров по умолчанию. К примеру, по умолчанию корневой директорией является c:/Apache24. Поэтому если папку Apache24 из скаченного архива вы разархивируете в корень диска C, то вы можете вообще без настройки запустить веб-сервер следующей командой:
И по адресу http://localhost увидите стандартную страницу веб-сервера, которая сообщает, что он работает:
Кстати, для открытия командной строки в Windows используйте сочетание клавиш Win+x и в открывшемся окне выберите Windows PowerShell (администратор).
Настройка веб-сервера выполняется посредством редактирования текстового файла, который размещён в папке Apache24\conf\ и называется httpd.conf.
Этот файл состоит из директив с определёнными значениями. Эти директивы регулируют поведение веб-сервера. Но больше чем директив в этом файле комментариев – они начинаются с решётки (#) – комментарии нужны для человека, который настраивает веб-сервер. Сам сервер строки начинающиеся с # просто игнорирует. Т.е. вы можете просто удалить их.
Этот файл содержит не все возможные директивы – многие из них здесь отсутствуют, поскольку не требуются для большинства задач. Даже в этой заметки мы рассмотрим не все доступные в файле настройки – если описание чего-то пропущено, значит просто не нужно это трогать.
Как уже было сказано, важно установить путь до папки с веб-сайтами. Если она установлена неправильно (например, отсутствует на компьютере), то веб-сервер не запуститься.
Думаю, вы уже обратили внимание, что веб-сервер отличается от других программ для Windows. Если вы знакомы с Linux или другими аналогичными операционными системами, вам должна быть знакома работа в консоли и редактирование текстовых файлов. Пути до файлов тоже записываются не совсем обычно для Windows. Сейчас главное уяснить два правила:
- используйте абсолютные пути до файла (которые начинаются с буквы диска, затем следуют все вложенные папки), а не относительные – у сервера свои правила интерпретации относительных путей, поэтому вы можете не понять друг друга;
- всегда используйте прямые слеши, а не обратные (т.е., «c:/apache» вместо «c:\apache»).
Итак, откройте файл Apache24\conf\httpd.conf любым текстовым редактором (хоть Блокнотом) и вот мы уже готовы к настройке веб-сервера.
Первой идёт директива ServerRoot – это верхняя директория дерева, в которой хранятся файлы конфигурации сервера и журналов. Не добавляйте слэш на конец пути папки.
Значение по умолчанию устанавливается двумя директивами:
Первая директива присваивает значение переменной SRVROOT, которое по умолчанию «c:/Apache24». Вторая директива присваивает значение переменной $ настройке ServerRoot.
ServerRoot — это та папка, в которой находятся все файлы веб-сервера – поменяйте значение на то, куда вы распаковали файлы веб-сервера. Это можно сделать используя конструкцию из двух переменных:
Либо если вы не планируете снова использовать переменную $
Директива Listen позволяет вам привязать Apache к определённому IP адресу и/или порту. Значение по умолчанию:
Оно означает, прослушивать 80 порт на любом IP адресе (т.е. любом сетевом интерфейсе), доступном в вашей системе. Вы можете указать конкретный IP адрес, который нужно прослушивать и, следовательно, на запросы с которого отвечать:
Можно указать несколько портов:
Или несколько IP и портов:
Вы можете использовать любые сочетания, главное правило – порт на указанном интерфейсе (IP) не должен быть занят другой программой.
Значение по умолчанию вполне подходит для локального веб-сервера – т.е. здесь можно просто ничего не менять.
Далее идёт большой список модулей. Некоторые их них отключены (строки закомментированы, т.е. начинаются с #), а некоторые включены.
На самом деле, всё действительно необходимое уже включено – и для работы большинства веб-сайтов менять ничего не нужно – особенно на локальном веб-сервере. Но есть одно исключение – модуль mod_rewrite по умолчанию отключён. Это очень популярный модуль, например, все ЧПУ (понятные для человека адреса страниц) делаются с помощью него. Вы можете его включить, для этого достаточно найти строку:
и раскомментировать её, т.е. заменить на:
Директива ServerAdmin содержит e-mail администратора, этот адрес электронной почты пишется на некоторых страницах веб-сервера, которые автоматически генерируются в случае возникновения ошибок. Подразумеваются, что по этому адресу можно связаться с администратором.
Директива ServerName – это то, как сервер сам себя идентифицирует (называет). Для локального веб-сервера поменяйте строку
запрещает доступ к файловой системе веб-сервера (пока это не разрешено явно) и запрещает использовать файлы .htaccess (пока это не разрешено явно).
Далее идёт довольно объёмная конструкция, но если удалить из неё комментарии, то получается следующее:
DocumentRoot – это директория, где по умолчанию находятся сайты. По умолчанию именно там ищутся все пришедшие на веб-сервер запросы. Укажите здесь путь до корневой папки в веб-документами. Конечный слэш писать не нужно.
Конструкция … нам уже встречалась. Но здесь указывается конкретная папка, для который делаются настройки. Эти настройки перезаписывают общие, которые указаны ранее.
Пути до папок в DocumentRoot и Directory не забудьте поменять на свои!
Обратите внимание, что для установки настроек вновь используется переменная $ , значение которой было присвоено в самом начале. Если использовать синтаксис с $ , то корневая папка документов должна обязательно находится в корневой папке сервера. Я настраиваю сервер по-другому — у меня исполнимые файлы отделены от файлов сайтов, поэтому вместо переменной, можно просто прописать пути до нужной папки с сайтами:
Директива Options включает разные опции. По умолчанию указаны опции Indexes и FollowSymLinks. Первая (Indexes) означает показывать индексные файлы, если запрос не содержит имени файла. Допустим, пользователь открывает адрес http://localhost/site/, то если в этой папке есть индексный файл (например, index.html или index.php), то будет показан этот файл. Понятно, что если сделан запрос на определённый файл, например, http://localhost/site/page.html, то будет показана запрошенная страница.
Вторая опция (FollowSymLinks) означает следовать символьным ссылкам. Это что-то вроде ярлыков в Windows. В Linux с помощью таких ссылок можно собрать в одном сайте файлы, размещённые в различных папках файловой системы. На самом деле, для начинающих администраторов сервера это не очень нужно.
Директива AllowOverride установлена на None, это означает запрет использовать файлы .htaccess. На своём сервере я разрешаю файлы .htaccess (нужны для mod_rewrite, ограничения доступа), поэтому я заменяю её значение на All, получается так:
А директива Require all granted открывает посетителям доступ для веб-документов.
Я уже упомянул индексные файлы, перечень индексных файлов устанавливается конструкцией:
Там всего один файл — index.html. Можно дописать любое количество своих собственных. Я меняю:
Другие настройки обычно не требуется менять для локального веб-сервера.
Как установить на Windows Apache 2.4 и PHP 7
Проект Apache не предоставляет бинарные версии программного обеспечения, а только исходный код. Тем не менее, их можно получить на сторонних сайтах:
Загрузите 32-разрядную версию Apache Windows ( httpd-2.4.20-win32-VC14.zip ) или 64-разрядную версию ( httpd-2.4.20-win64-VC14.zip ). Проверьте, установлена ли у вас 64-разрядная версия ОС . Чтобы определить это, можно использовать msinfo32.exe . Этот инструмент помогает в сборе информации о компьютере, в диагностике проблем или его можно использовать для доступа к другим инструментам.
Чтобы запустить его, выполните команду Выполнить> msinfo32> нажмите Enter .
После того, как найдете нужную версию, скачайте Zip-архив , а затем извлеките его содержимое в папку C:Apache24 .
Перед запуском сервера Apache , если нужно изменить порт прослушивания на 8181 :
- Откройте в текстовом редакторе файл C:Apache24confhttpd.conf ;
- Найдите следующую строку: Listen 80 ;
- И измените ее на: Listen 8181 .
Теперь можно запустить сервер Apache Windows 7 :
Откройте командную строку от имени администратора и перейдите в подкаталог bin :
Введите httpd.exe и нажмите Enter .
Если на экране появилось диалоговое окно с сообщением об отсутствии файла MSVCR140.dll , необходимо установить Visual C ++ Redistributable для Visual Studio 2015 ( выберите vc_redist.x64.exe , если у вас установлена 64-разрядная версия Windows ).
Теперь откройте браузер и введите в адресную строку http://localhost:8181 , чтобы запустить демонстрационный сайт.
Установка PHP 7 в Windows
PHP 7 — важное обновление для серверного языка веб-разработки PHP . Загрузите zip-архив VC14 x64 Thread Safe (2016-Apr-29 00:38:19) . Если вы загрузили 32-разрядную версию Apache , необходимо установить PHP x86 .
Создайте папку с именем « php7 », извлеките в нее содержимое архива php-7.0.6-Win32-VC14-x64.zip , а затем поместите папку в корень диска C:
Настройка Apache для использования PHP
Откройте файл конфигурации установки Windows Apache C:Apache24confhttpd.conf .
Скопируйте следующие строки в начало файла:
- AddHandler application/x-httpd-php.php ;
- AddType application/x-httpd-php .php .html ;
- LoadModule php7_module «c:/php7/php7apache2_4.dll» ;
- PHPIniDir «c:/php7» .
В разделе добавьте строку index.php и поместите ее перед index.html :
Сохраните файл Apache PHP Windows . Теперь переименуйте файл C:php7php.ini-development в C:php7php.ini.
Включение mod_rewrite для перезаписи URL-адресов
Откройте файл конфигурации Apache C:Apache24confhttpd.conf ;
Найдите в нем строку #LoadModule rewrite_module modules/mod_rewrite.so и удалите символ хеш «#» ;
Найдите все вхождения строки « AllowOverride None » и измените их на « AllowOverride All» .
Настройка PHP с MySQL
Отредактируйте файл php.ini и раскомментируйте каталог расширений. Удалите символ « ; » в начале строк:
Активируйте следующие строки, это даст возможность запуска модулей MySQL :
А также приведенные ниже строки, если вы используете установку Apache PHP MySQL Window s в среде разработки:
Раскомментируйте error_log , чтобы включить ведение журнала файлов:
ВАЖНО! Установите PATH для Windows , чтобы найти PHP
- Кликните правой кнопкой мыши на ярлыке Мой компьютер — Свойства — Дополнительно — Переменные среды ;
- В разделе « Системные переменные » найдите пункт « Путь », кликните по нему и выберите « Изменить »;
- Добавьте в конце путь к папке php ( обязательно после точки с запятой «;» ). Например: « ;C:php7 «;
- Нажмите « ОК ».
Как проверить, установлен ли PHP
Создайте файл по адресу C:Apache24htdocsphpinfo.php и добавьте в него следующий код:
Перезапустите Apache Windows , а затем в браузере перейдите по адресу http://localhost:8181/phpinfo.php . На этой странице должна отобразиться информация об установленной версии PHHP .
Регистрация службы Apache
Если нужно зарегистрировать Apache как службу Windows , откройте командную строку и введите:
Если вы не хотите, чтобы Apache запускался автоматически при запуске / перезагрузке системы, введите: