Первый шаг - это установка веб-сервера на своем локальном компьютере, где мы будем тестировать свои php наработки. Нам понадобятся следующие компоненты:
Apache - это сервер, позволяющий запускать ваши локальные сайты, написанные на php и прочих языках. Без сервера невозможно запустить сайт на php. Я буду использовать Apache версии 2.2.22 на платформе Windows 7.
PHP - это сам язык программирования php, который мы должны будем скачать и связать с сервером Apache. Я скачал php версии 5.4.17.
MySQL - система управления базами данных. В предыдущем посте мы уже узнали что это такое. Ставлю MySQL версии 5.6.13.1 (смотрите следующую тему).
Установить данные компоненты можно вручную, скачивая их на сайтах производителей, а так же можно воспользоваться специальными пакетами, такими как XAMPP, Denver и прочие. Второй вариант удобен тем, что вам не придется долго копаться, а будет достаточно скачать только один файл, который установит вам все необходимые компоненты.
Однако в моем случае будет выполнена ручная установка компонентов (не доверяю я авто-установщикам). Приведенные инструкции по установке я не "тупо копировал" с чужого сайта. Мне пришлось воспользоваться многими источниками, в основном опираясь на официальные документы, для того чтобы понять каждый пройденный шаг.
I. Установка Apache.
Скачиваем Apache с официального сайта http://httpd.apache.org/download.cgi
Либо отсюда (скаченный мною. вирусов нет): httpd-2.2.22-win32-x86-openssl-0.9.8t.msi
Затем запускаем файл и устанавливаем:
Далее предложат ввести имя сервера и e-mail. Придумываем любой. В дальнейшем мы это настроим. Устанавливаем для всех пользователей на 80 порт (рекомендуется).
Если у вас Windows 7, советую не ставить Apache в директорию С:\Program Files\. Лучше устанавливайте в директорию C:\Apache\ (как сделал я).
После установки, у вас в нижнем правом углу (в системном трее) появится значок Apache:
Двойной щелчок на него вызовет Apache Monitor, где можно запустить/остановить сервер.
Внимание! Сервер Apache может не запуститься, потому что занят 80-тый порт. А он обычно занят программой Skype. Необходимо в настройках скайпа отключить использование данного порта:
В настройках соединения снимите галочку с использования 80 порта и перезапустите скайп.
На этом начальная установка Apache завершена. Теперь нам необходимо установить PHP.
Переходим на сайт http://windows.php.net/download/ и скачиваем необходимую версию php. Это набор файлов, который лежит в архиве ZIP. Я выбрал предпоследнюю стабильную php-5.4.17.
Можно скачать от меня: php-5.4.17-Win32-VC9-x86.zip. Для скачивания перейдите по ссылке, откроется архив. выберите сверху слева меню "File" - "Download".
Скачав архив, распакуйте его. Распакованную папку "php-5.4.17-Win32-VC9-x86" переименуйте просто в "php" и переместите ее в директорию установленного Apache. У меня получился адрес к этой папке - C:\Apache\php. На самом деле переносить именно в эту папку необязательно. Я это сделал для удобства.
Открываем папку php и находим в них два файла настроек:
php.ini-development - настройки для разработки. Будут выводиться ошибки на экран.
php.ini-production - настройки для продукции. Ошибки на экран не выводятся.
В этих файлах хранятся базовые настройки php. Нам для разработки и обучения рекомендуется выбрать php.ini-development. Но для реальных веб-сайтов выбирайте php.ini-production, так как он безопаснее.
В той же папке делаем копию файла php.ini-development и переименовываем ее в php.ini
Открываем файл блокнотом и делаем следующие изменения:
Советую скачать блокнот Notepad2, который выделяет строки и подсвечивает код.
С помощью него откройте файл php.ini и начнем настройку:
1. Увеличиваем максимальный размер принимаемых POST данных.
Ищем в файле строку (у меня это 672-ая строка):
post_max_size = 8M
Заменяем на:
post_max_size = 16M
2. Добавляем и указываем папку включений "includes".
Сначала в директории php создаем папку с именем includes.
Затем в файле php.ini ищем строку (у меня 708-ая):
;include_path = ".;c:\php\includes"
Убираем вначале точку с запятой и прописываем свой путь к папке includes:
include_path = "c:\Apache\php\includes"
Обратите внимание, при указании пути используются обратные косые "\" (бэкслеш).
Точка с запятой вначале обозначает то что строка закомментирована.
3. Указываем папку включений "ext".
Ищем в файле строку (730):
; extension_dir = "ext"
Расскомментируем ее, убрав точку с запятой. и пропишем свой путь к папке:
extension_dir = "c:/Apache/php/ext"
Обратите внимание - в данном случае в пути используется косая "/" (слэш).
4. Добаляем папку для хранения временных загружаемых файлов "upload".
Сначала в директории php создаем папку upload.
Далее находим строку (796):
;upload_tmp_dir =
Раскомментируем ее и пропишем свой путь к папке:
upload_tmp_dir ="C:\Apache\php\tmp\upload"
5. Увеличиваем допустимый размер максимально закачиваемых файлов до 16мб.
Находим строку (800):
upload_max_filesize = 2M
Изменяем на
upload_max_filesize = 16M
6. Подключаем необходимые библиотеки (модули) расширений.
Мы подключим рекомендуемые базовые библиотеки (модули).
Необходимо найти и раскомментировать следующие строки:
Модуль, позволяющий работать с архивами bzip2. Убираем точку с запятой вначале (868)
;extension=php_bz2.dll
Модуль, позволяющий соединяться с серверами с помощью большого количества интернет протоколов (869) :
;extension=php_curl.dll
Модуль, позволяющий работать с графикой (871)
;extension=php_gd2.dll
Модуль, позволяющий работать c многобайтными кодировками (китайский, японский, Юникод и др) (878)
;extension=php_mbstring.dll
Модуль, необходимый для работы с MySQL (880)
;extension=php_mysql.dll
Модуль, расширяющий функции использования MySQL (881)
;extension=php_mysqli.dll
Остальные модули будем подключать по мере необходимости.
* В скобках я указывал номер строки в своем файле php.ini. У вас может быть по-другому.
7. Устанавливаем свой часовой пояс.
Свой часовой пояс ищите тут: http://php.net/manual/en/timezones.php
Находим строку (919)
;date.timezone =
Раскомментируем и укажем свой часовой пояс.
date.timezone = "America/New_York" ;Нью-Йорк (мой случай)
date.timezone = "Europe/Moscow" ;для Москвы (Пример)
date.timezone = "Europe/Kiev" ;для Киева (Пример)
8. Создаем папку "tmp" - хранилище для временных файлов сессии.
В директории php создаем папку tmp
В файле php.ini находим строку (1396):
;session.save_path = "/tmp"
Раскомментируем и пропишем свой путь (обращайте внимание на слэши):
session.save_path = "c:/Apache/php/tmp"
Базовые настройки php выполнены. Но мы еще вернемся к этому файлу (надеюсь не скоро).
Теперь вернемся к нашему серверу Апачи. Его тоже необходимо настроить. (Крепитесь)
Итак, для настройки сервера Apache, зайдите в его установленную директорию, в папку conf ( в моем случае: C:\Apache\conf ) Там найдите и откройте файл httpd.conf.
Я открываю файл блокнотом Notepad2.
Это основной конфигурационный файл Апача. Так, как мы устанавливали Apache при помощи установщика, некоторые настройки будут уже сконфигурированы.
Символ решетки "#" в начале строки означает, что строка закомментирована.
Строки команд в данном файле называют директивами.
* В скобках красным шрифтом я буду указывать номер строки в своем файле. У вас номер строки может быть другим.
1. Указываем корневой каталог Apache.
Корневая папка, где установлен Апач. Он у нас уже указан (35) :
ServerRoot "C:/Apache"
2. Привязываем сервер Apache к конкретному порту.
По умолчанию в файле уже настроено (46).
Listen 80
3. Подключаем модуль mod_rewrite - служащий для преобразования ссылок на лету.
Находим и раскомментируем следующую строку (118)
#LoadModule rewrite_module modules/mod_rewrite.so
Убираем решетку "#" вначале строки и готово
LoadModule rewrite_module modules/mod_rewrite.so
4. Подключаем модуль php5 для нашего Apache 2.2.
В конце списка перечисления загружаемых модулей (129) надо дописать строку загрузки модуля php5. В двойных кавычках указываем путь к файлу загружаемого модуля php5apache2_2.dll, который хранится в папке php.
То есть дописываем (Внимание на косые - здесь прямые слеши "/" ) (129):
LoadModule php5_module "C:/Apache/php/php5apache2_2.dll"
5. Указываем путь к папке с настройками php.
После добавления модуля php, создаем строку ниже и прописываем (создал строку 130):
PHPIniDir "C:/Apache/php/"
6. Прописываем свой контактный e-mail на ServerAdmin.
Этот e-mail будет отображаться на некоторых серверных страницах, где необходимо сязаться с администратором. К примеру документы ошибок. В нашем случае на локальном сервере разработки не обязательно вводить свой е-маил. Все равно увидим его только мы.
Находим строку и прописываем свой е-маил (строка 165, учитывая что я создал пару строк):
ServerAdmin mymail@gmail.com
7. Устанавливаем директорию, где будут храниться наши документы (сайты).
Для начала создадим папку, где будут храниться наши будущие сайты. Я создал на диске-С папку с названием mysites.
Находим строку (181)
DocumentRoot "C:/Apache/htdocs"
Прописываем свой путь:
DocumentRoot "C:/mysites"
8. Устанавливаем права доступа для директории.
Находим следующие строки (191-196)
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
Они нам не понадобятся. Комментируем их, добавляя символ "#" в начале.
#<Directory />
#Options FollowSymLinks
#AllowOverride None
#Order deny,allow
#Deny from all
#</Directory>
Далее идет такой же блок с правами доступа, но уже для конкретной директории.
Находим следующую строку (208):
<Directory "C:/Apache/htdocs">
Заменяем путь на нашу директорию хранения сайтов. Сюда будет обращаться апач.
<Directory "C:/mysites">
Далее находим строку Options (221)
Options Indexes FollowSymLinks
Эта строка определяет какие особенности сервера доступны в каталоге. Ставим:
Options Includes Indexes FollowSymLinks
Includes - разрешает использование SSI (Server-Side Includes). Он нам нужен для создания динамических страниц из отдельных составных частей. (и не только для этого)
Indexes - Если в адресной строке браузера ввести не адрес страницы сайта, а адрес каталога, то данная опция отобразит содержимое каталога. (на реальных сайтах это не нужно указывать я думаю, в целях безопасности. но в учебном сервере мы включим)
FollowSymLinks - Опция разрешает серверу следовать по символическим ссылкам
Находим следующую строку (228):
AllowOverride None
Эта директива позволяет разрешать или запрещать переопределение настроек файла httpd.conf, когда встретит файл дополнительных конфигураций .htaccess.
Мы разрешаем, заменив строку на следующее:
AllowOverride All
Эта строка устанавливает порядок работы директив allow (разрешение) и deny (запрет) (233):
Order allow,deny
Оставляем ее как есть. Сначала allow, потом deny.
Следующая строка разрешает доступ к ресурсам на сервере (234)
Allow from all
Оставляем разрешенной. Запреты мы будем давать позже, по мере прохождения обучения.
9. Задаем имена индексных файлов для директорий.
Это имена файлов, к которым будет обращаться сервер, когда происходит запрос не на файл, а на директорию. К примеру я пишу в браузере www.mysite.ru. Если сервер найдет индексный файл, он откроет его. И у меня откроется www.mysite.ru/index.html.
Находим следующую строку:
DirectoryIndex index.html
К ней дописываем через пробел имена файлов с другими расширениями. Получится так:
DirectoryIndex index.html index.htm index.shtml index.php
10. Устанавливаем фильтр для работы с SSI (Включения на стороне сервера).
В блоке <IfModule mime_module> находим и раскомментируем следующие строки (406-407):
#AddType text/html .shtml
#AddOutputFilter INCLUDES .shtml
Получится:
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
11. Добавляем строки для разрешения php на страницах html.
В том же блоке <IfModule mime_module> вставьте следующие строки (408-409):
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps:
12. Подключите дополнительные файлы конфигурации conf/extra/httpd.
Найдите и раскомментируйте следующие строки:
#Include conf/extra/httpd-mpm.conf
#Include conf/extra/httpd-autoindex.conf
#Include conf/extra/httpd-vhosts.conf
#Include conf/extra/httpd-manual.conf
#Include conf/extra/httpd-default.conf
13. Указываем кодировку utf-8 по умолчанию
Для того, чтобы адекватно отображалась кириллица, в конце файла прописываем строку:
AddDefaultCharset utf-8
Теперь перейдем к настройке виртуальных хостов. В установленной директории Apache найдите папку conf, в ней зайдите в папку extra и откройте файл httpd-vhosts.conf.
В файле вы увидите строку (19)
NameVirtualHost *:80
Она включает использование виртуального хостинга, основанного на имени, на 80том порту.
Далее вы увидите два блока с примерами виртуальных хостов (27-34 и 36-42):
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.mysite.loc
DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.2/docs/dummy-host.mysite.loc"
ServerName dummy-host.mysite.loc
ServerAlias www.dummy-host.mysite.loc
ErrorLog "logs/dummy-host.mysite.loc-error.log"
CustomLog "logs/dummy-host.mysite.loc-access.log" common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host2.mysite.loc
DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.2/docs/dummy-host2.mysite.loc"
ServerName dummy-host2.mysite.loc
ErrorLog "logs/dummy-host2.mysite.loc-error.log"
CustomLog "logs/dummy-host2.mysite.loc-access.log" common
</VirtualHost>
Удалите или закомментируйте их.
Вместо них пропишем свои хосты (комментарии не пишите):
<VirtualHost *:80>
DocumentRoot "C:/mysites/localhost/www" #Указыаем папку где будет храниться сайт
ServerName localhost.loc #Имя сервера. Будем в браузере вызывать по этому имени.
ErrorLog "C:/mysites/localhost/logs/error.log" #Указываем путь к файлу логов ошибок.
CustomLog "C:/mysites/localhost/logs/access.log" common #Указываем путь к файлу access.log
</VirtualHost>
Далее создаем в ранее созданной папке C:\mysites\ новую папку с именем localhost.
В ней создаем две папки:
1. папку с именем www , где будет храниться наш сайт с именем localhost.loc
2. папку с именем logs , где будут хранится файлы логов доступа и ошибок.
В папке www создаем с помощью блокнота файл index.php в нем прописываем команду:
<?php
echo "это сайт localhost.loc";
phpinfo();
?>
Сохраняйте файлы в кодировке UTF-8
С помощью блокнота Откройте файл hosts, находящийся по адресу
C:\WINDOWS\system32\drivers\etc\hosts и в самом низу файла добавьте строку:
127.0.0.1 localhost.loc
Это нужно для того, чтобы мы могли зайти на наш сайт, набрав в браузере адрес localhost.loc.
Только что мы создали виртуальный хост для нашего локального сайта localhost.loc
Для того, чтобы создать второй виртуальный хост, надо вернуться в файл httpd-vhosts.conf.
И дописать еще блок:
<VirtualHost *:80>
DocumentRoot "C:/mysites/moysayt2/www" #Указыаем папку где будет храниться сайт
ServerName moysayt2.loc #Имя сервера. Будем в браузере вызывать по этому имени.
ServerAlias www.moysayt2.loc #Добавочное имя (Алиас домена)
ErrorLog "C:/mysites/ moysayt2/logs/error.log" #Указываем путь к файлу логов ошибок.
CustomLog "C:/mysites/ moysayt2/logs/access.log" common #Указываем путь к файлу access.log
</VirtualHost>
Так же создаём в папке C:\mysites\ новую папку с именем moysayt2. А в ней две папки: www и logs.
В папке www создаем файл index.php в нем прописываем php код:
<?php
echo "это сайт moysayt2.loc";
?>
Опять идем в C:\WINDOWS\system32\drivers\etc\hosts и в самом низу файла добавляем строку:
127.0.0.1 moysayt2.loc
Сохраняем отредактированные файлы конфигураций (наконец-то настройки завершены).
Теперь заходим в Apache Monitor - двойной щелчок по его значку в системном трее виндовса. Перезапускаем сервер. Если сервер Апач запущен, нажимаем кнопку Restart. Если сервер выключен, жмем кнопку Start. У вас должна появиться надпись "The Apache2.2 service is started (restarted)" и вы увидите значок зеленой лампочки.
Это значит, что апач успешно запущен. Если этого не случилось и у вас вдруг вылезло окно с ошибкой "The requested operation has failed!", значит вы что-то сделали неверно. Чтобы узнать в чем именно допущена ошибка, откройте файл ошибок C:\Apache\logs\error.log . Перепроверьте написание адресов, обратите внимание на косые линии. Возможно где-то вы допустили ошибку.
Ну а в случае удачного запуска, заходим в браузер и в адресной строке вбиваем localhost.loc
Если всё сделано правильно, откроется страница index.php и вы увидите на странице следующую таблицу:
Увидели? Поздравляю! Вы успешно настроили сервер Апач + php. Данная таблица - это команда phpinfo.
Так же попробуйте набрать в браузере moysayt2.loc - у вас должна отобразиться страница с текстом "это сайт moysayt2.loc" (без слова echo).
Чтобы понять как установить сервер, мне потребовалось три дня на разбор директив. Признаюсь, поначалу из-за трудностей я хотел бросить изучение php, даже не начав его. Но сейчас у меня огромное желание двигаться дальше. Пока писал данную статью, уже во многом разобрался. Главное - не сдаваться...
На сегодня я закончу тему по настройке сервера. СУБД MySQL мы установим в следующей теме.
Apache - это сервер, позволяющий запускать ваши локальные сайты, написанные на php и прочих языках. Без сервера невозможно запустить сайт на php. Я буду использовать Apache версии 2.2.22 на платформе Windows 7.
PHP - это сам язык программирования php, который мы должны будем скачать и связать с сервером Apache. Я скачал php версии 5.4.17.
MySQL - система управления базами данных. В предыдущем посте мы уже узнали что это такое. Ставлю MySQL версии 5.6.13.1 (смотрите следующую тему).
Установить данные компоненты можно вручную, скачивая их на сайтах производителей, а так же можно воспользоваться специальными пакетами, такими как XAMPP, Denver и прочие. Второй вариант удобен тем, что вам не придется долго копаться, а будет достаточно скачать только один файл, который установит вам все необходимые компоненты.
Однако в моем случае будет выполнена ручная установка компонентов (не доверяю я авто-установщикам). Приведенные инструкции по установке я не "тупо копировал" с чужого сайта. Мне пришлось воспользоваться многими источниками, в основном опираясь на официальные документы, для того чтобы понять каждый пройденный шаг.
I. Установка Apache.
Скачиваем Apache с официального сайта http://httpd.apache.org/download.cgi
Либо отсюда (скаченный мною. вирусов нет): httpd-2.2.22-win32-x86-openssl-0.9.8t.msi
Затем запускаем файл и устанавливаем:
Нажимаем Next |
Выбираем "I accept" и нажимаем Next |
Нажимаем Next |
Далее предложат ввести имя сервера и e-mail. Придумываем любой. В дальнейшем мы это настроим. Устанавливаем для всех пользователей на 80 порт (рекомендуется).
Вписываем имена, затем нажимаем Next |
Выбираем Custom |
Меняем место установки и нажимаем Next |
Нажимаем Install и начнется установка. |
Внимание! Сервер Apache может не запуститься, потому что занят 80-тый порт. А он обычно занят программой Skype. Необходимо в настройках скайпа отключить использование данного порта:
В настройках соединения снимите галочку с использования 80 порта и перезапустите скайп.
На этом начальная установка Apache завершена. Теперь нам необходимо установить PHP.
II. Установка
php.
Можно скачать от меня: php-5.4.17-Win32-VC9-x86.zip. Для скачивания перейдите по ссылке, откроется архив. выберите сверху слева меню "File" - "Download".
Скачав архив, распакуйте его. Распакованную папку "php-5.4.17-Win32-VC9-x86" переименуйте просто в "php" и переместите ее в директорию установленного Apache. У меня получился адрес к этой папке - C:\Apache\php. На самом деле переносить именно в эту папку необязательно. Я это сделал для удобства.
Открываем папку php и находим в них два файла настроек:
php.ini-development - настройки для разработки. Будут выводиться ошибки на экран.
php.ini-production - настройки для продукции. Ошибки на экран не выводятся.
В этих файлах хранятся базовые настройки php. Нам для разработки и обучения рекомендуется выбрать php.ini-development. Но для реальных веб-сайтов выбирайте php.ini-production, так как он безопаснее.
В той же папке делаем копию файла php.ini-development и переименовываем ее в php.ini
Открываем файл блокнотом и делаем следующие изменения:
Советую скачать блокнот Notepad2, который выделяет строки и подсвечивает код.
С помощью него откройте файл php.ini и начнем настройку:
Настройка php.ini
1. Увеличиваем максимальный размер принимаемых POST данных.
Ищем в файле строку (у меня это 672-ая строка):
post_max_size = 8M
Заменяем на:
post_max_size = 16M
2. Добавляем и указываем папку включений "includes".
Сначала в директории php создаем папку с именем includes.
Затем в файле php.ini ищем строку (у меня 708-ая):
;include_path = ".;c:\php\includes"
Убираем вначале точку с запятой и прописываем свой путь к папке includes:
include_path = "c:\Apache\php\includes"
Обратите внимание, при указании пути используются обратные косые "\" (бэкслеш).
Точка с запятой вначале обозначает то что строка закомментирована.
3. Указываем папку включений "ext".
Ищем в файле строку (730):
; extension_dir = "ext"
Расскомментируем ее, убрав точку с запятой. и пропишем свой путь к папке:
extension_dir = "c:/Apache/php/ext"
Обратите внимание - в данном случае в пути используется косая "/" (слэш).
4. Добаляем папку для хранения временных загружаемых файлов "upload".
Сначала в директории php создаем папку upload.
Далее находим строку (796):
;upload_tmp_dir =
Раскомментируем ее и пропишем свой путь к папке:
upload_tmp_dir ="C:\Apache\php\tmp\upload"
5. Увеличиваем допустимый размер максимально закачиваемых файлов до 16мб.
Находим строку (800):
upload_max_filesize = 2M
Изменяем на
upload_max_filesize = 16M
6. Подключаем необходимые библиотеки (модули) расширений.
Мы подключим рекомендуемые базовые библиотеки (модули).
Необходимо найти и раскомментировать следующие строки:
Модуль, позволяющий работать с архивами bzip2. Убираем точку с запятой вначале (868)
;extension=php_bz2.dll
Модуль, позволяющий соединяться с серверами с помощью большого количества интернет протоколов (869) :
;extension=php_curl.dll
Модуль, позволяющий работать с графикой (871)
;extension=php_gd2.dll
Модуль, позволяющий работать c многобайтными кодировками (китайский, японский, Юникод и др) (878)
;extension=php_mbstring.dll
Модуль, необходимый для работы с MySQL (880)
;extension=php_mysql.dll
Модуль, расширяющий функции использования MySQL (881)
;extension=php_mysqli.dll
Остальные модули будем подключать по мере необходимости.
* В скобках я указывал номер строки в своем файле php.ini. У вас может быть по-другому.
7. Устанавливаем свой часовой пояс.
Свой часовой пояс ищите тут: http://php.net/manual/en/timezones.php
Находим строку (919)
;date.timezone =
Раскомментируем и укажем свой часовой пояс.
date.timezone = "America/New_York" ;Нью-Йорк (мой случай)
date.timezone = "Europe/Moscow" ;для Москвы (Пример)
date.timezone = "Europe/Kiev" ;для Киева (Пример)
8. Создаем папку "tmp" - хранилище для временных файлов сессии.
В директории php создаем папку tmp
В файле php.ini находим строку (1396):
;session.save_path = "/tmp"
Раскомментируем и пропишем свой путь (обращайте внимание на слэши):
session.save_path = "c:/Apache/php/tmp"
|----------------на этом завершаем настройку php.ini
----------------|
Теперь вернемся к нашему серверу Апачи. Его тоже необходимо настроить. (Крепитесь)
Настройка конфигурационных файлов Apache
Итак, для настройки сервера Apache, зайдите в его установленную директорию, в папку conf ( в моем случае: C:\Apache\conf ) Там найдите и откройте файл httpd.conf.
Я открываю файл блокнотом Notepad2.
Это основной конфигурационный файл Апача. Так, как мы устанавливали Apache при помощи установщика, некоторые настройки будут уже сконфигурированы.
Символ решетки "#" в начале строки означает, что строка закомментирована.
Строки команд в данном файле называют директивами.
* В скобках красным шрифтом я буду указывать номер строки в своем файле. У вас номер строки может быть другим.
1. Указываем корневой каталог Apache.
Корневая папка, где установлен Апач. Он у нас уже указан (35) :
ServerRoot "C:/Apache"
2. Привязываем сервер Apache к конкретному порту.
По умолчанию в файле уже настроено (46).
Listen 80
3. Подключаем модуль mod_rewrite - служащий для преобразования ссылок на лету.
Находим и раскомментируем следующую строку (118)
#LoadModule rewrite_module modules/mod_rewrite.so
Убираем решетку "#" вначале строки и готово
LoadModule rewrite_module modules/mod_rewrite.so
4. Подключаем модуль php5 для нашего Apache 2.2.
В конце списка перечисления загружаемых модулей (129) надо дописать строку загрузки модуля php5. В двойных кавычках указываем путь к файлу загружаемого модуля php5apache2_2.dll, который хранится в папке php.
То есть дописываем (Внимание на косые - здесь прямые слеши "/" ) (129):
LoadModule php5_module "C:/Apache/php/php5apache2_2.dll"
5. Указываем путь к папке с настройками php.
После добавления модуля php, создаем строку ниже и прописываем (создал строку 130):
PHPIniDir "C:/Apache/php/"
6. Прописываем свой контактный e-mail на ServerAdmin.
Этот e-mail будет отображаться на некоторых серверных страницах, где необходимо сязаться с администратором. К примеру документы ошибок. В нашем случае на локальном сервере разработки не обязательно вводить свой е-маил. Все равно увидим его только мы.
Находим строку и прописываем свой е-маил (строка 165, учитывая что я создал пару строк):
ServerAdmin mymail@gmail.com
7. Устанавливаем директорию, где будут храниться наши документы (сайты).
Для начала создадим папку, где будут храниться наши будущие сайты. Я создал на диске-С папку с названием mysites.
Находим строку (181)
DocumentRoot "C:/Apache/htdocs"
Прописываем свой путь:
DocumentRoot "C:/mysites"
8. Устанавливаем права доступа для директории.
Находим следующие строки (191-196)
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
Они нам не понадобятся. Комментируем их, добавляя символ "#" в начале.
#<Directory />
#Options FollowSymLinks
#AllowOverride None
#Order deny,allow
#Deny from all
#</Directory>
Далее идет такой же блок с правами доступа, но уже для конкретной директории.
Находим следующую строку (208):
<Directory "C:/Apache/htdocs">
Заменяем путь на нашу директорию хранения сайтов. Сюда будет обращаться апач.
<Directory "C:/mysites">
Далее находим строку Options (221)
Options Indexes FollowSymLinks
Эта строка определяет какие особенности сервера доступны в каталоге. Ставим:
Options Includes Indexes FollowSymLinks
Includes - разрешает использование SSI (Server-Side Includes). Он нам нужен для создания динамических страниц из отдельных составных частей. (и не только для этого)
Indexes - Если в адресной строке браузера ввести не адрес страницы сайта, а адрес каталога, то данная опция отобразит содержимое каталога. (на реальных сайтах это не нужно указывать я думаю, в целях безопасности. но в учебном сервере мы включим)
FollowSymLinks - Опция разрешает серверу следовать по символическим ссылкам
Находим следующую строку (228):
AllowOverride None
Эта директива позволяет разрешать или запрещать переопределение настроек файла httpd.conf, когда встретит файл дополнительных конфигураций .htaccess.
Мы разрешаем, заменив строку на следующее:
AllowOverride All
Эта строка устанавливает порядок работы директив allow (разрешение) и deny (запрет) (233):
Order allow,deny
Оставляем ее как есть. Сначала allow, потом deny.
Следующая строка разрешает доступ к ресурсам на сервере (234)
Allow from all
Оставляем разрешенной. Запреты мы будем давать позже, по мере прохождения обучения.
9. Задаем имена индексных файлов для директорий.
Это имена файлов, к которым будет обращаться сервер, когда происходит запрос не на файл, а на директорию. К примеру я пишу в браузере www.mysite.ru. Если сервер найдет индексный файл, он откроет его. И у меня откроется www.mysite.ru/index.html.
Находим следующую строку:
DirectoryIndex index.html
К ней дописываем через пробел имена файлов с другими расширениями. Получится так:
DirectoryIndex index.html index.htm index.shtml index.php
10. Устанавливаем фильтр для работы с SSI (Включения на стороне сервера).
В блоке <IfModule mime_module> находим и раскомментируем следующие строки (406-407):
#AddType text/html .shtml
#AddOutputFilter INCLUDES .shtml
Получится:
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
11. Добавляем строки для разрешения php на страницах html.
В том же блоке <IfModule mime_module> вставьте следующие строки (408-409):
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps:
12. Подключите дополнительные файлы конфигурации conf/extra/httpd.
Найдите и раскомментируйте следующие строки:
#Include conf/extra/httpd-mpm.conf
#Include conf/extra/httpd-autoindex.conf
#Include conf/extra/httpd-vhosts.conf
#Include conf/extra/httpd-manual.conf
#Include conf/extra/httpd-default.conf
13. Указываем кодировку utf-8 по умолчанию
Для того, чтобы адекватно отображалась кириллица, в конце файла прописываем строку:
AddDefaultCharset utf-8
----Настройка основного файла httpd.conf завершена. Сохраните изменения в файле.----
Настройка виртуальных хостов.
В файле вы увидите строку (19)
NameVirtualHost *:80
Она включает использование виртуального хостинга, основанного на имени, на 80том порту.
Далее вы увидите два блока с примерами виртуальных хостов (27-34 и 36-42):
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.mysite.loc
DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.2/docs/dummy-host.mysite.loc"
ServerName dummy-host.mysite.loc
ServerAlias www.dummy-host.mysite.loc
ErrorLog "logs/dummy-host.mysite.loc-error.log"
CustomLog "logs/dummy-host.mysite.loc-access.log" common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host2.mysite.loc
DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.2/docs/dummy-host2.mysite.loc"
ServerName dummy-host2.mysite.loc
ErrorLog "logs/dummy-host2.mysite.loc-error.log"
CustomLog "logs/dummy-host2.mysite.loc-access.log" common
</VirtualHost>
Удалите или закомментируйте их.
Вместо них пропишем свои хосты (комментарии не пишите):
<VirtualHost *:80>
DocumentRoot "C:/mysites/localhost/www" #Указыаем папку где будет храниться сайт
ServerName localhost.loc #Имя сервера. Будем в браузере вызывать по этому имени.
ErrorLog "C:/mysites/localhost/logs/error.log" #Указываем путь к файлу логов ошибок.
CustomLog "C:/mysites/localhost/logs/access.log" common #Указываем путь к файлу access.log
</VirtualHost>
Далее создаем в ранее созданной папке C:\mysites\ новую папку с именем localhost.
В ней создаем две папки:
1. папку с именем www , где будет храниться наш сайт с именем localhost.loc
2. папку с именем logs , где будут хранится файлы логов доступа и ошибок.
В папке www создаем с помощью блокнота файл index.php в нем прописываем команду:
<?php
echo "это сайт localhost.loc";
phpinfo();
?>
Сохраняйте файлы в кодировке UTF-8
С помощью блокнота Откройте файл hosts, находящийся по адресу
C:\WINDOWS\system32\drivers\etc\hosts и в самом низу файла добавьте строку:
127.0.0.1 localhost.loc
Это нужно для того, чтобы мы могли зайти на наш сайт, набрав в браузере адрес localhost.loc.
Только что мы создали виртуальный хост для нашего локального сайта localhost.loc
Для того, чтобы создать второй виртуальный хост, надо вернуться в файл httpd-vhosts.conf.
И дописать еще блок:
<VirtualHost *:80>
DocumentRoot "C:/mysites/moysayt2/www" #Указыаем папку где будет храниться сайт
ServerName moysayt2.loc #Имя сервера. Будем в браузере вызывать по этому имени.
ServerAlias www.moysayt2.loc #Добавочное имя (Алиас домена)
ErrorLog "C:/mysites/ moysayt2/logs/error.log" #Указываем путь к файлу логов ошибок.
CustomLog "C:/mysites/ moysayt2/logs/access.log" common #Указываем путь к файлу access.log
</VirtualHost>
Так же создаём в папке C:\mysites\ новую папку с именем moysayt2. А в ней две папки: www и logs.
В папке www создаем файл index.php в нем прописываем php код:
<?php
echo "это сайт moysayt2.loc";
?>
Опять идем в C:\WINDOWS\system32\drivers\etc\hosts и в самом низу файла добавляем строку:
127.0.0.1 moysayt2.loc
Сохраняем отредактированные файлы конфигураций (наконец-то настройки завершены).
Теперь заходим в Apache Monitor - двойной щелчок по его значку в системном трее виндовса. Перезапускаем сервер. Если сервер Апач запущен, нажимаем кнопку Restart. Если сервер выключен, жмем кнопку Start. У вас должна появиться надпись "The Apache2.2 service is started (restarted)" и вы увидите значок зеленой лампочки.
Это значит, что апач успешно запущен. Если этого не случилось и у вас вдруг вылезло окно с ошибкой "The requested operation has failed!", значит вы что-то сделали неверно. Чтобы узнать в чем именно допущена ошибка, откройте файл ошибок C:\Apache\logs\error.log . Перепроверьте написание адресов, обратите внимание на косые линии. Возможно где-то вы допустили ошибку.
Ну а в случае удачного запуска, заходим в браузер и в адресной строке вбиваем localhost.loc
Если всё сделано правильно, откроется страница index.php и вы увидите на странице следующую таблицу:
Увидели? Поздравляю! Вы успешно настроили сервер Апач + php. Данная таблица - это команда phpinfo.
Так же попробуйте набрать в браузере moysayt2.loc - у вас должна отобразиться страница с текстом "это сайт moysayt2.loc" (без слова echo).
Чтобы понять как установить сервер, мне потребовалось три дня на разбор директив. Признаюсь, поначалу из-за трудностей я хотел бросить изучение php, даже не начав его. Но сейчас у меня огромное желание двигаться дальше. Пока писал данную статью, уже во многом разобрался. Главное - не сдаваться...
На сегодня я закончу тему по настройке сервера. СУБД MySQL мы установим в следующей теме.
Комментариев нет:
Отправить комментарий