Гайд Установка и настройка сервера Apache, PHP, MySQL, phpMyAdmin на Windows [локальный веб сервер]

Vesuvius

НЕ СКРИПТЕР!!!
Команда форума
Администратор
Регистрация
8 Июн 2017
Сообщения
1.430
Симпатии
470
Пол
Мужской
#1
1. Подготовительная стадия – скачивание Apache, PHP, MySQL, phpMyAdmin

Будем устанавливать самые новые версии программ, скаченные с официальных сайтов. Официальный сайт Apache — Welcome! - The Apache HTTP Server Project. Но данная версия работает только со старыми версиями PHP. Авторы PHP рекомендуют версию с сайта apachelounge.com. Поэтому переходим по ссылке Apache VC15 binaries and modules download

Вверху страницы представлено две версии Apache Win64 или Win32. Если у вас 64-битная Windows, то выберите любую (это непринципиально и на работу никак не скажется. Только следуйте правилу, чтобы все версии компонентов сервера были одной битности). Я выбрал 64-битную версию.

Переходим на сайт для скачивания PHP. Версий много, с непривычки можно запутаться. Самые свежие версии находятся сверху. В разделе PHP 5.6 четыре варианта. Выберите Thread Safe, а также 64 или 32 бита. Например, я выбрал VC11 x64 Thread Safe.

Скачиваем MySQL (на сайте бесплатная версия называется MySQL Community Server). На этой странице перелистываем вниз. Там доступны две версии

  • Windows (x86, 32-bit), ZIP Archive
  • Windows (x86, 64-bit), ZIP Archive
Всем понятно, чем они различаются.

Если нажать на кнопку Download, то мы переходим на страницу, где две большие кнопки предлагают нам создать аккаунт или войти в уже существующий. Это необязательно, достаточно просто нажать маленькую надпись внизу «No thanks, just start my download» («Нет, спасибо, просто начните мою загрузку»).

Практически обязательным элементом сервера стал phpMyAdmin, его скачиваем с этой страницы.

Если предыдущие скаченные файлы различались битностью, то для phpMyAdmin такого понятия нет, т. к. он состоит из PHP скриптов.

Для работы PHP (а также Apache) необходимо установить Visual C++ Redistributable for Visual Studio 2012 с официального сайта Microsoft. Для этого нужно перейти по ссылке.

При попытке запуска, Apache пожалуется на отсутствие файла и запускаться откажется. Этот файл является частью Visual C++ Redistributable for Visual Studio 2015, поэтому заблаговременно скачиваем его по ссылке (выбираем 32- или 64-битную версию).

Загружаемый файл будет иметь имя vc_redist.x64.exe.

Итог, мы имеем следующие файлы:

  • httpd-2.4.12-win64-VC11.zip
  • php-5.6.6-Win32-VC11-x64.zip
  • mysql-5.6.23-winx64.zip
  • phpMyAdmin-4.3.11-all-languages.zip
  • vcredist_x64.exe
  • vc_redist.x64.exe
Запустите и установите файлы vcredist_x64.exe и vc_redist.x64.exe – к ним мы возвращаться больше не будем.
2. Выбор структуры сервера.

Теперь всё готово, можно начинать. Несколько слов о структуре нашего сервера.

На диске C создаём каталог Server, в нём создаём каталоги bin (сюда будем устанавливать Apache, PHP, MySQL) и data (здесь будет наш сайт и база данных).

Казалось бы, для чего это нужно? На самом деле, это упрощает резервное копирование. Например, папка bin меняется очень редко и бэкапить её каждый день нет смысла. Напротив же, содержимое нашего сайта и баз данных может меняться ежедневно и имеет смысл делать резервную копию папки data часто. Когда мы обновляем файлы сервера, например, ставим новую версию PHP, то мы можем принудительно сделать копию bin и, в случае ошибок, без проблем откатиться на более старую версию.

Продолжим наши приготовления. В каталоге data создадим две папки:

  • DB (здесь будут храниться базы данных)
  • htdocs (здесь будут наши сайты)
3. Установка и настройка Apache 2.4

В каталог bin распаковываем файлы Apache (из архива httpd-2.4.12-win64-VC11.zip), точнее нас интересует только папка Apache24.

После распаковки переходим в каталог C:\Server\bin\Apache24\conf и открываем файл httpd.conf любым текстовым редактором.

Меняем
PHP:
#ServerName www.example.com:80
на
PHP:
ServerName localhost
Меняем
PHP:
ServerRoot "c:/Apache24"
на
PHP:
ServerRoot "c:/Server/bin/Apache24"
Меняем
PHP:
DocumentRoot "c:/Apache24/htdocs"
на
PHP:
DocumentRoot "c:/Server/data/htdocs/"
Меняем
PHP:
<Directory "c:/Apache24/htdocs">
на
PHP:
<Directory "c:/Server/data/htdocs/">
Меняем
PHP:
DirectoryIndex index.html
на
PHP:
DirectoryIndex index.html index.php index.htm
Сохраняем и закрываем файл. Всё, настройка Apache завершена!

Откройте командную строку (найти в меню пуск) от имени администратора.
И скопируйте туда:
PHP:
c:\Server\bin\Apache24\bin\httpd.exe -k install
И нажмите Enter. У меня ругнулся файервол:
022.jpg
Нажмите разрешить, если у вас появится это же окошко.

Теперь вводим в командную строку:
PHP:
c:\Server\bin\Apache24\bin\httpd.exe -k start
И нажмите Enter.
041.jpg
Теперь в браузере набираем http://localhost/ и видим следующее:
031.jpg
Это означает две вещи:

  • Apache работает
  • в каталоге c:Serverdatahtdocs нет ни одного файла.
Можете поиграться — добавить в каталог любые html-файлы — полноценный сервер работает.
4. Установка и настройка MySQL 5.6.23 (MySQL :: Download (Archived Versions))

В каталог bin распаковываем файлы MySQL (из архива mysql-5.6.23-winx64.zip). Переименовываем папку mysql-5.6.23-winx64 в mysql-5.6 (для краткости).

Кстати, распакованная папка mysql-5.6 занимает более полтора гигабайта!

Заходим в эту папку и переименовываем файл my-default.ini в my.ini Теперь открываем этот файл любым текстовым редактором.

Нам нужно сделать только одно, добавить строчку:
C++:
datadir="c:/Server/data/DB/data/"
В каталоге c:\Server\bin\mysql-5.6 есть директория data, всю эту папку нужно переместить в каталог c:\Server\data\DB (иначе служба MySQL не запустится из-за ошибки).

Настройка завершена, но нужно ещё выполнить установку, для этого открываем командную строку от имени администратора и копируем туда
PHP:
"c:\Server\bin\mysql-5.6\bin\mysqld" –install
Нажимаем [Enter]

Теперь служба MySQL будет запускаться при каждом запуске Windows, но в данный момент она ещё не запущена. Чтобы это сделать, в командной строке нужно набрать
PHP:
net start mysql
051.jpg
или просто перезагрузить компьютер.

5. Установка и настройка PHP 5.6

В папке c:\Server\bin создаём каталог PHP и копируем в него содержимое архива php-5.6.6-Win32-VC11-x64.zip.

В файле c:\Server\bin\Apache24\conf\httpd.conf в самый конец добавляем строчки
CSS:
PHPIniDir "C:/Server/bin/PHP"
AddHandler application/x-httpd-php .php
LoadModule php5_module "C:/Server/bin/PHP/php5apache2_4.dll"
И перезапускаем Apache
PHP:
c:\Server\bin\Apache24\bin\httpd.exe -k restart
В каталоге c:\Server\data\htdocs создаём файл с названием i.php

Копируем в этот файл:
PHP:
<?php
phpinfo ();
?>
В браузере откройте ссылку http://localhost/i.php. Если вы видите тоже самое, что на картинке, значит PHP работает.
06.jpg
Настройка PHP

Настройка PHP происходит в файле php.ini. В zip-архивах, предназначенных для ручной установки и для обновлений, php.ini нет (это сделано специально, чтобы случайно не затереть ваш файл, с вашими уникальными настройками). Зато есть два других, которые называются php.ini-development и php.ini-production. Любой из них, при ручной установке, можно переименовать в php.ini и настраивать дальше. На локалхосте мы будет использовать php.ini-development.

Открываем файл php.ini любым текстовым редактором, ищем строчку
PHP:
; extension_dir = "ext"
и заменяем её на
PHP:
extension_dir="C:\Server\bin\PHP\ext"
т.е. мы разкоментировали строку (убрали точку с запятой в начале)

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

В каталог c:\Server\data\htdocs копируем содержимое архива phpMyAdmin-4.3.11-all-languages.zip. Переименовываем phpMyAdmin-4.3.11-all-languages в phpmyadmin (для лаконичности)

В каталоге c:\Server\data\htdocs\phpmyadmin создаём файл config.inc.php и копируем туда:
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]['extension'] = 'mysqli';
$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'] = '4c525c652d3f54.24302686';
$cfg['DefaultLang'] = 'ru';
$cfg['ServerDefault'] = 1;
$cfg['UploadDir'] = '';
$cfg['SaveDir'] = '';

?>
В браузере набираем http://localhost/phpmyadmin/

В качестве имя пользователя вводим root. Поле пароля оставляем пустым. Если всё сделано правильно, то всё должно выглядеть так:
07.jpg
7. Использование сервера и бэкап данных.

В каталоге c:\Server\data\htdocs создавайте папки и файлы, например:

c:Serverdatahtdocstestajax.php – этот файл, соответственно, будет доступен по адресу http://localhost/test/ajax.php и т.д.

Для создания полного бэкапа всех сайтов и баз данных достаточно скопировать каталог data.

Перед обновлением модулей, делайте бэкап папки bin – в случае возникновения проблем, можно будет легко откатиться к предыдущим версиям.

При повторной установке сервера или при его обновлении, необходимо заново настраивать конфигурационные файлы. Если у вас есть копии этих файлов, то процесс можно значительно ускорить. Желательно забэкапить следующие файлы:

  • c:\Server\bin\Apache24\conf\httpd.conf
  • c:\Server\bin\mysql-5.6\my.ini
  • c:\Server\bin\PHP\php.ini
  • c:\Server\data\htdocs\phpMyAdmin\config.inc.php
В них и хранятся все настройки.
 
Последнее редактирование: Vesuvius

Vesuvius

НЕ СКРИПТЕР!!!
Команда форума
Администратор
Регистрация
8 Июн 2017
Сообщения
1.430
Симпатии
470
Пол
Мужской
#3
Molodoi, думаю да...
но сам в етом не силен...))) что нашел в гуле.. сам иду по етому мануало.... собирал с нескольких сайтов....
 

Vesuvius

НЕ СКРИПТЕР!!!
Команда форума
Администратор
Регистрация
8 Июн 2017
Сообщения
1.430
Симпатии
470
Пол
Мужской
#5
Дмитрий, по линуксе статей в интернете полно...
буду рад.. если соберете рабочий мануал к нам на форум)
 

Дмитрий

Пользователь
Регистрация
8 Июн 2017
Сообщения
196
Симпатии
27
Пол
Мужской
#6
Vesuvius, в первый раз арендовал VDS и уже 2 сутки мозг взрываю ,всё не как не получается, сервер то запущен , а как поставить сайт(панель управление не знаю =( нечего не получается+)
 

Vesuvius

НЕ СКРИПТЕР!!!
Команда форума
Администратор
Регистрация
8 Июн 2017
Сообщения
1.430
Симпатии
470
Пол
Мужской
#7
Дмитрий, также с сайтом били проблемы... там сложно все ето... Для меня) Хз.. Мне самому установили... Автор похожей темы в етом разделе.. Обратись к нему.. Думаю за небольшую денешку .. Поможет...
 

fantom

Пользователь
Регистрация
11 Июн 2017
Сообщения
172
Симпатии
85
Пол
Мужской
#8
1. Под Windows Open Server Panel — Локальный веб-сервер для Windows. Скачать http wamp веб сервер.
2. Лучше NGINX + PHP-FPM чем Apache2 + mod_php
3. PHPMyAdmin я не рекомендую ставить если сервер чисто ваш. Есть много десктоп клиентов (в open-server включен). Если нужно к отдаленной тачке, то множество клиентов умеют SSH тунель делать
4. Mysql лучше либо 5.7 либо MariaDB или Percona Server
5. Для PHP также неплохо указать open_basedir настройку (на всякий случай)
6. Также желательно php 7 устанавливать (если сайт на нем работает без проблем)
7. Если PHP ниже 7-ой версии, то желательно кэшер опкода установить (если он не идет вместе с пакетом в репозитории)
 

Vesuvius

НЕ СКРИПТЕР!!!
Команда форума
Администратор
Регистрация
8 Июн 2017
Сообщения
1.430
Симпатии
470
Пол
Мужской
#9
fantom, только собирался опубликовать етот веб сервер.) опередил)
 

Vesuvius

НЕ СКРИПТЕР!!!
Команда форума
Администратор
Регистрация
8 Июн 2017
Сообщения
1.430
Симпатии
470
Пол
Мужской
#12
kapangaIII, denwer вроде как устарел... но я согласен можно использовать все вместе и не париться с установкой по отдельности
fantom, привел неплохой вариант.. и намного актуальней denwera
есть еще тако - аналог denwera
XAMPP Installers and Downloads for Apache Friends
Установка и настройка сервера XAMPP на Windows | Инструменты | makegood
 

kapangaIII

Команда форума
Разработчик
Регистрация
31 Окт 2017
Сообщения
393
Симпатии
123
#13
Морально мб устарел. Мсг фантома не заметил.
27 Мар 2018
К слову, если вам нужно лишь для бд это все, то можете sqlite использовать. Синтаксис немного исправить надо запросов иногда и все.