В статье рассказывается о том, как настроить связку 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/
Можно файл скачать у меня:
Апач скачиваем не с официального сайта, а с другого, так как php новых версий не будет работать с стандартным апачем. Битность выбираем соответствующую.
http://www.apachelounge.com/download/
Можно у меня скачать:
Для работы с базами данных скачиваем phpMyAdmin с этого сайта. Там только один вариант для загрузки:
http://www.phpmyadmin.net/home_page/index.php
Или скачиваем у меня:
phpMyAdmin-4.3.2-all-languages.zip
И скачиваем MySQL с сайта:
http://dev.mysql.com/downloads/mysql/
Я скачивал файл Windows (x86, 64-bit), ZIP Archive.
И да, у вас сайт попросит зарегистрироваться, чтобы вы могли скачать файл.
Можно у меня скачать:
Итого у нас 6 файлов, два из которых (библиотеки Microsoft) мы устанавливаем уже сейчас.
Структура папок
У меня два диска: основной C: с программами и D: с пользовательскими файлами.
На диске C: создаем папку Server в которую скидываем архивы Apache, php и MySQL.
На диске D: создаем папку Server, в которой создаем папки DB и htdocs. В папке htdocs создаем папки www и phpmyadmin. В последнюю копируем наш архив phpMyAdmin.
Установка Apache
В папке C:\Server разархивируем архив с Apache и оставим только папку Apache24, а файлы ReadMe.txt и — Win64-2.4.10 VC11 update 4 — (у вас может по другому называться) удалим. Архив с Apache тоже удалим, так как он нам не нужен.
Ищем теперь файл C:\Server\Apache24\conf\httpd.conf и открываем его в любом текстовом редакторе. Я использую Notepad++.
Ищем и меняем в нем строчку
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 |
Теперь запустим приложение C:\Server\Apache24\bin\httpd.exe:
Откроем браузер и введем http://localhost и жмем Enter.
Увидим вот это:
Создадим текстовой файл 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, то получим:
А при заходе на адрес http://phpmyadmin/ получим вот это.
Закрываем приложение httpd.exe. Тем самым мы закрыли наш созданный сервер. Сделаем так, чтобы сервер был всегда открыт при запуске системы.
Откроем командную строку под администратором. Через поиск находим программу Командная строка:
Запускаем от имени администратора.
Вводим там:
1 |
c:\Server\Apache24\bin\httpd.exe -k install |
И нажимаем Enter:
Служба Apache24 установилась. Теперь сервер будет всегда работать при работе операционной системы.
Закрываем командную строку (а можете и не закрывать: еще пригодится).
Открываем приложение C:\Server\Apache24\bin\ApacheMonitor.exe. В трее должна появится иконка.
Щелкаем по ней и выбираем кнопку Start.
Если иконка изменилась на зеленый квадратик, то всё в порядке.
Если осталась с красной точкой то проверьте все шаги. И проверьте: вы закрыли или нет httpd.exe.
И еще. Если сервис Apache24 запускается автоматически при старте ОС, то ApacheMonitor.exe нет, что было раньше при наличии установщика Apache в предыдущих версиях. Так что либо где-нибудь ярлык на программу оставьте или добавьте программу в автозагрузку. Но это не обязательно, так как это только монитор активности сервиса Apache.
Установка PHP
Создадим папку PHP в папке C:\Server и туда разархивируем архив с php. Сам архив потом удалим.
В конец файла 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" |
В папке D:\Server\htdocs\www удаляем файл index.html и добавляем текстовой файл index.php с таким содержимым:
1 2 3 |
<?php phpinfo (); ?> |
Перезапускаем сервер:
И в браузере открываем http://localhost:
Если видите такое, как выше, то всё в порядке.
В папке 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:
Найдите в 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.
Установка MySQL
Разархивируем архив с MySQL и переименуем его в mysql.
Открываем командную строку под администратором опять.
В ней вводим команду (не забываем нажимать Enter):
1 |
C:\Server\mysql\bin\mysqld --console |
Появится много строк. Если последняя такая же как на скриншоте, то всё в порядке.
Открываем еще одно окно с командной строкой под администратором, а это закрываем.
Запускаем от имени администратора.
Во второй командной строке вводим команду:
1 |
C:\Server\mysql\bin\mysql -u root |
Должна появится в конце строчка mysql>.
На всякий случай проверим работоспособность mysql. Введем команду во второй команадной строке:
1 |
show databases; |
Если видите, что показано две базы данных, то всё в порядке.
Во второй командной строке введем команды:
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'; |
Введем команду для проверки добавления пароля у пользователя:
1 |
SELECT user, host, password FROM user; |
Всё нормально, если вот такое видите:
Введем команду:
1 |
FLUSH PRIVILEGES; |
И команду:
1 |
exit |
Если в дальнейшем вам нужно будем войти в MySQL, но в командной строке надо будет ввести команду (сейчас это не нужно делать):
1 |
C:\Server\mysql\bin\mysql -u root -p |
В папке C:\Server\mysql файл my-default.ini переименуем в файл my.ini.
Откроем этот файл my.ini и в самом конце добавим строчку:
1 |
datadir="d:/Server/DB/data/" |
Из папки C:\Server\mysql вырежем папку data и перенесем ее в папку D:\Server\DB:
В командной строке введем команду (если честно, то я заново открыл командную строку в третий раз, но это не обязательно. При этом первую командную строку закрыл только сейчас):
1 |
C:\Server\mysql\bin\mysqld.exe --install MySQL --defaults-file="C:\Server\mysql\my.ini" |
Если написано, что всё прошло успешно, то всё замечательно:
Запустим службу MySQL командой:
1 |
net start mysql |
Проверим работу 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, то всё хорошо!
Установка phpMyAdmin
В папке D:\Server\htdocs\phpmyadmin удалим файл index.html.
И разархивируем в папку наш скаченный архив с phpmyadmin.
Создайте текстовой файл 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.
Перейдите в браузере по адресу: http://phpmyadmin. Если вы увидите работающий phpMyAdmin, то всё работает отлично!
Окончание
Итак, на диске C: у вас должно быть такое:
А на диске D: вот такое:
При заходе на http://localhost вы пока должны видеть это:
Разумеется вы в папку D:\Server\htdocs\www потом можете закинуть любые свои другие файлы вашего сайта.
При заходе на http://phpmyadmin вы пока должны видеть это:
Если всё это работает, и работает после перезагрузки ОС, то локальный сервер вы настроили и теперь можете работать!
В приложенном ниже архиве есть те файлы php.ini и другие, которые используются у меня (сторо по это этой статьей). Может вам это пригодится.
Добавление своего виртуального хоста [дополнительно]
В статье показано как добавлен был виртуальный хост 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> |
В файле C:\Windows\System32\drivers\etc\hosts под администратором добавляете строчку
1 |
127.0.0.1 [Название вашего локального сайта] |
После этого перезагружаете апач сервер через ApacheMonitor или перезагрузкой компа.
После этого по адресу http://[Название вашего локального сайта] в браузере будет открываться локальный сайт.
Удаление служб [дополнительно]
В процессе экспериментов по настройке сервера вы можете захотеть начать всё сначала. По крайней мере, у меня такое было часто) Для этого достаточно удалить папки Server на обоих дисках, так как полноценной установки в Windows не производилось. Но перед этим нужно остановить и удалить службы Apache и MySQL. Ниже приводится алгоритм, как это сделать.
Вызываем программу Службы. Способов много. Можно просто через обычный поиск в Windows 8.1:
Останавливаем нашу службу.
Двойным щелчком по названию службы открываем подробности службы.
И копируем имя службы.
Закрываем программу, и через поиск находим программу Командная строка:
Запускаем от имени администратора.
Теперь пропишите команду удаления службы:
1 |
sc delete Apache2.4 |
И нажмите Enter. Служба удалена.
Возможно придется перезагрузить комп, чтобы служба полностью удалилась. Один раз мне такое потребовалось.
Служба MySQL удаляется также. После этого можно удалить папки Server с обоих дисков и начать всё сначала, если вам это нужно.