Good things should be shared.
Здесь инструкция для Windows. Если у вас Linux, то вам сюда "Установка и настройка Apache, PHP, MySQL, phpMyAdmin на Linux (LAMP)".
Локальный веб-сервер — это очень полезный инструмент. Он нужен и тем кто разрабатывает Web-приложения, и тем, кто учиться работать с разнообразными скриптами, движками, а также тем, кто занимается тестированием на веб-проникновение. Существуют разные популярные сборки «всё в одном», которые включают Apache, PHP, MySQL и другие компоненты. Можно пользоваться и ими. Но самостоятельная установка сервера имеет ряд преимуществ:
- возможность использовать самые новые компоненты, самые свежие версии Apache, PHP, MySQL, phpMyAdmin;
- можно самостоятельно обновлять эти компоненты в день выхода новых версий — не нужно ждать, пока это сделают авторы больших пакетов;
- отсутствие лишних, избыточных компонентов — мы устанавливаем только то, что нам нужно;
- дополнительная безопасность — мы не знаем, какие изменения были внесены авторами разных сборок. При самостоятельной установке мы скачиваем только официальные файлы с официальных сайтов;
- самостоятельная установка сервера — это важный шаг к его изучению, к пониманию глубинных процессов.
Если вы в точности будите следовать всем пунктам данной инструкции, то у вас обязательно всё заработает, независимо от вашей версии Windows!
Установка сервера включает в себя установку и настройку нескольких элементов:
- сам веб-сервер (Apache);
- скриптовый язык PHP;
- система управления базами данных MySQL;
- веб-интерфейс для администрирования СУБД MySQL phpMyAdmin.
- Подготовительная стадия – скачивание Apache, PHP, MySQL, phpMyAdmin
- Выбор структуры сервера
- Установка и настройка Apache
- Установка и настройка MySQL
- Установка и настройка PHP
- Установка и настройка phpMyAdmin
- Использование сервера и бэкап данных
- Дополнительная настройка PHP
- Дополнительная настройка phpMyAdmin
Будем устанавливать самые новые версии программ, скаченные с официальных сайтов. Официальный сайт Apache —
Ссылка скрыта от гостей
. Но данная версия работает только со старыми версиями PHP. Авторы PHP рекомендуют версию с сайта
Ссылка скрыта от гостей
. Поэтому переходим по ссылке
Ссылка скрыта от гостей
Вверху страницы представлено две версии Apache Win64 или Win32. Если у вас 64-битная Windows, то выберите любую (это непринципиально и на работу никак не скажется. Только следуйте правилу, чтобы все версии компонентов сервера были одной битности). Я выбрал 64-битную версию.
Переходим на
Ссылка скрыта от гостей
. Версий много, с непривычки можно запутаться. Самые свежие версии находятся сверху. В разделе 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
2. Выбор структуры сервера.
Теперь всё готово, можно начинать. Несколько слов о структуре нашего сервера.
На диске C создаём каталог Server, в нём создаём каталоги bin (сюда будем устанавливать Apache, PHP, MySQL) и data (здесь будет наш сайт и база данных).
Казалось бы, для чего это нужно? На самом деле, это упрощает резервное копирование. Например, папка bin меняется очень редко и бэкапить её каждый день нет смысла. Напротив же, содержимое нашего сайта и баз данных может меняться ежедневно и имеет смысл делать резервную копию папки data часто. Когда мы обновляем файлы сервера, например, ставим новую версию PHP, то мы можем принудительно сделать копию bin и, в случае ошибок, без проблем откатиться на более старую версию.
Продолжим наши приготовления. В каталоге data создадим две папки:
- DB (здесь будут храниться базы данных)
- htdocs (здесь будут наши сайты)
В каталог bin распаковываем файлы Apache (из архива httpd-2.4.12-win64-VC11.zip), точнее нас интересует только папка Apache24.
После распаковки переходим в каталог c:ServerbinApache24conf и открываем файл httpd.conf любым текстовым редактором.
Меняем
Код:
#ServerName www.example.com:80
Код:
ServerName localhost
Код:
ServerRoot "c:/Apache24"
Код:
ServerRoot "c:/Server/bin/Apache24"
Код:
DocumentRoot "c:/Apache24/htdocs"
Код:
DocumentRoot "c:/Server/data/htdocs/"
Код:
<Directory "c:/Apache24/htdocs">
Код:
<Directory "c:/Server/data/htdocs/">
Код:
DirectoryIndex index.html
Код:
DirectoryIndex index.html index.php index.htm
Сохраняем и закрываем файл. Всё, настройка Apache завершена!
Откройте командную строку (это можно сделать нажав одновременно клавиши Win+X). Выберите там Командная строка (администратор):
И скопируйте туда:
Код:
c:ServerbinApache24binhttpd.exe -k install
Нажмите разрешить, если у вас появится это же окошко.
Теперь вводим в командную строку:
Код:
c:ServerbinApache24binhttpd.exe -k start
Теперь в браузере набираем
https://localhost/
и видим следующее:Это означает две вещи:
- Apache работает
- в каталоге c:Serverdatahtdocs нет ни одного файла.
4. Установка и настройка MySQL 5.6
В каталог bin распаковываем файлы MySQL (из архива mysql-5.6.23-winx64.zip). Переименовываем папку mysql-5.6.23-winx64 в mysql-5.6 (для краткости).
Кстати, распакованная папка mysql-5.6 занимает более полтора гигабайта!
Заходим в эту папку и переименовываем файл my-default.ini в my.ini Теперь открываем этот файл любым текстовым редактором.
Нам нужно сделать только одно, добавить строчку:
Код:
datadir="c:/Server/data/DB/data/"
Настройка завершена, но нужно ещё выполнить установку, для этого открываем командную строку от имени администратора и копируем туда
Код:
"c:Serverbinmysql-5.6binmysqld" –install
Теперь служба MySQL будет запускаться при каждом запуске Windows, но в данный момент она ещё не запущена. Чтобы это сделать, в командной строке нужно набрать
Код:
net start mysql
или просто перезагрузить компьютер.
5. Установка и настройка PHP 5.6
В папке c:Serverbin создаём каталог PHP и копируем в него содержимое архива php-5.6.6-Win32-VC11-x64.zip.
В файле c:ServerbinApache24confhttpd.conf в самый конец добавляем строчки
Код:
PHPIniDir "C:/Server/bin/PHP"
AddHandler application/x-httpd-php .php
LoadModule php5_module "C:/Server/bin/PHP/php5apache2_4.dll"
Код:
c:ServerbinApache24binhttpd.exe -k restart
Копируем в этот файл:
Код:
<?php
phpinfo ();
?>
https://localhost/i.php
. Если вы видите тоже самое, что на картинке, значит PHP работает.Настройка PHP
Настройка 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:ServerbinPHPext"
Теперь разкомментируем целую группу строк:
Код:
;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
Код:
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
Код:
;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
Код:
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
6. Установка и настройка phpMyAdmin
В каталог c:Serverdatahtdocs копируем содержимое архива phpMyAdmin-4.3.11-all-languages.zip. Переименовываем phpMyAdmin-4.3.11-all-languages в phpmyadmin (для лаконичности)
В каталоге c:Serverdatahtdocsphpmyadmin создаём файл 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]['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'] = '';
?>
https://localhost/phpmyadmin/
В качестве имя пользователя вводим root. Поле пароля оставляем пустым. Если всё сделано правильно, то всё должно выглядеть так:
7. Использование сервера и бэкап данных.
В каталоге c:Serverdatahtdocs создавайте папки и файлы, например:
c:Serverdatahtdocstestajax.php – этот файл, соответственно, будет доступен по адресу
https://localhost/test/ajax.php
и т.д.Для создания полного бэкапа всех сайтов и баз данных достаточно скопировать каталог data.
Перед обновлением модулей, делайте бэкап папки bin – в случае возникновения проблем, можно будет легко откатиться к предыдущим версиям.
При повторной установке сервера или при его обновлении, необходимо заново настраивать конфигурационные файлы. Если у вас есть копии этих файлов, то процесс можно значительно ускорить. Желательно забэкапить следующие файлы:
- c:ServerbinApache24confhttpd.conf
- c:Serverbinmysql-5.6my.ini
- c:ServerbinPHPphp.ini
- c:ServerdatahtdocsphpMyAdminconfig.inc.php
8. Дополнительная настройка PHP.
PHP в настоящее время очень мощный, гибкий, удобный инструмент. На локальном компьютере с помощью него можно решать разнообразные задачи, совсем не обязательно связанные с генерацией Web-страниц. При решении неординарных задач можно упереться в ограничения, установленные в настройках. Эти настройки содержаться в файле php.ini (c:ServerbinPHPphp.ini) Рассмотрим некоторые из них:
Код:
memory_limit = 128M
Код:
post_max_size = 8M
Код:
;default_charset = "UTF-8"
Код:
upload_max_filesize = 2M
Код:
max_file_uploads = 20
Код:
max_execution_time = 30
Менять эти настройки совершенно необязательно, но полезно о них знать.
9. Дополнительная настройка phpMyAdmin.
Мы уже настроили phpMyAdmin и большинству вполне достаточно базового функционала. Тем не менее, на стартовой странице phpMyAdmin есть надпись:
«Дополнительные возможности phpMyAdmin не настроены в полной мере, некоторые функции были отключены».
Новыми возможностями являются:
- показ связей между (связанными) таблицами;
- добавление информации о таблицах (начиная с версии 2.3.0 вы можете описывать в специальной таблице ‘table_info’ какая колонка будет показана во всплывающей подсказке при движении курсором над связанным ключом);
- создание PDF-схемы (начиная с версии 2.3.0 вы можете в phpMyAdmin создавать PDF страницы, показывающие связи между вашими таблицами);
- отображать комментарии столбцов (начиная с версии 2.3.0 вы можете делать комментарий с описанием каждого столбца для каждой таблицы. И они будут видны в «предварительном просмотре для печати». Начиная с версии 2.5.0, комментарии используются на собственных страницах таблиц и в режиме просмотра, показываясь как всплывающие подсказки над колонками (таблицы свойств) или встроены в заголовок таблицы в режиме просмотра. Они также могут быть показаны в дампе таблицы);
- создавать закладки (начиная с версии 2.2.0, phpMyAdmin позволяет пользователям делать закладки на запросы. Это может быть полезно для часто используемых запросов);
- история SQL-запросов (начиная с версии 2.5.0 вы можете сохранять вашу историю всех SQL запросов, которые были сделаны через интерфейс phpMyAdmin);
- дизайнер (начиная с версии 2.10.0, доступен инструмент Дизайнер; он позволяет визуально управлять связями между таблицами);
- информация о недавно использованных таблицах;
- настройка интерфейса часто используемых таблиц;
- слежение (начиная с версии 3.3.x доступен механизм слежения. Он помогает вам проследить каждую SQL команду, которая была выполнена phpMyAdmin’ом. Поддерживается запись работы с данными и запись команд. После включения, вы сможете делать версии таблиц);
- пользовательские настройки (начиная с версии 3.4.x, phpMyAdmin позволяет пользователям задавать большинство настроек и сохранять их в базе данных);
- настраиваемые меню (начиная с версии 4.1.0 вы можете создавать группы пользователей, которым будут доступны только назначенные пункты меню. Пользователь может быть определён в группу и будет видеть только пункты меню, доступные для его группы);
- спрятать/показать пункты навигации (начиная с версии 4.1.0 вы можете спрятать/показать пункты в навигационном дереве).
В открывшееся окно браузера скопируйте строчку:
C:
Код:
ServerdatahtdocsphpMyAdminsqlcreate_tables.sql
На страничке phpMyAdmin нажмите «ОК».
После успешного завершения импорта должна появиться новая база данных с названием phpmyadmin.
Перейдите на вкладку «Пользователи».
Нажмите «Добавить пользователя». В поле «Имя пользователя:» впишите pma
Вставьте какой-нибудь пароль, я использую простой пароль – цифра 1 (это локалхост!). В привилегиях менять ничего не надо, нажмите «ОК». Мы автоматически переходим на страничку со списком пользователей, где уже есть pma
Нажмите на «Редактирование привилегий» для данного пользователя. Найдите «Привилегии уровня базы данных». И в пункте «Добавить привилегии на следующую базу данных:» выберите базу данных с именем «phpmyadmin». На новой страничке во вкладке «Привилегии уровня базы данных» нажмите «Отметить все» и нажмите «ОК».
Открываем любым текстовым редактором файл config.inc.php (в директории c:ServerdatahtdocsphpMyAdmin) и добавьте туда следующие строчки.
Замечания:
- в первой строчке пароль замените на свой, который вы вводили, когда создавали пользователя
- строки можно вставлять в любое место в файле, главное, чтобы после $i++; и до символов ?>
Код:
$cfg['Servers'][$i]['controlpass'] = '1';
/* Storage database and tables */
$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
$cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';
$cfg['Servers'][$i]['relation'] = 'pma__relation';
$cfg['Servers'][$i]['table_info'] = 'pma__table_info';
$cfg['Servers'][$i]['table_coords'] = 'pma__table_coords';
$cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';
$cfg['Servers'][$i]['column_info'] = 'pma__column_info';
$cfg['Servers'][$i]['history'] = 'pma__history';
$cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs';
$cfg['Servers'][$i]['tracking'] = 'pma__tracking';
$cfg['Servers'][$i]['designer_coords'] = 'pma__designer_coords';
$cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';
$cfg['Servers'][$i]['recent'] = 'pma__recent';
$cfg['Servers'][$i]['users'] = 'pma__users';
$cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';
$cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding';
$cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches';
$cfg['Servers'][$i]['central_columns'] = 'pma__central_columns';
$cfg['Servers'][$i]['favorite'] = 'pma__favorite';
Несколько скриншотов новых функций:
1) Дизайнер
2) Слежение
Следующим шагом, после настройки и тестирования сайта на локалхосте, является выбор качественного и дешёвого интернет хостинга. Я перебрал довольно много решений и нашёл очень хороший вариант — 100 рублей в месяц! За эти деньги даётся профессиональный хостинг, с отличным аптаймом, с бесплатным доменом второго уровня в подарок (!), с 2 гигабайтами места на SSD диске, с неограниченным количеством баз данных, с возможностью подключать неограниченное количество новых доменов (платить придётся только за каждый новый домен — 139 рублей). Вообще, всего хорошего так много, что проще всего посмотреть это
Ссылка скрыта от гостей
.Кстати, а ведь как здорово иметь собственное доменное имя! Хотя бы для того, чтобы сделать для себя красивый почтовый ящик, вместо чего-нибудь вроде vovan_pupkin_murom1995@mail.ru. Вот
Ссылка скрыта от гостей
можно найти свой собственный домен. Например, я получил бесплатно домен codeby.net, я могу делать почтовые ящики: admin@codeby.net, alex@codeby.net, al@codeby.net и так далее — количество ящиков ничем не ограничено!Посмотрите, я уверен, это предложение заинтересует любого администратора сайта (хоть начинающего, хоть продвинутого), поскольку это хостинг с настоящим качеством от профессионалов. Кстати, у меня есть
Ссылка скрыта от гостей
, дающий бесплатный месяц, если хотите, можете воспользоваться.