Содержание
- Шаг 1: Скачивание и распаковка файлов
- Шаг 2: Изменение конфигурационного файла
- Шаг 3: Первый запуск локального веб-сервера
- Вопросы и ответы
В этой статье мы разберем только основные принципы установки и первого запуска веб-сервера Apache на компьютере под управлением Windows. Учитывайте, что все остальные действия, такие как: установка PHP, подключение MySQL, добавление других необходимых компонентов для локального сервера, придется выполнять вручную, из-за чего могут изменяться настройки Apache. Если во время редактирования глобальных параметров возникнут проблемы, не стесняйтесь обращаться к официальной документации и искать в поисковике решение ошибок по их кодам.
Шаг 1: Скачивание и распаковка файлов
Apache для Windows распространяется в виде ZIP-архива, в котором находятся все нужные файлы. Установка через Терминал, как это осуществляется в дистрибутивах Linux, в этом случае недоступна, поэтому для получения файлов выполните следующие действия:
Скачать Apache с официального сайта
- Кликните по кнопке выше, чтобы перейти на официальный сайт веб-сервера, где нажмите по ссылке с названием последней доступной версии Apache.
- Вы окажетесь на странице описания версии, после чего выберите «Files for Microsoft Windows».
- В разделе «Downloading Apache for Windows» нажмите на ссылку «Apache Lounge».
- Выберите версию для разрядности своей операционной системы и начните загрузку.
- Пока файлы скачиваются, создайте папку, куда будут помещены все элементы, связанные с веб-сервером. Мы выбрали для этого системный раздел жесткого диска, создали папку «Server», а в ней — «Bin». Это стандартные названия каталогов, поэтому при редактировании конфигурационного файла будем учитывать именно данное расположение.
- Перетащите папку «Apache24» из скачанного архива в созданный ранее каталог «Bin».
Шаг 2: Изменение конфигурационного файла
Конфигурация локального веб-сервера, установленная по умолчанию, не подходит для его нормального запуска, чтобы проверить работу и подключить остальные компоненты. Связано это с изменением пути расположения файлов и другими параметрами, влияющими на старт программы. Измените их, выполнив представленные далее шаги.
- Перейдите по пути
C:\Server\bin\Apache24\conf\
. - Дважды кликните по файлу «httpd.conf» для его открытия.
- Если у вас есть продвинутый текстовый редактор, выберите его для просмотра файла конфигурации. В противном случае используйте стандартный «Блокнот».
- В документе найдите строку
Define SRVROOT "c:/Apache24"
. - Замените ее на
Define SRVROOT "c:/Server/bin/Apache24"
, чтобы указать новый путь к файлам. Учитывайте, что в строке мы указали созданный ранее путь. Если у вас он отличается, поменяйте выражение в кавычках. - Далее найдите строку
#ServerName www.example.com:80
, которая по умолчанию заключена в комментарий и неактивна. - Измените ее на
ServerName localhost
, указав тем самым локальный адрес, который в дальнейшем и будет использоваться для проверки веб-сервера. - Отыщите строки
DocumentRoot "${SRVROOT}/htdocs"
и<Directory "${SRVROOT}/htdocs">
, которые отвечают за расположение связанных с сервером файлов. - Замените их на
DocumentRoot "c:/Server/data/htdocs"
и<Directory "c:/Server/data/htdocs">
. - Сейчас параметр
DirectoryIndex
имеет только значениеindex.html
, поэтому его тоже нужно найти и отредактировать. - Добавьте еще несколько доступных форматов файлов, чтобы в итоге строка обрела вид
DirectoryIndex index.php index.html index.htm
. - Для строки
AllowOverride None
поменяйте состояние наAll
, удалив предыдущее выражение. - Осталось только найти
#LoadModule rewrite_module modules/mod_rewrite.so
и убрать значок #, активировав тем самым строку. - В итоге она должна отображаться так, как это показано на следующем скриншоте.
- Если с поиском конкретных строк у вас возникают проблемы, используйте сочетание клавиш Ctrl + F, чтобы вызвать инструмент «Найти» и вписать там необходимое выражение.
- Перед выходом не забудьте сохранить изменения в конфигурационном файле.
Шаг 3: Первый запуск локального веб-сервера
Приступим к первому запуску локального веб-сервера Apache для проверки его работоспособности. Надо это для того, чтобы при дальнейшей настройке у вас не возникло серьезных неполадок, на решение которых потратится много времени.
- Щелкните правой кнопкой мыши по меню «Пуск» и из появившегося меню выберите пункт «Windows PowerShell (администратор)».
- Введите команду
c:\Server\bin\Apache24\bin\httpd.exe -k install
и нажмите Enter для ее активации. Она установит компоненты Apache и подготовит их к работе. - После получения информации об успешной установке сервисов переходите к следующему шагу.
- Запуск веб-сервера осуществляется через команду c
:\Server\bin\Apache24\bin\httpd.exe -k start
. - Появится оповещение Безопасности Windows, которое следует подтвердить, нажав «Разрешить доступ».
- Откройте любой браузер и перейдите по адресу
http://localhost/
. Если на странице появилась надпись «Index of /», значит, все действия выполнены правильно. - При получении ошибки в консоли, свидетельствующей об отсутствии необходимых папок, перейдите в каталог «Server», создайте там директорию «data» с подпапкой «htdocs».
Еще статьи по данной теме:
Помогла ли Вам статья?
Оглавление
1. Веб-сервер на Windows
2. Как установить Apache на Windows
3. Как установить PHP на Windows
4. Настройка PHP 8
5. Как установить MySQL в Windows
6. Как установить phpMyAdmin в Windows
Заключение
Веб-сервер — это программа, которая предназначена для обработки запросов к сайтам и отправки пользователям страниц веб-сайтов. Самый популярный пример веб-сервера это Apache.
PHP — это язык программирования. Также называется среда для выполнения скриптов, написанных на PHP. В операционной системе, в том числе и Windows, PHP может быть установлен самостоятельно, без веб-сервера. В этом случае программы (скрипты) на PHP можно запускать из командной строки. Но веб-приложения очень часто используют PHP, данный интерпретатор стал, фактически, стандартом веб-серверов и поэтому они почти всегда устанавливаются вместе.
MySQL — это система управления базами данных (СУБД). Это также самостоятельная программа, она используется для хранения данных, поиска по базам данных, для изменения и удаления данных. Веб-приложения нуждаются в постоянном хранилище, поэтому для веб-сервера дополнительно устанавливается и СУБД. Кстати, вполне возможно, что вы слышали про MariaDB — это тоже СУБД. Первой появилась MySQL, а затем от неё ответвилась MariaDB. Для веб-приложений обе эти СУБД являются взаимозаменяемыми, то есть никакой разницы нет. В этой инструкции я буду показывать установку на примере MySQL, тем не менее если вы хотите попробовать новую MariaDB, то смотрите статью «Инструкция по установке веб-сервера Apache c PHP, MariaDB и phpMyAdmin в Windows».
Что касается phpMyAdmin, то это просто скрипт на PHP, который предназначен для работы с базами данных — наглядно выводит их содержимое, позволяет выполнять в графическом интерфейсе такие задачи как создавать базы данных, создавать таблицы, добавлять, изменять и удалять информацию и т. д. По этой причине phpMyAdmin довольно популярен, хотя и не является обязательной частью веб-сервера.
Особенность Apache и других компонентов веб-сервера в том, что их корни уходят в Linux. И эти программы применяют в своей работе основные концепции этой операционной системы. Например, программы очень гибки в настройке — можно выполнить установку в любую папку, сайты также можно разместить в любой папке, в том числе на другом диске, не на том, где установлен сам веб-сервер. Даже файлы журналов можно вынести на третий диск и так далее. У веб-сервера много встроенных модулей — можно включить или отключить их в любом сочетании, можно подключить внешние модули. Можно создать много сайтов на одном веб-сервере и для каждого из них установить персональные настройки. Но эта гибкая настройка выполняется через текстовые файлы — именно такой подход (без графического интерфейса) позволяет описать любые конфигурации
Не нужно этого боятся — я расскажу, какие файлы нужно редактировать и что именно в них писать.
Мы не будем делать какие-то комплексные настройки — наша цель, просто установить веб-сервер на Windows. Тем не менее было бы странно совсем не использовать такую мощь в настройке. Мы разделим сервер на две директории: в первой будут исполнимые файлы, а во второй — данные (файлы сайтов и баз данных). В будущем, когда возникнет необходимость делать резервные копии информации или обновлять веб-сервер, вы поймёте, насколько удобен этот подход!
Мы установим сервер в отдельную директорию. Для этого в корне диска C:\ создайте каталог Server. В этом каталоге создайте 2 подкаталога: bin (для исполнимых файлов) и data (для сайтов и баз данных).
Перейдите в каталог data и там создайте подпапки DB (для баз данных) и htdocs (для сайтов).
Перейдите в каталог C:\Server\data\DB\ и создайте там пустую папку data.
Для работы всех компонентов веб-сервера необходим файл «Visual C++ Redistributable for Visual Studio 2015-2022» — это официальный файл от Microsoft. Чтобы его скачать перейдите по ссылке. После скачивания, запустите этот файл и выполните установку.
Подготовительные действия закончены, переходим к установке компонентов веб-сервера.
Как установить Apache на Windows
Перейдите на сайт apachelounge.com/download и скачайте .zip архив с веб-сервером:
Распакуйте папку Apache24 из этого архива в C:\Server\bin\.
Перейдите в каталог C:\Server\bin\Apache24\conf\ и откройте файл httpd.conf любым текстовым редактором.
В нём нам нужно заменить ряд строк.
Меняем
Define SRVROOT "c:/Apache24"
на
Define SRVROOT "c:/Server/bin/Apache24"
меняем
#ServerName www.example.com:80
на
ServerName localhost
меняем
DocumentRoot "${SRVROOT}/htdocs" <Directory "${SRVROOT}/htdocs">
на
DocumentRoot "c:/Server/data/htdocs" <Directory "c:/Server/data/htdocs">
меняем
DirectoryIndex index.html
на
DirectoryIndex index.php index.html index.htm
меняем
# AllowOverride controls what directives may be placed in .htaccess files. # It can be "All", "None", or any combination of the keywords: # AllowOverride FileInfo AuthConfig Limit # AllowOverride None
на
# AllowOverride controls what directives may be placed in .htaccess files. # It can be "All", "None", or any combination of the keywords: # AllowOverride FileInfo AuthConfig Limit # AllowOverride All
и меняем
#LoadModule rewrite_module modules/mod_rewrite.so
на
LoadModule rewrite_module modules/mod_rewrite.so
Сохраняем и закрываем файл. Всё, настройка Apache завершена! Описание каждой изменённой директивы вы найдёте на этой странице.
Откройте командную строку (это можно сделать нажав одновременно клавиши Win+x).
Выберите там Windows PowerShell (администратор) и скопируйте туда:
c:\Server\bin\Apache24\bin\httpd.exe -k install
Если поступит запрос от файервола в отношение Apache, то нажмите Разрешить доступ.
Теперь вводим в командную строку:
c:\Server\bin\Apache24\bin\httpd.exe -k start
И нажмите Enter.
Теперь в браузере набираем http://localhost/ и видим следующее:
Это означает, что веб-сервер работает. Чтобы увидеть там файлы, добавьте их в каталог c:\Server\data\htdocs\ — это главная папка для данных сервера, где будут размещаться все сайты.
Как установить PHP на Windows
PHP 8 скачайте со страницы windows.php.net/download/. Выберите версию Thread Safe, обратите внимание на битность. Если вы затрудняетесь, какой именно файл скачать, то посмотрите эту заметку.
В папке c:\Server\bin\ создаём каталог PHP и копируем в него содержимое только что скаченного архива.
В файле c:\Server\bin\Apache24\conf\httpd.conf в самый конец добавляем строчки:
PHPIniDir "C:/Server/bin/PHP" AddHandler application/x-httpd-php .php LoadModule php_module "C:/Server/bin/php/php8apache2_4.dll"
И перезапускаем Apache:
c:\Server\bin\Apache24\bin\httpd.exe -k restart
В каталоге c:\Server\data\htdocs\ создаём файл с названием i.php, копируем в этот файл:
<?php phpinfo ();
В браузере откройте ссылку http://localhost/i.php. Если вы видите что-то похожее, значит PHP работает:
Настройка PHP 8
Настройка PHP происходит в файле php.ini. В zip-архивах, предназначенных для ручной установки и для обновлений, php.ini нет (это сделано специально, чтобы при обновлении случайно не удалить ваш файл с настройками). Зато есть два других, которые называются php.ini-development и php.ini-production. Любой из них, при ручной установке, можно переименовать в php.ini и настраивать дальше. На локалхосте мы будем использовать php.ini-development.
Открываем файл php.ini любым текстовым редактором, ищем строчку
;extension_dir = "ext"
и заменяем её на
extension_dir = "C:\Server\bin\PHP\ext\"
Теперь найдите группу строк:
;extension=bz2 ;extension=curl ;extension=ffi ;extension=ftp ;extension=fileinfo ;extension=gd ;extension=gettext ;extension=gmp ;extension=intl ;extension=imap ;extension=ldap ;extension=mbstring ;extension=exif ; Must be after mbstring as it depends on it ;extension=mysqli ;extension=oci8_12c ; Use with Oracle Database 12c Instant Client ;extension=odbc ;extension=openssl ;extension=pdo_firebird ;extension=pdo_mysql ;extension=pdo_oci ;extension=pdo_odbc ;extension=pdo_pgsql ;extension=pdo_sqlite ;extension=pgsql ;extension=shmop
и замените её на:
extension=bz2 extension=curl extension=ffi extension=ftp extension=fileinfo extension=gd extension=gettext extension=gmp extension=intl extension=imap extension=ldap extension=mbstring extension=exif ; Must be after mbstring as it depends on it extension=mysqli ;extension=oci8_12c ; Use with Oracle Database 12c Instant Client extension=odbc extension=openssl ;extension=pdo_firebird extension=pdo_mysql ;extension=pdo_oci extension=pdo_odbc extension=pdo_pgsql extension=pdo_sqlite extension=pgsql extension=shmop
теперь раскомментируйте эту группу строк:
;extension=soap ;extension=sockets ;extension=sodium ;extension=sqlite3 ;extension=tidy ;extension=xsl
должно получиться:
extension=soap extension=sockets extension=sodium extension=sqlite3 extension=tidy extension=xsl
Этими действиями мы включили расширения. Они могут понадобиться в разных ситуациях для разных скриптов. Сохраняем файл и перезапускаем Apache.
c:\Server\bin\Apache24\bin\httpd.exe -k restart
Настоятельно рекомендуется добавить путь до PHP в переменную окружения PATH в Windows.
Также рекомендуется ознакомиться со статьями Что делать если PHP скрипту не хватает времени и памяти. Почему большой файл не загружается на сайт или в phpMyAdmin и Как увеличить память и время для PHP скриптов.
Материалы по дополнительной настройке, в том числе подключение поддержки PERL, Ruby, Python в Apache (только для тех, кому это нужно):
- Как тестировать отправку писем в PHP на Windows
- Настройка веб-сервера Apache для запуска программ Ruby на Windows
- Настройка веб-сервера Apache для запуска программ Perl на Windows
- Как настроить веб-сервер Apache на запуск Python в Windows
Как установить MySQL в Windows
Бесплатная версия MySQL называется MySQL Community Server. Её можно скачать на странице https://dev.mysql.com/downloads/mysql/. На этой же странице есть установщик в виде исполнимого файла, но я рекомендую скачать ZIP-архив.
На странице скачивания нам предлагают зарегистрироваться или войти в существующую учётную запись — но это делать необязательно. Достаточно нажать на ссылку «No thanks, just start my download».
В каталог c:\Server\bin\ распаковываем файлы из только что скаченного архива. Распакованная папка будет называться примерно mysql-8.0.17-winx64 (зависит от версии), переименуйте её в mysql-8.0.
Заходим в эту папку и создаём там файл my.ini. Теперь открываем этот файл любым текстовым редактором и добавьте туда следующие строки:
[mysqld] sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES datadir="c:/Server/data/DB/data/" default_authentication_plugin=mysql_native_password
Сохраните и закройте его.
Настройка завершена, но нужно ещё выполнить инициализацию и установку, для этого открываем командную строку от имени администратора и последовательно вводим туда:
C:\Server\bin\mysql-8.0\bin\mysqld --initialize-insecure --user=root C:\Server\bin\mysql-8.0\bin\mysqld --install net start mysql
По окончанию этого процесса в каталоге C:\Server\data\DB\data\ должны появиться автоматически сгенерированные файлы.
Теперь служба MySQL будет запускаться при каждом запуске Windows.
Как установить phpMyAdmin в Windows
Сайт для скачивания phpMyAdmin: phpmyadmin.net.
Прямая ссылка на самую последнюю версию: phpMyAdmin-latest-all-languages.zip.
В каталог c:\Server\data\htdocs\ копируем содержимое только что скаченного архива. Переименовываем эту папку в phpmyadmin.
В каталоге c:\Server\data\htdocs\phpmyadmin\ создаём файл config.inc.php и копируем туда:
<?php /* Servers configuration */ $i = 0; /* Server: localhost [1] */ $i++; $cfg['Servers'][$i]['verbose'] = ''; $cfg['Servers'][$i]['host'] = 'localhost'; $cfg['Servers'][$i]['port'] = ''; $cfg['Servers'][$i]['socket'] = ''; $cfg['Servers'][$i]['connect_type'] = 'tcp'; $cfg['Servers'][$i]['auth_type'] = 'cookie'; $cfg['Servers'][$i]['user'] = 'root'; $cfg['Servers'][$i]['password'] = ''; $cfg['Servers'][$i]['nopassword'] = true; $cfg['Servers'][$i]['AllowNoPassword'] = true; /* End of servers configuration */ $cfg['blowfish_secret'] = 'kjLGJ8g;Hj3mlHy+Gd~FE3mN{gIATs^1lX+T=KVYv{ubK*U0V'; $cfg['DefaultLang'] = 'ru'; $cfg['ServerDefault'] = 1; $cfg['UploadDir'] = ''; $cfg['SaveDir'] = ''; ?>
В браузере набираем http://localhost/phpmyadmin/
В качестве имя пользователя вводим root. Поле пароля оставляем пустым.
Заключение
Вот и всё — теперь у вас есть свой персональный локальный веб-сервер на своём домашнем компьютере.
Если вдруг у вас что-то не получилось, то скорее всего вы пропустили какой-то шаг или сделали его неправильно — попробуйте всё сделать в точности по инструкции. Если проблема осталась, то ознакомьтесь со справочным материалом «Ошибки при настройке и установке Apache, PHP, MySQL/MariaDB, phpMyAdmin» и если даже он не помог, то напишите о своей ошибке в комментарии.
Большое количество материалов по Apache на русском языке специально для Windows вы найдёте на этой странице.
Примеры материалов, которые могут вам пригодиться в первую очередь:
- Как защитить веб-сервер Apache от взлома в Windows
- Несколько сайтов на Apache
- Apache Forwarding — проброска портов веб-сервера
- Как сделать резервную копию баз данных MySQL (MariaDB) в Windows без phpMyAdmin
- Почему в логах ошибок Apache не сохраняются записи об ошибке 404
- Как в Windows поменять сообщения ошибок Apache
- Как настроить PHP для работы с get_browser (browscap.ini) в Windows
- Файл .htaccess в Apache
- Как обновить Apache на Windows
- Как обновить PHP
- Как обновить MySQL
- Как обновить phpMyAdmin
Связанные статьи:
- Ошибки при настройке и установке Apache, PHP, MySQL/MariaDB, phpMyAdmin (97.9%)
- Установка Apache, PHP, MySQL и phpMyAdmin на Windows XP (60.3%)
- Готовая сборка Apache для Windows XP (60.3%)
- Что делать если PHP скрипту не хватает времени и памяти. Почему большой файл не загружается на сайт или в phpMyAdmin (58.4%)
- Ошибка «Composer detected issues in your platform: Your Composer dependencies require the following PHP extensions to be installed: mysqli, openssl» (РЕШЕНО) (58.4%)
- Почему не работают короткие теги в PHP (RANDOM — 54.2%)
Эта статья поможет установить Apache, PHP, MySQL на Windows Server. Самый простой способ, облегчающий установку, настройку и управление всеми компонентами – WampServer. WampServer это платформа для веб-разработки под Windows для динамических веб-приложений с помощью сервера Apache2, интерпретатора скриптов PHP и базы данных MySQL. В него также входит веб-приложение PHPMyAdmin для наиболее простой обработки баз данных.
В Serverspace вы можете создать сервер с уже установленным приложением Apache, PHP, MySQL.
Установка
Перед началом установки WampServer необходимо настроить Windows Firewall, указав специфические порты: 80 и 443. Подробнее в статье.
Также необходимо настроить браузер Internet Explorer, для того чтобы загрузить файлы из внешних источников.
Перед работой с WampServer для начала установим необходимые библиотеки. Для этого требуются компоненты The Visual C++ Redistributable Packages (2008-2019), которые можно загрузить по следующей ссылке и установить все компоненты из каждого исполняемого файла.
Теперь загружаем установщик WampServer.
После запуска исполняемого файла начнется установка Wampserver
Принимаем лицензионное соглашение, указываем папку для установки (указываемый путь не должен содержать пробелов!).
Нажимаем Next и Install. Дожидаемся окончания установки.
На предложение изменить стандартный браузер и текстовый редактор нажимаем “No”.
Установка завершена, нажимаем Finish
На рабочем столе появится иконка с Wampserver64, запускаем сервер двойным щелчком.
В нижней панели справа появится зеленый значок запущенного сервера.
В браузере перейдите по ссылке http://localhost/ или вашему ip адресу для проверки.
Конфигурирование Apache
Откройте файл C:wamp64binapacheapache2.4.39confhttpd.conf с помощью текстового редактора. С помощью поиска найдите первое вхождение строки “Require local”, и замените параметр “local” на “all granted”.
Меняем на
Сохраните изменения и закройте файл.
Откройте файл конфигурации виртуальных хостов C:wamp64binapacheapache2.4.39confextrahttpd-vhosts.conf и замените содержимое тега Directory на следующие параметры:
Options +Indexes +Includes +FollowSymLinks +MultiViews
AllowOverride All
Order deny,allow
allow from all
Сохраните изменения и закройте файл.
Перезапустите WampServer нажав правой кнопкой мыши в нижней панеле на значок сервера и выберите пункт “Refresh”.
Проверка
C другого компьютера в браузере попытайтесь перейти по адресу:
<ip-address>/index.html
где ip-address – адрес вашего Windows Server. Его можно узнать в панели управления сервером Serverspace.
Например:
Настройка phpMyAdmin
На своем локальном хосте на главной странице WampServer в меню “Tools” выберете “phpmyadmin”, или перейдите по ссылке http://localhost/phpmyadmin/ в браузере.
В открывшемся окне введите значения логина и пароля по умолчанию:
Логин: root
Пароль: оставьте поле пустым
После авторизации вы можете изменить пароль для пользователя root, а также добавить новых пользователей. Для этого перейдите во вкладку “Учетные записи пользователей”.
Для добавления пользователя перейдите по ссылке “Добавить учетную запись пользователя”. Чтобы изменить пароль для уже существующих пользователей выберите действие “Редактировать привилегии”, далее “Изменить пароль”.
Сохраните изменения и перезапустите WampServer нажав правой кнопкой мыши в нижней панеле на значок сервера и выберите пункт “Refresh”.
Веб-сервер готов к работе.
191028
Санкт-Петербург
Литейный пр., д. 26, Лит. А
+7 (812) 403-06-99
700
300
ООО «ИТГЛОБАЛКОМ ЛАБС»
191028
Санкт-Петербург
Литейный пр., д. 26, Лит. А
+7 (812) 403-06-99
700
300
ООО «ИТГЛОБАЛКОМ ЛАБС»
Последнее обновление: 26.02.2021
Для работы с PHP нам потребуется веб-сервер. Обычно в связке с PHP применяется веб-сервер Apache. Официальный
сайт проекта — https://httpd.apache.org/. Там же можно найти всю подробную информацию о релизах, скачать исходный код.
Однако официальный сайт не предоставляет готовых сборок для ОС Windows.
Перед установкой Apache следует отметить, что если наша ОС Windows, то в системе должны быть установлен пакет для C++, который можно найти по адресу
для 64-битной и для 32-битной.
Итак, если нашей ОС является Windows, перейдем на сайт http://www.apachelounge.com/, который предоставляет дистрибутивы Apache для Windows:
В подпункте Apache 2.4 binaries VS16
выберем последнюю версию дистрибутива сервера. На странице загрузок мы можем
найти две версии пакета Apache — для 64-битных систем и для 32-битных.
После загрузки пакета с Apache распакуем загруженный архив. В нем найдем папку непосредственно с файлами веб-сервера — каталог Apache24.
Переместим данный каталог на диск C, чтобы полный путь к каталогу составлял C:/Apache24.
Запуск Apache
В распакованном архиве в папке bin найдем файл httpd.exe
Это исполняемый файл сервера. Запустим его. Нам должна открыться следующая консоль:
Пока работает это приложение, мы можем обращаться к серверу. Для его тестирования введем в веб-браузере адрес
http:\localhost. После этого веб-браузер должен отобразить следующую страницу:
Эта страница символизирует, что наш веб-сервер работает, и мы можем с ним работать.
Конфигурация веб-сервера
Теперь проведем конфигурацию сервера, чтобы связать его с ранее установленным интерпретатором PHP.. Для этого найдем в папке веб-сервера
в каталоге conf (то есть C:\Apache24\conf ) файл httpd.conf
Откроем этот файл в текстовом редакторе. httpd.conf настраивает поведение веб-сервера.
Мы не будем подобно затрагивать его описания, а только лишь произведем небольшие изменения, которые потребуются нам для работы с PHP.
Прежде всего подключим PHP. Для этого нам надо подключить модуль php, предназначенный для работы с apache. В частности, в папке
php мы можем найти файл php8apache2_4.dll:
Для подключения php найдем в файле httpd.conf конец блока загрузки модулей LoadModule
//...................... #LoadModule vhost_alias_module modules/mod_vhost_alias.so #LoadModule watchdog_module modules/mod_watchdog.so #LoadModule xml2enc_module modules/mod_xml2enc.so
И в конце этого блока добавим строчки
LoadModule php_module "C:/php/php8apache2_4.dll" PHPIniDir "C:/php"
Далее укажем место, где у нас будут храниться сайты. Для этого создадим, например, на диске С каталог localhost. Затем найдем в файле httpd.conf
строку
DocumentRoot "${SRVROOT}/htdocs" <Directory "${SRVROOT}/htdocs">
По умолчанию в качестве хранилища документов используется каталог «c:/Apache24/htdocs». Заменим эту строку на следующую:
DocumentRoot "c:/localhost" <Directory "c:/localhost">
Изменим пути файлам, в которые будут заноситься сведения об ошибках или посещении сайта. Для этого найдем строку
ErrorLog "logs/error.log"
И заменим ее на
ErrorLog "c:/localhost/error.log"
Далее найдем строку
CustomLog "logs/access.log" common
И заменим ее на
CustomLog "c:/localhost/access.log" common
Таким образом, файл error.log
, в который записываются ошибки, и файл access.log
, в который заносятся все
данные о посещении веб-сайта, будут располагаться в папке c:/localhost.
Затем найдем строчку:
#ServerName www.example.com:80
И заменим ее на
ServerName localhost
Далее найдем блок <IfModule mime_module>
:
<IfModule mime_module> # # TypesConfig points to the file containing the list of mappings from # filename extension to MIME-type. # TypesConfig conf/mime.types
И под строкой <IfModule mime_module>
добавим две строчки:
AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps
То есть должно получиться:
<IfModule mime_module> AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps # # TypesConfig points to the file containing the list of mappings from # filename extension to MIME-type. # TypesConfig conf/mime.types
В данном случае мы добавили поддержку для файлов с расширением .php
и .phps
.
И в конце найдем блок <IfModule dir_module>
:
<IfModule dir_module> DirectoryIndex index.html </IfModule>
И заменим его на следующий:
<IfModule dir_module> DirectoryIndex index.html index.php </IfModule>
В данном случае мы определяем файлы, которые будут выполняться при обращении к корню файла или каталога. То есть по сути определяем главные страницы
веб-сайта: index.html и index.php.
Это минимально необходимая конфигурация, которая нужна для работы с PHP.
Теперь наша задача — убедиться, что php подключен и работает правильно. Для этого перейдем в папку c:/localhost, которую мы создали для хранения
файлов веб-сервера, и добавим в нее обычный текстовый файл. Переименуем его в index.php и внесем в него следующее содержание:
<?php phpinfo(); ?>
В данном случае мы создали простейший скрипт, который выводит общую информацию о PHP.
Теперь заново запустим файл httpd.exe и обратимся к этому скрипту, набрав в строке браузера
адрес http://localhost/index.php
Что тут произошло? При обращении к сайту на локальной машине в качестве адреса указывается http://localhost.
Затем указывается имя ресурса, к которому идет обращение. В данном случае в качестве ресурса используется файл
index.php. И так как в файле httpd.conf в качестве хранилища документов веб-сервера указан каталог C:\localhost, то именно в этом каталоге и будет
веб-сервер будет производить поиск нужных файлов.
И поскольку выше при конфигурировании мы указали, что в качестве главной страницы может использоваться файл index.php, то мы можем также обратиться к
этому ресурсу просто http://localhost/
Таким образом, теперь мы можем создавать свои сайты на php.
Установка веб-сервера в качестве службы
Если мы часто работаем с веб-сервером, в том числе для программиррования на PHP, то постоянно запускать таким образом сервер,
может быть утомительно. И в качестве альтернативы мы можем установить Apache в качестве службы Windows.
Для этого запустим командную строку Windows от имени администратора и установим Apache в качестве службы с помощью команды:
C:\Apache24\bin\httpd.exe -k install
То есть в данном случае прописываем полный путь к файлу httpd.exe (C:\Apache24\bin\httpd.exe) и далее указываем команду на установку службы -k install
.
Если установка завершится удачно, то в командная строка отобразит сообщение «The Apache2.4 service is successfully installed». Также будет проведено тестирование сервера.
После установки службы убедимся, что она запущена
С тех пор как я ставил Apache последний раз под Windows много чего уже поменялось. Уже нет установщика Apache и все делается в ручную. И даже сам дистрибутив качается не с самого сайта Apache, а с других ресурсов. И кроме того тогда Apache был 32-х разрядным. Сейчас он уже x64. Ну что? Поехали!
Будем устанавливать:
- Apache 2.4.18 x64 (необходимо примерно 44Гб)
- PHP 7.0.3 x64 (необходимо примерно 57Гб)
- MySQL 5.7.11 x64 (необходимо примерно 325Гб)
В
скобках примерно указано пространство на диске которое необходимо для
установки данных продуктов. Для Apache и MySQL оно не включает
пространство под сайты, базы данных и логи. Поэтому я размещаю файлы
сервисов и данные на разных дисках дабы не мешать все в одну кучу.
1)
Сперва создаем структуру каталогов где у нас будут лежать файлы сервера
Apache, PHP, MySQL и всего что еще может понадобиться в будущем для
Web сервера. А так же создадим структуру каталогов где у нас будут
непосредственно лежать файлы наших сайтов. Я люблю разносить эти две
структуры на разные диски. Так как это, для меня лично, удобней для
архивирования и безопасности. Вы можете конечно делать по своему, но
тогда пути в настройках прописывайте такие как будут у вас.
1.1) В корне диска D: создаем каталог iServer и в ней папки PHP и Apache.
1.2) Прописываем путь к папке PHP в системную переменную PATH. Надеюсь как это сделать не надо объяснять? Если надо то смотрим тут.
1.3) В корне диска E: создаем две папки iSites (тут будут лежать наши сайты) и iLogs (тут будут жить общие логи сервера).
1.4) В папке G:\iSites создаем два подкаталога localhost и testru и далее в каждом из них свои подкаталоги www,log и ssl
2) Теперь надо скачать бинарники Apache. Все! Приехали! Больше ни каких установщиков нет! Все по взрослому 🙂
Для того чтобы чтобы скачать идем сюда http://httpd.apache.org/download.cgi и видим примерно это (зависит от даты когда вы будете читать эту мою статью 🙂 ):
На текущий момент последняя версия Apache 2.4.18. После того как нажмем на указанную ссылку попадаем вот сюда:
Далее жмем на Apache Lounge и приходим сюда:
Как
видим теперь надо качать не только Apache, но и С++ Redistributable, в
нашем случае для x64. Редист надо качать если он у вас в системе не
установлен. Если установлен, то качаем только Apache. У меня редиста не
было поэтому я качаю и его.
Итого скачано два файла:
3) Сперва устанавливаем редист. Здесь все просто: запускаем его и ставим.
4) Вытаскиваем (разархивируем) из скачанного архива папку Apache24
4.1) И все содержимое папки Apache24 (а не саму папку) переносим в каталог D:\iServer\Apache. В результате должно получиться так:
5) Настраиваем Apache для первоначального запуска редактированием файла D:/iServer/Apache/conf/httpd.conf
5.1) Изменяем значение ServerRoot (строка 37) на «D:/iServer/Apache».
5.2) Изменяем значение DocumentRoot (строка 243) на «E:/iSites/localhost/www»
5.3) Изменяем значение Directory (строка 244) на «E:/iSites»
5.4) Изменяем значение ErrorLog (строка 295) на «E:/iLogs/error.log»
5.5) Изменяем значение CustomLog (строка 324) на «E:/iLogs/access.log» combinedio
5.6) Раскомментируем 130 и 493:
LoadModule logio_module modules/mod_logio.so
Include conf/extra/httpd-vhosts.conf
5.7) Раскоментируем и изменяем значение ServerName (строка 219) на localhost:80
5.8) Языковые настройки. Редактируем файлик D:\iServer\Apache\conf\extra\httpd-languages.conf. Комментируем все строки AddLanguage с теми языками, которые нам не нужны. Я оставил только строки:
AddLanguage en .en
AddLanguage ru .ru
Находим строку LanguagePriority и убираем там все языки, которые не нужны. У меня эта строчка выглядит так:
LanguagePriority en ru
Сохраняем файл.
В файле httpd.conf расскомментируем строчку Include conf/extra/httpd-languages.conf.
5.9) Включаем SSI. В файле httpd.conf находим строки:
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
И расскоментируем их.
Находим блок <Directory «E:/iSites»> и в нем строку Options Indexes FollowSymLinks. Приводим ее к виду Options Indexes FollowSymLinks Includes
В каталоге E:\iSites\localhost\www создаем файл ssi.html со следующим содержимым:
SSI тест прошел успешно — ssi.html!
Затем, там же создаем файл ssitest.shtml со следующим содержимым:
<!—#include virtual=»/ssi.html» —>
6) Подготавливаем файл hosts для проверки работы виртуальных хостов на нашем web сервере. Файл hosts обычно находится по пути C:\WINDOWS\system32\drivers\etc\ и добавляем в него запись 127.0.0.1 test.ru и сохраняем.
7) Идем в папку D:\iServer\Apache\conf\extra и редактируем файл httpd-vhosts.conf. Приводим его к вот такому виду:
Подготавливаем тестовые файлы для проверки виртуальных хостов.
8.1) В каталоге E:\iSites\localhost\www создаем файлик index.html со следующим содержимым:
<H1>It is my LocalHost</H1>
8.2) В каталоге E:\iSites\testru\www создаем файлик index.html со следующим содержимым:
<H1>It is my TEST.RU</H1>
9) Устанавливаем сервис Apache. Для этого запускаем командную строку от имени администратора и в каталоге D:\iServer\Apache\bin даем команду:
httpd.exe -k install
После чего служба будет установлена в системе, но еще не будет запущена. В чем можно убедиться в оснастке служб Windows^
Как
видим служба установлена, но не запущена и запускается она под учетной
записью локальной системы, что не есть гуд и мы это чуть позже поправим.
10) Запуск сервис Apache можно сделать прямо из этой же оснастки или же из ApaceMonitor.exe которая находится во каталоге D:\iServer\Apache\bin.
10.1)
Запустим ApacheMonitor.exe, после этого в системном трее появится
ярлык. Кликаем на нем два раза и видим (если сервис не запущен) это:
Чтобы запустить жмем Start и, если все правильно сделали, то увидите это:
ApacheMonitor.exe можно поставить в автозагрузку. Для этого жмем Win+R и далее вводим shell:Startup ну и помещаем туда ApacheMonitor.exe.
11) Проверяем что наш сервер работает. Заходим в браузере по адресам localhost и test.ru. И если все правильно сделали то видите это:
11.1) Проверяем работу shtml и русского языка. В броузере вводим адрес http://localhost/ssitest.shtml и видим следующее:
Ура! Товарищи! Первый этап заработал!
12) Устанавливаем PHP 7.0.3. Для этого скачиваем zip архив от сюда http://windows.php.net/download#php-7.0. На момент этой статьи файл назывался php-7.0.3-Win32-VC14-x64.zip.
12.1) Разархивируем содержимое архива в каталог D:\iServer\PHP
12.2) Прикручивать PHP к Apache будем как модуль Apache. Для этого идем в каталог E:\iServer\Apache\conf, и добавляем в файлик httpd.conf в окончание блока инструкций LoadModule две строки:
LoadModule php7_module «D:/iServer/PHP/php7apache2_4.dll»
PHPIniDir «D:/iServer/PHP»
12.3) Находим в файлике httpd.conf инструкции AddType, в конец этого блока вставляем инструкцию:
AddType application/x-httpd-php .php
12.4) Находим в файле httpd.conf блок инструкций DirectoryIndex. И добавляем в инструкцию DirectoryIndex указание на файл index.php. Чтобы в конечном виде инструкция выглядела так:
DirectoryIndex index.html index.php
12.5) В файле httpd.conf в секцию AddHandler добавляем строку AddHandler application/x-httpd-php .php
12.6) Теперь настала очередь конфигурить файл php.ini. Для этого переименовываем или копируем файл php.ini-production (в каталоге D:\iServer\PHP) в файл php.ini.
12.7) В файле php.ini раскоментируем строку extension_dir = «ext» и необходимые вам расширения
12.8) Находим в файле php.ini строку short_open_tag = Off. И приводим ее к виду short_open_tag = On
12.9) Создаем в каталоге E:\iSites\localhost\www файлик phptest.php и пишем в нем следущий код:
<?
phpinfo();
?>
Сохраняем файлик.
12.10)
Останавливаем и снова запускаем Apache через консоль управления Apache.
После перезапуска Apache можно открыть окно управления сервисом Apache
дважды кликнув по иконке в трее. Должны увидеть следующее окошко:
Обратите внимание что теперь с версией Apache, так же указывается и версия PHP.
12.11) Тестируем работу PHP. Набираем в браузере http://localhost/phptest.php и видим следующую картинку и радуемся жизни. PHP заработал:
12.12) Еще для теста включим функции PHP для работы с графикой. Редактируем файлик D:\iServer\PHP\php.ini. Находим строку extension=php_gd2.dll и раскоментируем ее. Перезапускаем Apache.
В каталоге G:\iSites\localhost\www создаем файлик gdtest.php и вводим следующий код:
<?
$pic=imagecreate(350,100);
$piccolor=imagecolorallocate($pic, 255,255,255);
$textcolor=imagecolorallocate($pic, 0,0,0);
$linecolor=imagecolorallocate($pic, 0,0,255);
$text="GD test successful - gdtest.php!";
imagerectangle($pic, 1,99, 349,0, $linecolor);
imagestring($pic,5,30,40, $text, $textcolor);
header("content-type: image/png");
imagepng($pic);
imagedestroy($pic);
?>
Вводим в браузере адрес http://localhost/gdtest.php и видим:
Если не видим, то как обычно курим мануал до полного просветления 🙂
13) Теперь настроим rewrite_module, оч полезная штука :). В файле httpd.conf расскомментируем строчку
LoadModule rewrite_module modules/mod_rewrite.so
Далее ищем конструкцию (у меня начало в строке 230)
<Directory />
AllowOverride none
Require all denied
</Directory>
И заменяем в ней строку AllowOverride None на строку AllowOverride All
Затем чуть ниже так же будет просто строка AllowOverride None ее надо поменять на AllowOverride All
Это включает обработку ВСЕХ параметров ВСЕХ .htaccess во всех каталогах.
Теперь проверяем работу модуля rewrite. Рестрартуем Apache
В каталоге E:\iSites\localhost\www создаем файлик .htaccess и в него вносим одну строку
Redirect /index.html http://ya.ru
эта строка перенаправляет с файла index.html на сайт ya.ru
В браузере просто набираем localhost и нас должно перебросить на страничку ya.ru
Если сработало, то все настроили правильно. Ну а если нет, то ищем где накосячили.
14) Устанавливаем MySQL. Идем сюда и качаем установщик mysql-installer-community-5.7.11.0.msi. Стоит обратить внимание что хоть файл msi 32 разрядный, но он устанавливает обе версии x32 или x64 в зависимости от платформы. И так, клацаем по нему и понеслась установка…
Затем видим это и начинаем выбирать нужные вам компоненты и удалять не нужные…
Я выбрал следующие компоненты:
Затем жмем Advanced Options…
И выбираем куда будет установлен MySQL server и где будут лежать его базы:
Жмем ОК и Next и видим что установщику для работы Workbench нужен редист. Но как он сообщает он сам попробует его установить
Жмем Execute и видим:
Ну и ставим редист … и теперь у нас все хорошо
Жмем Next
И жемем Execute…
Настало время сконфигурировать MySQL…
Далее задаем root пароль и создаем первого пользователя – администратора баз данных.
Ну и жмем Execute…
После нажатия на Finish запуститься Workbench…
Подключимся с его помощью к MySQL
Если мы видим это, то значит сервер установился и работает. Но Apache пока с ним работать не может.
14.1) Чуть чуть донастроим MySQL. По умолчанию он хранит временные файлы на системном диске, что я считаю не есть гуд. Поэтому переносим временные файлы в другое место. Для этого в файле E:\MySQLdb\my.ini в секции [mysqld] добавляем строку tmpdir=E:/MySQLtemp. Естественно каталог E:\MySQLtemp должен уже быть создан. Перезапускаем MySQL сервис и наслаждаемся видом:
14.2) Проверяем работу MySQL (пока отдельно без привязки к Apache и PHP). Даем из командной строки в директории D:\iServer\MySQL\bin команду
mysql.exe -h localhost -P 3306 -u root -p
вводим пароль и даем следующую команду
show databases;
И видим:
15)
Прикручиваем MySQL к Apache, хотя вернее сказать к PHP, ну а он уже
прикручен к Apache. Вот такой паровозик получается. Итак редактируем
файлик D:\iServer\PHP\php.ini. Находим в нем строчки
extension=php_mysqli.dll
extension=php_pdo_mysql.dll
и раскомментируем их. Затем находим строку mysqli.default_port = и приводим ее к виду mysqli.default_port = 3306. Далее находим строку mysqli.default_host = и приводим ее к виду mysqli.default_host = localhost
Перезапускаем Apache.
В каталоге E:\iSites\localhost\www создаем файлик mysqltest.php и вводим туда следующий код:
<?
try {
$DBH = new PDO(«mysql:host=localhost», «root», «ВАШ ПАРОЛЬ»);
foreach($DBH->query(‘SELECT CURDATE()’) as $row) {
echo «<tr>»;
echo «<td>» . $row[‘CURDATE()’] . «</td>»;
echo «</tr>»;
}
$DBH = null;
}
catch(PDOException $e) {
echo $e->getMessage();
}
?>
В браузере вводим адрес http://localhost/mysqltest.php и если все сделали правильно, то видим текущую дату. Это значит что PHP может работать с MySQL.
Подведем
небольшой итог. Сейчас у нас работает по Windows Server 2008R2 x64
Apache 2.4 x64 + PHP 7.0.3 x64 + MySQL 5.7.11 x64. Все это дело заняло
на диске D: достаточно места:
Сравните с тем свободным местом на диске D: что было в начале.
Поэтому заранее планируйте пространство на ваших дисках.
Хотя
данные сервисов (сайты, логи и базы) пока еще почти ни чего не
занимают, но со временем они имеют свойство разрастаться. Поэтому лучше
их держать на отдельном диске, так же как и сервисы, дабы ни то ни
другое не забивало системный диск.
16) Теперь остается только
сделать чтобы сервис Apache работал не под системной учеткой, а под
обычным пользователем. По умолчанию, при установке, сервис Apache
запускается под пользователем SYSTEM, который имеет в системе максимальные права. Это не есть гуд. Сейчас будем исправлять эту ситуацию.
16.1) Создаем и настраиваем учетную запись под которой будем запускать Apache.
- создаем учетную запись iUser и назначаем ей пароль срок действия которого ни когда не истекает
- проверяем чтобы она входила только в группу пользователи
- запрещаем для пользователя iUser локальный вход и выставляем право работать в режиме операционной системы и вход в качестве службы через оснастку gpedit.msc
- Даем учетной записи iUser право на запись в каталоги необходимые для работы Apache:
E:\iLogs – общие логи Apache
В каталоги лог файлов сайтов. В нашем случае: E:\iSites\localhost\log и E:\iSites\testru\log - В
будущем если понадобятся разрешения на запись в какую либо папку или
файл вашего сайта, то эти разрешения необходимо добавить. Но на
большинство файлов вашего сайта не должно быть разрешения на запись. И
тем более на файл .htacess - Перезапускаем службу Apache2.2
- Ну и проверяем работу зайдя по адресу http://localhost
Если сделали все правильно, то все должно работать.
17)
И так у нас все работает хорошо локально. А что если попробовать
подключиться к нашему веб серверу по сети? И вот тут сюрпрайз 🙂 Ни кто
не сможет подключиться, так как на Windows Server 2003R2, по умолчанию,
этот порт закрыт файрволом. Поэтому надо создать правило разрешающие
входящее подсоединение к 80 порту.
18) Запрещаем выдавать Apache
свою версию и версию PHP. Эта информация может позволить точно узнать
уязвима ваша версия Apache и PHP или нет. Лучше это отключить, так как
любой, даже самый простой сканер вам покажет эти данные:
Кстати, тут так же видно что Location у нас http://ya.ru. Это как раз сработал наш mod_rewrite – еще одна защита.
18.1) Чтобы запретить Apache показывать свою версию и версию PHP делаем следующее:
- В файле раскоментируем строку Include conf/extra/httpd-default.conf
- В файле D:\iServer\Apache\conf\extra\httpd-default.conf ищем параметр ServerTokens и меняем его значение с Full на Prod и перезапускаем Apache.
И теперь у нас Apache показывает только это:
Согласитесь это уже приятней 🙂 ?
Для полного счастья осталось только рассказать как прикрутить к Apache SSL сертификаты для виртуальных сайтов. Но об этом в другой статье. Хотя я уже про это писал тут. Но времена меняются и сейчас все чуть по другому, но суть от этого не поменялась.
Источник http://adminsnotes.blogspot.com/2016/02/apache-2418-x64-php-703-mysql-5711.html