Время идет :) верней несется :). Сегодня будем устанавливать и настраивать на Windwos Server 2012 Data Center расположенный в облаке Azure следующие компоненты:
- Apache 2.2.25 (Win32 x86) с OpenSSL 0.9.8y (download)
- PHP 5.4.17 (Win32, VC9 x86 Thread Safe) (download)
- MySQL 5.6.12.2 (x64) (download)
И так поехали!
1) В корне диска F: создаем папку iServer и в ней создаем папку PHP
2) Прописываем путь к папке PHP в системную переменную PATH. Для этого выполняем следующие операции:
- нажимаем клавиши Windows+Break
- выбираем Advanced System Settings
- далее выбираем Environment Variables
- в части System Variables выбираем параметр PATH, клацаем по нему два раза и добавляем к концу строки наш путь (с точкой запятой перед ним) ;F:\iServer\PHP
- Затем клацаем везде ОК и делаем выход из системы и снова входим. Это нужно для того чтобы переменная Path получила новое значение.
- Запускаем cmd.exe и проверяем что переменная Path получила новое значение введя команду set и жмакнув по Enter
3) В корне диска G: создаем две папки iSites (тут будут лежать наши сайты) и iLogs (тут будут жить общие логи сервера).
4) В папке G:\iSites создаем два подкаталога localhost и testru и далее в каждом из них свои подкаталоги www,log и ssl
5) Скачиваем дистриб Apache под Win32 с поддержкой SSL (на момент написания статьи httpd-2.2.25-win32-x86-openssl-0.9.8y.msi). И запускаем на выполнение.
6) На этом окошке смело жмем Next
7) Принимаем лицензионное соглашение
8) Внимательно и вдумчиво читаем вот это...
9) Заполняем все поля как на скриншоте
10) Выбираем Custom
11) Выбираем опции как на скриншоте и путь установки F:\iServer\Apache
12) Жмакаем Install...
13) После установки в трее должен появиться значек консоли управления сервисом - Apache
Если по нему дважды клацкнуть, то должно открыться окошко управления сервисом
14) Проверяем установку запустив браузер и введя в строке адреса localhost. Видим страницу с надписью It Works!. Радуемся жизни. Что-то уже работает.
15) Далее отыскиваем файлик hosts, который обычно находится по пути C:\WINDOWS\system32\drivers\etc\ и добавляем в него запись 127.0.0.1 test.ru и сохраняем.
Это укажет браузеру где искать наш тестовый домент test.ru. Кстати, заметьте, что в файле уже присутствует запись 127.0.0.1 localhost. Именно по этому браузер и узнал ip сайта localhost, когда мы ввели это имя в строке адреса браузера. Проверяем теперь это в браузере.
Но не шибко радуемся. Так как это еще не мультихостинг. :) Для него еще много что надо настроить.
16) Теперь будем прикручивать PHP. На текущий момент это версия PHP 5.4.17. Качаем дистриб в ZIP архиве. Еще раз повторюсь не инсталер с расширением .MSI, а именно ZIP архив. Файлик на момент написания статьи называется php-5.4.17-Win32-VC9-x86.zip, вот его и качаем.
17) Разархивируем содержимое скачанного архива в папку F:\iServer\PHP
18) Прикручивать PHP к Apache будем как модуль Apache. Для этого идем в каталог F:\iServer\Apache\conf, и добавляем в файлик httpd.conf в окончание блока инструкций LoadModule (в строки 130 и 131) две строки:
LoadModule php5_module "F:/iServer/PHP/php5apache2_2.dll"
PHPIniDir "F:/iServer/PHP/"
19) Находим в файлике httpd.conf инструкции AddType, в конец этого блока (в моем случае в строку 409) вставляем инструкцию:
AddType application/x-httpd-php .php
20) Находим в файле httpd.conf блок инструкций DirectoryIndex. И добавляем в инструкцию DirectoryIndex указание на файл index.php. Чтобы в конечном виде инструкция выглядела так:
DirectoryIndex index.html index.php
Сохраняем httpd.conf и выходим.
21) Переименовываем или копируем файл php.ini-production (в каталоге F:\iServer\PHP) в файл php.ini.
22) Находим в файле php.ini строку short_open_tag = Off. И приводим ее к виду short_open_tag = On
23) Создаем в каталоге R:\Server\Apache\htdocs файлик phptest.php и пишем в нем следущий код:
<?
phpinfo();
?>
Сохраняем файлик.
24) Останавливаем и снова запускаем Apache через консоль управления Apache. После перезапуска Apache можно открыть окно управления сервисом Apache дважды кликнув по иконке в трее. Должны увидеть следующее окошко:
Обратите внимание, что в статусной панели сервиса управления Apache отображается, что так же загружен модуль PHP и указана его версия.
Если вы этого не увидели, то сверните окошко и разверните его снова. Если и это не помогло, значит, что то сделали не так и 25 шаг, скорее всего у вас сделать не получится.
25) Тестируем работу PHP. Набираем в браузере http://localhost/phptest.php и видим следующую картинку и радуемся жизни. PHP заработал:
Если такого не видим, то повторяем все шаги снова, до тех пор пока не увидим :).
26) Позаботимся немного о безопасности нашего сервера. По умолчанию, при установке, сервис Apache запускается под пользователем SYSTEM, который имеет в системе максимальные права. Это не есть гуд. Сейчас будем исправлять эту ситуацию.
- создаем учетную запись iUser и назначаем ей пароль срок действия которого ни когда не истекает
- проверяем чтобы она входила только в группу пользователи
- запрещаем для пользователя iUser локальный вход и выставляем право работать в режиме операционной системы и вход в качестве службы через оснастку gpedit.msc
- Даем учетной записи iUser право на запись в папку F:\iServer\Apache\logs. И только в эту папку. По умолчанию в другие папки доступа на запись и не должно быть. Потом, после переноса файлов логов сервера в другое место, права на эту папку для iUser можно убрать, так как они будут не нужны.
- Через оснастку управления службами устанавливаем запуск сервиса Apache2.2 под учетной записью iUser
- Перезапускаем службу Apache2.2
- Ну и проверяем работу зайдя по адресу http://localhost
Кроме того, для некоторых CMS типа Joomla, нужно будет дать разрешение отдельно и только на запись в файл конфигурации. Это еще одна из настроек безопасности для сайта. Ну это так для общего развития инфа :)
28) Идем в папку F:\iServer\Apache\conf\extra и редактируем файл httpd-vhosts.conf. Приводим его к вот такому виду:
29) Раскомментируем в файле httpd.conf строчки
LoadModule logio_module modules/mod_logio.so
Include conf/extra/httpd-vhosts.conf
30) В файле httpd.conf находим строку DocumentRoot "F:/iServer/Apache/htdocs" и меняем ее на DocumentRoot "G:/iSites/localhost/www"
31) В файле httpd.conf находим строку <Directory "F:/iServer/Apache/htdocs"> и меняем ее на <Directory "G:/iSites">
32) В файле httpd.conf находим строку ErrorLog "logs/error.log" и меняем ее на ErrorLog "G:/iLogs/error.log"
33) В файле httpd.conf находим строку CustomLog "logs/access.log" common и меняем ее на CustomLog "G:/iLogs/access.log" combinedio
34) В каталоге G:\iSites\localhost\www создаем файлик index.html со следующим содержимым:
<H1>It is my LocalHost</H1>
35) В каталоге G:\iSites\testru\www создаем файлик index.html со следующим содержимым:
<H1>It is my TEST.RU</H1>
36) Рестартуем Apache. Заходим браузером по адресу http://localhost и видим следующие:
Заходим по адресу test.ru и видим следующее:
Радуемся реально работающему виртуальному хостингу.
Если не видим, то не радуемся. И ищем где ошиблись.
37) Языковые настройки. Редактируем файлик F:\iServer\Apache\conf\extra\httpd-languages.conf. Комментируем все строки AddLanguage с теми языками, которые нам не нужны. Я оставил только строки:
AddLanguage en .en
AddLanguage ru .ru
Находим строку LanguagePriority и убираем там все языки, которые не нужны. У меня эта строчка выглядит так:
LanguagePriority en ru
Сохраняем файл.
В файле httpd.conf расскомментируем строчку Include conf/extra/httpd-languages.conf.
38) Включаем SSI. В файле httpd.conf находим строки:
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
И расскоментируем их.
Находим блок <Directory "G:/iSites"> и в нем строку Options Indexes FollowSymLinks. Приводим ее к виду Options Indexes FollowSymLinks Includes
Сохраняем файл.
39) В каталоге G:\iSites\localhost\www создаем файл ssi.html со следующим содержимым:
SSI тест прошел успешно - ssi.html!
Затем, там же создаем файл ssitest.shtml со следующим содержимым:
<!--#include virtual="/ssi.html" -->
40) Рестартуем Apache. В броузере вводим адрес http://localhost/ssitest.shtml и видим следующее:
Радуемся что работает русский язык и SSI. Если не увидели, то упорно ищем ошибку.
41) Вот и настала очередь мускула. Скачиваем x64 версию 5.6.12.2 MySQL (эта последняя на момент написания статьи и файлик назывался mysql-installer-community-5.6.12.2.msi). Стоит обратить внимание что хоть файл msi 32 разрядный, но он устанавливает обе версии x32 или x64 в зависимости от платформы. И так, клацаем по нему и понеслась установка…
сперва мелькнет вот такой экран
потом такой
и вот на этом выбираем Install MySQL Products
42) Соглашаемся с лицензией и жмем Next
43) Ставим еще одну галку… ну не надо нам проверять наличие новой версии… и так новую уже качнули самую новую
44) Выбираем пункт меню Custom и каталоги где будут размещаться бинарные файлы и файлы баз данных. Восклицательный знак в желтом треугольнике предупреждает, что каталог для данных уже существует. Но я сам его создал и он пустой, так что все ок. Жмем Next…
45) Теперь кастомизируем :)
И жмакаем Next
46) Тут может потребовать еще установить недостающие компоненты типа библиотек VC, если попросил, то качаем, ставим и продолжаем установку. У меня уже стоял редистрибютив VC10, так что просто жмем Next
47) Терь жмем Execute
48) Отекзекютили… :) и жмем Next
49) Опять жмем Next
50) Выбираем все как на скрине и жмем Next
51) Задаем root пароль для MySQL и создаем первого пользователя – администратора баз данных
обращаем внимание что поле Current Root Password оставляем пустым
И жмем Next
52) Задаем как будет называться наш сервис MySQL в службах винды и так же пользователя под которым она будет запускаться. И очень важно!!! Пользователю iUser надо дать разрешение на запись в папку G:\iMySQLData и все ее подпапки.
53) Задаем где будут жить логи скуля и жмем Next
54) Опять жмем Next
55) Жмем Finish
56) Проверяем работу MySQL (пока отдельно без привязки к Apache и PHP). Даем из командной строки команду
"F:\iServer\MySQL\MySQL Server 5.6\bin\mysql.exe" -h localhost -P 3306 -u root -p
на запрос пароля вводим пароль и даем команду
show databases;
видим это:
И радуемся если видим. Если не видим, чешем репу и ищем ошибки.
57) Прикручиваем MySQL к Apache, хотя вернее сказать к PHP, ну а он уже прикручен к Apache. Вот такой паровозик получается. Итак редактируем файлик F:\iServer\PHP\php.ini. Находим в нем строчки
extension=php_mysql.dll
extension=php_mysqli.dll
и раскомментируем их. Затем находим строку mysql.default_port = и приводим ее к виду mysql.default_port = 3306. Далее находим строку mysql.default_host = и приводим ее к виду mysql.default_host = localhost
Находим строку extension_dir = "ext", расскомментируем ее и приводим ее к виду extension_dir = "F:/iServer/PHP/ext"
Указывая этим самым где находятся файлы расширений PHP.
Перезапускаем Apache.
В каталоге G:\iSites\localhost\www создаем файлик mysqltest.php и вводим туда следующий код:
<?php
$db = mysql_connect("localhost", "root", "ВАШ ROOT ПАРОЛЬ К MySQL")
or
die("Could not connect : " . mysql_error());
mysql_select_db("test",$db) or die ("Could not select database");
$date = mysql_query("SELECT CURDATE()") or die ("Query failed: " . mysql_error());
echo mysql_result($date, 0);
mysql_close($db);
?>
В броузере вводим адрес http://localhost/mysqltest.php и если все сделали правильно, то видим текущую дату.
58) Включим функции PHP для работы с графикой. Редактируем файлик F:\iServer\PHP\php.ini. Находим строку extension=php_gd2.dll и расскоментируем ее. Перезапускаем Apache.
59) В каталоге G:\iSites\localhost\www создаем файлик gdtest.php и вводим следующий код:
<?
$pic=imagecreate(350,100);
$piccolor=imagecolorallocate($pic, 255,255,255);
$textcolor=imagecolorallocate($pic, 0,0,0);
$linecolor=imagecolorallocate($pic, 0,0,255);
$text="GD test successful - gdtest.php!";
imagerectangle($pic, 1,99, 349,0, $linecolor);
imagestring($pic,5,30,40, $text, $textcolor);
header("content-type: image/png");
imagepng($pic);
imagedestroy($pic);
?>
Вводим в браузере адрес http://localhost/gdtest.php и видим:
Радуемся жизни... Если видим. Да и если даже не видим, все равное радуемся :)
60) Теперь настроим rewrite_module, оч полезная штука :). В файле httpd.conf расскомментируем строчку
LoadModule rewrite_module modules/mod_rewrite.so
Далее ищем конструкцию
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
И заменяем в ней строку AllowOverride None на строку AllowOverride All
Затем чуть ниже так же будет просто строка AllowOverride None ее надо поменять на AllowOverride All
Это включает обработку ВСЕХ параметров ВСЕХ .htaccess во всех каталогах.
Теперь проверяем работу модуля rewrite. Рестрартуем Apache
В каталоге G:\iSites\localhost\www создаем файлик .htaccess и в него вносим одну строку
Redirect /index.html http://ya.ru
эта строка перенаправляет с файла index.html на сайт ya.ru
В браузере просто набираем localhost и нас должно перебросить на страничку ya.ru
Если сработало, то все настроили правильно. Ну а если нет, то ищем где накосячили.
Комментариев нет:
Отправить комментарий