Harrix Блог

  • Списки статей
    • Все статьи
    • IT
    • Qt
    • C++
    • Сложение двух чисел
    • Web программированиe
    • FAQ
    • Latex
    • Установка программ
    • Мифы
    • Видео
    • Про фото
  • Проекты
  • Harrix.org
  • RSS
  • Контакты

Установка Apache + Php + MySQL + phpMyAdmin в Windows 8.1

В статье рассказывается о том, как настроить связку Apache + Php + MySQL + phpMyAdmin в Windows 8.1. Особенностью является факт, что программное обеспечение будет храниться на одном диске, а файлы сайтов на другом.

15.12.2014 10 комментариев 75 285 просмотров

В статье рассказывается о том, как настроить связку Apache + Php + MySQL + phpMyAdmin в Windows 8.1. Особенностью является факт, что программное обеспечение будет храниться на одном диске, а файлы сайтов на другом.

Содержание

  • Вводные слова
  • Скачивание файлов
  • Структура папок
  • Установка Apache
  • Установка PHP
  • Установка MySQL
  • Установка phpMyAdmin
  • Окончание
  • Добавление своего виртуального хоста [дополнительно]
  • Удаление служб [дополнительно]

Вводные слова

Да, статей на тему, как установить связку Apache + Php + MySQL много в интернете, но всё равно не нашел той статьи, которая бы устроила всем, что мне нужно. В итоге, у меня тут компиляция материала из нескольких статей. В первую очередь, это шпаргалка для меня самого)

И я вряд ли смогу помочь вам в тонкостях тех ошибок, которые у вас возникнут. Я не системный администратор, который набил руку в настраивании серверов.

Приведенный в статье алгоритм можно спокойно применить в случае, когда и программы и файлы сайтов находятся на одном диске. Только в нужных местах пропишите свои пути к папкам, а всё остальное будет таким же.

Почему у меня не всё в одном месте будет находится, а раскидано по двум дискам? Я стараюсь выполнять принцип того, что на основном диске должны быть программы и те файлы, которые можно потерять в случае переустановки системы. А все пользовательские файлы должны находится на другом диске. У меня это реализовано (что очень типично) через разделение одного физического диска на два логических.

В статье особо сильно использовались материалы статей: http://webware.biz, http://paperplane.su и http://malwselennaiaru.ru.

Скачивание файлов

Выберите битность вашей операционной системы и скачивайте ВСЕ файлы соответствующей битности (32 или 64). У меня всё 64 битное.

Вначале надо скачать и установить (и перегрузить комп) пару системных библиотек от Microsoft.

http://www.microsoft.com/en-us/download/details.aspx?id=30679

http://www.microsoft.com/en-us/download/details.aspx?id=26999

Можно скачать файлы тут у меня (но советовал бы с официального сайта скачивать: файлы могли обновиться с тех пор как я написал эту статью):

Visual-C-Redistributable-Package-2010vcredist_x64.zip

Visual-C-Redistributable-for-Visual-Studio-2012-vcredist_x64.zip

Файлы называются одинаково (но по содержанию они разные), так что будете осторожными при сохранении их себе на комп. Также вполне возможно, что эти файлы у вас уже установлены.

Теперь перейдем к скачиваю PHP. Будьте очень внимательны. Надо скачать архив с последней версией php вашей битности в версии VC11 x64 Thread Safe. Я вначале несколько раз не то скачивал и не понимал, почему не работает.

http://windows.php.net/download/

2014-12-15_120152

Можно файл скачать у меня:

php-5.6.3-Win32-VC11-x64.zip

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

http://www.apachelounge.com/download/

2014-12-15_121736

Можно у меня скачать:

httpd-2.4.10-win64-VC11.zip

Для работы с базами данных скачиваем phpMyAdmin с этого сайта. Там только один вариант для загрузки:

http://www.phpmyadmin.net/home_page/index.php

2014-12-15_122219

Или скачиваем у меня:

phpMyAdmin-4.3.2-all-languages.zip

И скачиваем MySQL с сайта:

http://dev.mysql.com/downloads/mysql/

Я скачивал файл Windows (x86, 64-bit), ZIP Archive.

2014-12-15_122559

И да, у вас сайт попросит зарегистрироваться, чтобы вы могли скачать файл.

Можно у меня скачать:

mysql-5.6.22-winx64.zip

Итого у нас 6 файлов, два из которых (библиотеки Microsoft) мы устанавливаем уже сейчас.

Структура папок

У меня два диска: основной C: с программами и D: с пользовательскими файлами.

2014-12-15_123640

На диске C: создаем папку Server в которую скидываем архивы Apache, php и MySQL.

2014-12-15_123917

На диске D: создаем папку Server, в которой создаем папки DB и htdocs. В папке htdocs создаем папки www и phpmyadmin. В последнюю копируем наш архив phpMyAdmin.

2014-12-15_124222

2014-12-15_124246

2014-12-15_124304

Обратите внимание, что это у меня второй диск D:. У вас может диск с пользовательскими данными называться по другому. Может, например, быть тем же C:, в котором программы храните. Вам нужно только во всех кодах внимательно менять D:, на ваше обозначение.

Установка Apache

В папке C:\Server разархивируем архив с Apache и оставим только папку Apache24, а файлы ReadMe.txt и — Win64-2.4.10 VC11 update 4 — (у вас может по другому называться) удалим. Архив с Apache тоже удалим, так как он нам не нужен.

2014-12-15_124434

2014-12-15_124458

2014-12-15_124710

Ищем теперь файл C:\Server\Apache24\conf\httpd.conf и открываем его в любом текстовом редакторе. Я использую Notepad++.

2014-12-15_125255

Ищем и меняем в нем строчку

1
#ServerName www.example.com:80

на

1
ServerName localhost

Ищем и меняем в нем строчку

1
ServerRoot "c:/Apache24"

на

1
ServerRoot "c:/Server/Apache24"

Ищем и меняем в нем строчку

1
DocumentRoot "c:/Apache24/htdocs"

на

1
DocumentRoot "d:/Server/htdocs/"

Ищем и меняем в нем строчку

1
<Directory "c:/Apache24/htdocs">

на

1
<Directory "d:/Server/htdocs/">

Ищем и меняем в нем строчку

1
DirectoryIndex index.html

на

1
DirectoryIndex index.html index.php index.htm

Ищем и меняем в нем строчку

1
#Include conf/extra/httpd-vhosts.conf

на

1
Include conf/extra/httpd-vhosts.conf

Теперь находим файл C:\Server\Apache24\conf\extra\httpd-vhosts.conf и открываем его.

Удаляем всё в нем. И вставляем туда следующие строчки:

1
2
3
4
5
6
7
8
9
10
11
12
13
<VirtualHost *:80>
    DocumentRoot "D:/Server/htdocs/www"
    ServerName localhost
    ErrorLog "D:/Server/htdocs/www/error.log"
    CustomLog "D:/Server/htdocs/www/access.log" common
</VirtualHost>
 
<VirtualHost *:80>
   DocumentRoot "D:/Server/htdocs/phpmyadmin"
   ServerName phpmyadmin
   ErrorLog "D:/Server/htdocs/phpmyadmin/error.log"
   CustomLog "D:/Server/htdocs/phpmyadmin/access.log" common
</VirtualHost>

Теперь находим файл C:\Windows\System32\drivers\etc\hosts и открываем каким-нибудь блокнотом под администратором (иначе изменения при сохранении не сохранятся) и добавьте в него строчку:

1
127.0.0.1 phpmyadmin

2014-12-15_130826

2014-12-15_130710

Теперь запустим приложение C:\Server\Apache24\bin\httpd.exe:

2014-12-15_132230

Откроем браузер и введем http://localhost и жмем Enter.

Увидим вот это:

2014-12-16_004150

Создадим текстовой файл index.html в папке D:\Server\htdocs\www со следующим содержимым:

1
2
3
4
5
6
7
8
9
10
<!DOCTYPE html>
<html>
<body>
 
<h1>Localhost</h1>
 
<p>This is page in Localhost.</p>
 
</body>
</html>

И создадим текстовой файл index.html в папке D:\Server\htdocs\phpmyadmin со следующим содержимым:

1
2
3
4
5
6
7
8
9
10
<!DOCTYPE html>
<html>
<body>
 
<h1>PhpMyAdmin</h1>
 
<p>This is page in PhpMyAdmin.</p>
 
</body>
</html>

Теперь, если откроем в браузере http://localhost, то получим:

2014-12-16_005622

А при заходе на адрес http://phpmyadmin/ получим вот это.

2014-12-16_005634

Закрываем приложение httpd.exe. Тем самым мы закрыли наш созданный сервер. Сделаем так, чтобы сервер был всегда открыт при запуске системы.

Откроем командную строку под администратором. Через поиск находим программу Командная строка:

2014-12-14_205827

Запускаем от имени администратора.

2014-12-14_205841

2014-12-14_205915

Вводим там:

1
c:\Server\Apache24\bin\httpd.exe -k install

И нажимаем Enter:

2014-12-16_010230

Служба Apache24 установилась. Теперь сервер будет всегда работать при работе операционной системы.

Закрываем командную строку (а можете и не закрывать: еще пригодится).

Открываем приложение C:\Server\Apache24\bin\ApacheMonitor.exe. В трее должна появится иконка.

2014-12-16_010529

Щелкаем по ней и выбираем кнопку Start.

2014-12-16_010549

Если иконка изменилась на зеленый квадратик, то всё в порядке.

Если осталась с красной точкой то проверьте все шаги. И проверьте: вы закрыли или нет httpd.exe.

И еще. Если сервис Apache24 запускается автоматически при старте ОС, то ApacheMonitor.exe нет, что было раньше при наличии установщика Apache в предыдущих версиях. Так что либо где-нибудь ярлык на программу оставьте или добавьте программу в автозагрузку. Но это не обязательно, так как это только монитор активности сервиса Apache.

Установка PHP

Создадим папку PHP в папке C:\Server и туда разархивируем архив с php. Сам архив потом удалим.

2014-12-16_011955

В конец файла C:\Server\Apache24\conf\httpd.conf (с которым мы уже работали) добавим в самом конце такие строчки:

1
2
3
4
5
PHPIniDir "C:/Server/PHP"
 
AddHandler application/x-httpd-php .php
 
LoadModule php5_module "C:/Server/PHP/php5apache2_4.dll"

2014-12-16_012151

В папке D:\Server\htdocs\www удаляем файл index.html и добавляем текстовой файл index.php с таким содержимым:

1
2
3
<?php
phpinfo ();
?>

Перезапускаем сервер:

2014-12-16_012436

И в браузере открываем http://localhost:

2014-12-16_012625

Если видите такое, как выше, то всё в порядке.

В папке C:\Server\PHP файл php.ini-development переименуем в php.ini и откроем его в блокноте.

Находим в нем строчку:

1
; extension_dir = "ext"

и заменяем на:

1
extension_dir="C:\Server\PHP\ext"

В строчках:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
;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

убираем точку с запятой в начале строк. То есть получим вот это:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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

Аналогично в строках:

1
2
3
4
5
6
7
;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

убираем также точку с запятой:

1
2
3
4
5
6
7
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

Найти в файле строчку:

1
short_open_tag = Off

и заменить ее на

1
short_open_tag = On

Создайте в папке C:\Server папку temp:

2014-12-16_014011

Найдите в php.ini строчку:

1
;     session.save_path = "N;/path"

И замените ее на

1
session.save_path = "C:\Server\temp"

Найдите в php.ini строчку:

1
upload_max_filesize = 2M

И замените ее на:

1
upload_max_filesize = 200M

Найдите строчку:

1
post_max_size = 8M

И замените ее на:

1
post_max_size = 50M

Сохраните и перезапустите сервер. Если зеленый треугольник видите, то всё нормально. Фактически вы настроили сервер, но пока без MySQL.

2014-12-16_014346

Установка MySQL

Разархивируем архив с MySQL и переименуем его в mysql.

2014-12-16_022619

Открываем командную строку под администратором опять.

В ней вводим команду (не забываем нажимать Enter):

1
C:\Server\mysql\bin\mysqld --console

Появится много строк. Если последняя такая же как на скриншоте, то всё в порядке.

2014-12-16_022948

Открываем еще одно окно с командной строкой под администратором, а это закрываем.

2014-12-14_205827

Запускаем от имени администратора.

2014-12-14_205841

2014-12-14_205915

Во второй командной строке вводим команду:

1
C:\Server\mysql\bin\mysql -u root

Должна появится в конце строчка mysql>.

2014-12-16_023445

На всякий случай проверим работоспособность mysql. Введем команду во второй команадной строке:

1
show databases;

Если видите, что показано две базы данных, то всё в порядке.

2014-12-16_023604

Во второй командной строке введем команды:

1
2
3
use mysql
 
UPDATE user SET password = PASSWORD('ваш_пароль') WHERE user = 'root';

Я, например, использовал пароль 1234 (локальный же сервер):

1
2
3
use mysql
 
UPDATE user SET password = PASSWORD('1234') WHERE user = 'root';

2014-12-16_024057

Введем команду для проверки добавления пароля у пользователя:

1
SELECT user, host, password FROM user;

Всё нормально, если вот такое видите:

2014-12-16_024222

Введем команду:

1
FLUSH PRIVILEGES;

2014-12-16_024321

И команду:

1
exit

2014-12-16_024422

Если в дальнейшем вам нужно будем войти в MySQL, но в командной строке надо будет ввести команду (сейчас это не нужно делать):

1
C:\Server\mysql\bin\mysql -u root -p

В папке C:\Server\mysql файл my-default.ini переименуем в файл my.ini.

2014-12-16_025217

Откроем этот файл my.ini и в самом конце добавим строчку:

1
datadir="d:/Server/DB/data/"

2014-12-16_030514

Из папки C:\Server\mysql вырежем папку data и перенесем ее в папку D:\Server\DB:

2014-12-16_030659

2014-12-16_030718

В командной строке введем команду (если честно, то я заново открыл командную строку в третий раз, но это не обязательно. При этом первую командную строку закрыл только сейчас):

1
C:\Server\mysql\bin\mysqld.exe --install MySQL --defaults-file="C:\Server\mysql\my.ini"

Если написано, что всё прошло успешно, то всё замечательно:

2014-12-16_025620

Запустим службу MySQL командой:

1
net start mysql

2014-12-16_032318

Проверим работу MySQL. Заменим содержимое файла D:\Server\htdocs\www\index.php на следующее:

1
2
3
4
5
6
7
8
9
10
11
12
<?php
$db_conn = new mysqli("localhost", "root", "1234", "test");
if (mysqli_connect_errno())
  {
  echo 'Connection to database failed:'.mysqli_connect_error();
  exit();
  }
else
  {
  echo 'Ok';
  }
?>

Вместо 1234 вставьте свой пароль. И перейдите на адрес http://localhost/.

Если вы видите Ok, то всё хорошо!

2014-12-16_120231

Установка phpMyAdmin

В папке D:\Server\htdocs\phpmyadmin удалим файл index.html.

И разархивируем в папку наш скаченный архив с phpmyadmin.

2014-12-16_114539

Создайте текстовой файл config.inc.php со следующим содержимым:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
 
$i=0;
$i++;
 
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = '1234';
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['AllowNoPassword'] = true;
 
?>

Разумеется, что пароль вы меняете на свой.

После этого файл сохраняется в папке D:\Server\htdocs\phpmyadmin.

2014-12-16_120918

Перейдите в браузере по адресу: http://phpmyadmin. Если вы увидите работающий phpMyAdmin, то всё работает отлично!

2014-12-16_121442

Окончание

Итак, на диске C: у вас должно быть такое:

2014-12-16_122405

А на диске D: вот такое:

2014-12-16_122707

2014-12-16_122656

При заходе на http://localhost вы пока должны видеть это:

2014-12-16_123656

Разумеется вы в папку D:\Server\htdocs\www потом можете закинуть любые свои другие файлы вашего сайта.

При заходе на http://phpmyadmin вы пока должны видеть это:

2014-12-16_123720

Если всё это работает, и работает после перезагрузки ОС, то локальный сервер вы настроили и теперь можете работать!

В приложенном ниже архиве есть те файлы php.ini и другие, которые используются у меня (сторо по это этой статьей). Может вам это пригодится.

config_files_for_server.zip

Добавление своего виртуального хоста [дополнительно]

В статье показано как добавлен был виртуальный хост phpmyadmin, то есть по адресу http://phpmyadmin у вас в браузере открывается ваш подсайт. Аналогичным образом добавляете и другие свои локальные сайты.

В папке D:\Server\htdocs создаете папку [Название вашего локального сайта]. Туда кидаете файла своего сайта.

В файле C:\Server\Apache24\conf\extra\httpd-vhosts.conf добавляете строчки

1
2
3
4
5
6
<VirtualHost *:80>
   DocumentRoot "D:/Server/htdocs/[Название вашего локального сайта]"
   ServerName [Название вашего локального сайта]
   ErrorLog "D:/Server/htdocs/[Название вашего локального сайта]/error.log"
   CustomLog "D:/Server/htdocs/[Название вашего локального сайта]/access.log" common
</VirtualHost&gt

В файле C:\Windows\System32\drivers\etc\hosts под администратором добавляете строчку

1
127.0.0.1 [Название вашего локального сайта]

После этого перезагружаете апач сервер через ApacheMonitor или перезагрузкой компа.

После этого по адресу http://[Название вашего локального сайта] в браузере будет открываться локальный сайт.

Удаление служб [дополнительно]

В процессе экспериментов по настройке сервера вы можете захотеть начать всё сначала. По крайней мере, у меня такое было часто) Для этого достаточно удалить папки Server на обоих дисках, так как полноценной установки в Windows не производилось. Но перед этим нужно остановить и удалить службы Apache и MySQL. Ниже приводится алгоритм, как это сделать.

Вызываем программу Службы. Способов много. Можно просто через обычный поиск в Windows 8.1:

2014-12-14_205231

Останавливаем нашу службу.

2014-12-14_205440

Двойным щелчком по названию службы открываем подробности службы.

2014-12-14_205629

И копируем имя службы.

2014-12-14_205640

Закрываем программу, и через поиск находим программу Командная строка:

2014-12-14_205827

Запускаем от имени администратора.

2014-12-14_205841

2014-12-14_205915

Теперь пропишите команду удаления службы:

1
sc delete Apache2.4

И нажмите Enter. Служба удалена.

2014-12-14_210138

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

Служба MySQL удаляется также. После этого можно удалить папки Server с обоих дисков и начать всё сначала, если вам это нужно.


Статьи по теме:

  1. Koken - CMS для фотогалерей - Первый обзор
  2. Функция изменения текста между тэгами в php
  3. Сложение двух чисел на HTML + PHP
  4. Простейшее web-приложение на Java на сервере Tomcat

Web программирование Apache, MySQL, PHP, Сервер, Установка

© 2014 Harrix