Возникла необходимость поставить отдельно эту связку на Windows 7 (без помощи Denwer и прочих пакетов).
Хабрахабр стоит, наверное, на первом месте в моем рейтинге сайтов, которые я регулярно посещаю и читаю. Странно, но я не увидел на Хабре толковой инструкции по установке связки Apache+PHP+MySQL. Если вы опытный пользователь, то смело проходите мимо, если же заинтересовались вопросом и вам нужна помощь в установке этих компонентов, добро пожаловать под кат.
Вступление
Сразу хочу оговориться, что да, есть много похожих статей на просторах интернета, но я сам только что пытался установить сервер по этим статьям и на все потратил около 6 часов. Пришлось собирать информацию в разных статьях, возникали непонятные ошибки, которые не были описаны в них, приходилось искать решения и тратить на это не мало времени. Я хочу собрать все в одном месте, в этом посте.
Все, что я делаю ниже, я делаю на системе Windows 7 x64. Версия Apache 2.2.25, PHP 5.3.5 VC6, MySQL 5.6. Добавлю еще phpMyAdmin 4.0.6.
Рекомендации
Я советую все ставить в одно место, я, например, все компоненты ставил в C:/Servers/, а сайты храню в C:/Sites/ (ниже расскажу что это).
После каждого изменения в конфигурационных файлах делайте рестарт сервера Apache. Это необходимо, для того, чтобы изменения вступили в силу. С другой стороны, это нужно для того, чтобы вы узнали о ошибке сразу, после редактирования и понимали, что дало ошибку и что надо исправить.
Разделим установку на 2 этапа: сама установка и настройка. Итак, поехали!
Этап 1. Установка
1. Установка Apache
В первую очередь, вам необходимо скачать дистрибутив сервера Apache. Сделать это можно с оффициального сайта: httpd.apache.org/download.cgi. Я использовал версию 2.2.25 и объяснять все буду на ее примере.
Затем, запустите установочный файл, следуйте инструкциям.
Здесь введите данные, в общем-то можно ввести чего душа пожелает. Когда предложат выбрать способ установки, выберите Typical, затем предложат выбрать путь установки. Как я уже сказал, лучше поставить все в одном месте, я выбрал путь C:/Servers/Apache. Завершите установку сервера Apache. Сразу после установки сервер будет запущен, в правом нижнем углу экрана появится значок пера, кликнув на которое можно перезапустить, запустить или остановить Apache. Пока его можно остановить.
Кстати, запускать и останавливать Apache можно с помощью команд в командной строке Windows (Пуск — Выполнить — cmd или Сочетание клавиш Win+R и вписать cmd).
Для запуска:
net start apache2.2
Для остановки:
net stop apache2.2
Если вы ставите другую версию Apache, служба может называться по-другому.
Предупреждаю, что сервер будет запускаться при каждом запуске компьютера, если вы этого не хотите, уберите эту службу из автозагрузки.
Не сложно, правда?
2. Установка PHP
Скачайте дистрибутив PHP. Мы установили Apache 2.2, на сайте php сказано, что под 2.2 нужно ставить PHP версии 5.2 VC6 или 5.3 VC6. Так и поступим. Скачать его можно с оф. сайта, но версию 5.3.5, которую я использовал, на обычной странице загрузки вы не найдете, она сравнительно старая, поэтому найти ее можно в архиве по этой ссылке windows.php.net/downloads/releases/archives/. Найдите в списке php 5.3.5 vc6.
Здесь установочного файла нет, все намного проще. Создайте в каталоге Servers новую папку PHP, скопируйте в нее только что скачанный дистрибутив php. PHP установлен!
3. Установка MySQL
Нужно скачать MySQL с официального сайта edelivery.oracle.com/. Если еще нет аккаунта, зарегистрируйтесь, это займет 2 минуты. После регистрации и входа подтвердите соглашения, затем выберите, что хотите скачать — «MySQL Database» и платформу (в моем случае это Microsoft Windows x64). Когда файл загрузится, запустите установку.
Нажмите Install MySQL Products, проверьте наличие новых версий, продолжайте установку, пока не появится окно с выбором типа установки.
Я советую выбрать Server Only, так как нам нужен только сервер. Обратите внимание на Installation Path! Лучше установите MySQL рядом с остальными компонентами в C:/Servers/MySQL. Data Path указывает, где будут хранится сами данные, этот путь не нужно изменять. Продолжите установку, подождите пока она завершится, MySQL сервер нужно настроить сразу после установки.
Всего три шага.
На первом установите все так, как на картинке. Порт оставьте стандартным — 3306. Он нужен для подключения СуБД.
Нажмите «Далее», появится следующее окно.
В верхней части необходимо ввести главный пароль MySQL. Важно запомнить его, он вам понадобится, например, при установке phpMyAdmin.
Затем создайте нового пользователя. Нажмите кнопку «Add user», появится следующее окно:
Заполните все поля. В Host, Role и Authentication введите тоже самое, что и на картинке. Затем введите имя пользователя, пароль и подтверждение. Эти данные тоже нужно запомнить.
На третьем этапе нужно выбрать название службы. Заранее скажу, что вам придется запускать mysql сервер через командную строку, поэтому нужно запомнить это название. Если вы хотите, чтобы MySQL сервер запускался автоматически, оставьте галочку Start the Mysql Server at System Startup. Осталось чуть-чуть! Несколько раз нажмите «Далее» и завершите установку.
Теперь, для того, чтобы запустить mysql сервер нужно в командной строке Windows написать
net start mysql
Вместо mysql впишите название службы сервера MySQL.
Для остановки сервера в командной строке нужно написать
net stop mysql
О установке phpMyAdmin расскажу позже, будем считать это настройкой.
Итак, мы установили все необходимое, теперь нужно все это настроить.
Этап 2. Настройка
1. Настройка Apache
Начальная настройка
Напомню — делайте перезапуск Apache после каждого изменения в файлах, это поможет избежать проблем.
Итак, если сервер Apache еще не запущен, запустите его через иконку в трее или с помощью команды
net start apache2.2
Создайте папку C:/Sites/ (в этой папке будут храниться все ваши сайты). В этой папке создайте еще одну — localhost. В ней создайте три папки: logs, cgi, www — для логов, cgi-скриптов и www-скриптов соответственно. В www создайте файл index.html примерно с таким содержимым:
<html><body><h1>Привет, хабраюзер!</h1></body></html>
Для настройки Apache нам нужно править файл httpd.conf. У нас он находится тут: C:/Server/Apache/conf/httpd.conf. Открываем его.
Поиском найдите ServerRoot и поправьте запись так, чтобы она выглядела следующим образом:
ServerRoot "C:/Server/Apache"
Найдите ServerName, раскомментируйте (это значит убрать # в начале строки), если нужно и измените так:
ServerName localhost:80
Теперь ищите Listen, поправьте так:
Listen 80
Выполняя последние 2 пункта, обратите внимание на то, что другие программы тоже могут использовать порт 80 (например, какой-нибудь мессенджер). Тут 2 пути: настроить эту программу на другой порт или прописать другой порт в Apache.
Теперь ищем DocumentRoot и правим так:
DocumentRoot "C:/Sites/localhost/www"
Теперь нужно добавить в httpd.conf, например в конец, это:
<Directory "C:/Sites"> AllowOverride All Order deny,allow Allow from all </Directory>
Помните про рестарты сервера и проверки? Самое время!
Открывайте браузер, в адресной строке пишите localhost. Все работает? Супер! Если нет, то проверьте еще раз, что вы сделали. Если ошибка не найдется, попробуйте использовать утилиту Test Configuration (меню Пуск — Apache — Configure Apache Server). Если и это не поможет, то отмените все изменения (или можно взять httpd.conf.bak файл из папки conf и заменить им основной) и убедитесь, что чистый сервер Apache работает, а уже затем делайте исправления под себя.
Запуск нескольких сайтов на одном локальном сервере
Итак, минимум работает.
Бывает такое, что нам нужно хранить и работать с несколькими сайтами. Для этого существуют виртуальные хосты.
Во-первых в httpd.conf найдите строку #Include conf/extra/httpd-vhosts.conf и уберите знак # в начале строки, чтобы получилось так:
Include conf/extra/httpd-vhosts.conf
В папке C:/Servers/Apache/conf/extra редактируете файл httpd-vhosts.conf
Добавляете в конец:
<VirtualHost *:80> ServerAdmin admin@admin.ru DocumentRoot "C:/Sites/localhost/www" ServerName localhost ServerAlias tmp.localhost ErrorLog "C:/Sites/localhost/logs/errors.log" CustomLog "C:/Sites/localhost/logs/acess.log" common </VirtualHost>
Мы добавили виртуальный хост. В браузере будем набирать localhost (ServerName). Можем набрать tmp.localhost (ServerAlias — сюда можно вписать что угодно еще, это для дополнительных вариантов названия сайта), файлы сайта лежат в C:/Sites/localhost/www (DocumentRoot), ErrorLog и AcessLog — логи ошибок и запросов.
Рестарт сервера! Проверьте, что получилось? Вводите в браузере localhost и он должен вам сказать: «Привет, хабраюзер!».
Затем, чтобы заработали и другие сайты, делаете это:
1. Создаете папку в каталоге Sites, например, mysite.ru. В ней, создаете папки logs, cgi, www.
2. В папке C:/Servers/Apache/conf/extra редактируете файл httpd-vhosts.conf
Нужно добавить в конец файла такой блок:
<VirtualHost *:80> ServerAdmin admin@admin.ru DocumentRoot "C:/Sites/mysite.ru/www" ServerName mysite.ru ServerAlias www.mysite.ru ErrorLog "C:/Sites/mysite.ru/logs/errors.log" CustomLog "C:/Sites/mysite.ru/logs/acess.log" common </VirtualHost>
3. В файле C:/WIndows/System32/drivers/etc/hosts добавляете в конец запись:
127.0.0.1 mysite.ru
Это заставит браузер грузить 127.0.0.1, когда мы наберем в адресной строке mysite.ru.
Все готово! Рестарт и пробуйте загрузить mysite.ru. Получилось? Отлично.
Теперь, когда захотите добавить новый сайт, повторяете эти три шага.
Подключаем php к Apache
Будем опять работать с httpd.conf. Добавим в конец:
LoadModule php5_module "C:/Servers/PHP/php5apache2_2.dll" PHPIniDir "C:/Servers/PHP" AddType application/x-httpd-php .php
Подключаем модуль, указываем путь к php.ini, указываем серверу, что нужно обрабатывать php документы, как php документы соотвественно.
Ищем DirectoryIndex index.html и меняем его так:
DirectoryIndex index.php index.html
Это нужно для того, чтобы по-умолчанию при открытии адреса загружался файл index.php или index.html. Если запись была бы такая: DirectoryIndex index.php, то при открытии адреса автоматически загружался бы файл index.php. Например, введем example.com и по-умолчанию откроется example.com/index.php. Если же DirectoryIndex не указан, то придется вводить полный адрес example.com/index.php, а по краткому адресу example.com/ сайт будет не доступен. Кстати, важен порядок. В директории сайта может быть и файл index.php, и файл index.html. При такой записи, как сделали мы, сначала сервер будет искать index.php, а если не найдет, будет искать index.html.
2. Настройка PHP
Здесь будем редактировать php.ini, который находится по пути C:/Servers/PHP. Сначала переименуйте php.ini-production в php.ini.
Чтобы можно было писать тег начала синтаксиса php в кратком виде, то есть так:
<? /* код php */ ?>
необходимо найти в файле php.ini строку short_open_tag = Off и поменять ее так:
short_open_tag = On
Затем найдите display_errors и измените так:
display_errors = Off
Проверим работу. Создайте файл index.php в C:/Sites/mysite.ru/www с таким содержимым:
<? echo phpinfo(); ?>
Перезагружайте сервер и наберите в браузере mysite.ru, должна появится таблица на фиолетовом фоне с информацией об установленном PHP (версия и т.д.). Вы только что подключили php.
3. Настройка MySQL
В общем-то MySQL уже настроен, осталось подключить его к PHP.
В файле php.ini раскомментируйте (то есть нужно убрать знак; в начале каждой строки) следующие строки:
extension=php_mbstring.dll extension=php_mysql.dll extension=php_mysqli.dll
В этом же файле найдите строку extension_dir. Если она закомментирована, раскомментируйте и измените, чтобы она выглядела так:
extension_dir = "C:/Servers/PHP/ext"
Таким образом, мы указали путь к расширениям, которые раскомментировали выше.
Теперь и mysql подключен. Чтобы проверить его работу, создайте новый (или измените старый) файл index.php в папке C:/Sites/mysite.ru/www со следующим содержимым:
<?php $dblocation = "127.0.0.1"; $dbname = "mysql"; // эта база создается автоматически $dbuser = "admin"; // ваш пользователь $dbpasswd = "admin"; // пароль к пользователю (не к MySQL) $dbcnx = @mysql_connect($dblocation, $dbuser, $dbpasswd); if (!$dbcnx) { echo "<p>К сожалению, не доступен сервер mySQL</p>"; exit(); } if (!@mysql_select_db($dbname,$dbcnx) ) { echo "<p>К сожалению, не доступна база данных</p>"; exit(); } $ver = mysql_query("SELECT VERSION()"); if(!$ver) { echo "<p>Ошибка в запросе</p>"; exit(); } echo mysql_result($ver, 0); ?>
Если все правильно, будет выведена версия MySQL.
4. Настройка phpMyAdmin
Необходимо скачать дистрибутив phpMyAdmin. Загрузить его можно с официального сайта www.phpmyadmin.net/home_page/index.php/.
Содержимое скачанного архива распакуйте в папку C:/Sites/localhost/www/phpMyAdmin.
Создайте в этой папке файл config.inc.ini с таким содержимым:
<?php $i = 0; $i++; $cfg['Servers'][$i]['host'] = 'localhost'; $cfg['Servers'][$i]['extension'] = 'mysqli'; $cfg['Servers'][$i]['connect_type'] = 'tcp'; $cfg['Servers'][$i]['compress'] = false; $cfg['Servers'][$i]['auth_type'] = 'config'; $cfg['Servers'][$i]['user'] = 'root'; // логин : root $cfg['Servers'][$i]['password'] = 'root'; // пароль, который вы вводили при установке MySQL ?>
Еще нужно поправить httpd.conf в папке C:/Servers/Apache/conf. Найдите блок, начинающийся с <IfModule alias_module> и внутри этого блока добавьте это:
Alias /pma "C:/Sites/localhost/www/phpmyadmin"
Теперь phpMyAdmin будет доступен по адресу localhost/pma или, например, mysite.ru/pma. phpMyAdmin тоже установлен и готов управлять вашими базами данных.
Вот и всё! Всё готово и работает.
Хочу добавить только вот что. Для более тонкой настройки или, если вдруг у вас появились вопросы, у всех продуктов есть хорошая документация.
Apache httpd.apache.org/docs/2.2/ (общий док по 2.2.), а также httpd.apache.org/docs/2.2/mod/core.html (список деректив, их описание и пр.)
PHP www.php.net/docs.php (en) и www.php.net/manual/ru/ (ru)
phpMyAdmin docs.phpmyadmin.net/en/latest/
Я справился с задачей установки сервера больше чем за пол рабочего дня, надеюсь моё how-to позволит вам сэкономить время и сделать все это быстрее!
ссылка на оригинал статьи http://habrahabr.ru/post/198278/
Добавить комментарий