Смекни!
smekni.com

Установка и настройка локального web-сервера Apache, PHP, MySQL под операционную систему Windows (стр. 5 из 9)

И, естественно, нужно включить сам "механизм" вложения, а для этого добавить к команде Options слово Includes. Тогда строка с командой Options может принять вид: Options Indexes FollowSymLinks Includes

Далее надо раскомметировать: AddHandler send-as-is asis

Эта функция разрешает Apache передачу файлов, не сопровождающихся http заголовками.

21. Для использования карт изображения и карт типов раскомметируйте следующие строки:

AddHandler imap-file map

AddHandler type-map var

22. В самый конец файла добавьте строку:

Include conf/vhosts.conf

Сохраните все изменения файла httpd.conf. Создайте резервную копию рабочего файла httpd.conf (например, с названием: httpd.conf рабочий). Этоможет оказаться полезным при восстановлении системы.

23. Создайте в папке D:\usr\Apache\conf файл vhosts.conf:

Допустим, что Вам придется работать с несколькими серверами. Разработчики Apache предусмотрели и этот вариант. При настройке Apache, изначально сделано так, чтобы с появлением нового сервера на Вашем компьютере его было легко подключить и настроить. Для этого при настройке Apache создают файл vhosts.conf и в конец файла httpd.conf добавляют строчку «Include conf/vhosts.conf», которая подключает этот файл.

Добавление нового сервера подробно описано в разделе 2.4.

24. Теперь перезапустите Apache: Пуск → Все программы → Apache HTTP Server → Control Apache Server → Restart.

Если все сделано верно, то откроется консольное окно:

В консольном окне сообщается, что Apache запущен, модуль PHP 4.3.9RC3 для правильной работы Apache с PHP установлен и работает.

Если же имеются ошибки, то в течение 30 секунд оно будет запущено и в нем будет написана ошибка, по которой Apache не может быть запущен, например:

Сообщается, что на линии 327 файла httpd.conf имеется ошибка. Ошибка часто возникает, если забыли скопировать файл php4ts.dll в каталог C:\Windows\System32.

Ошибка может возникнуть также, если забыли создать файл vhosts.conf и хотя бы один виртуальный хост.

2.4. Создание виртуальных хостов

Разработчики Apache предусмотрели возможность создания нескольких виртуальных хостов. При настройке Apache, изначально сделано так, чтобы с появлением нового сервера на Вашем компьютере его было легко подключить и настроить.

Для этого при настройке Apache был создан файл vhosts.conf:

и в конец файла httpd.conf добавлена строчка «Include conf/vhosts.conf», которая подключила этот файл:

Для того чтобы добавить новый сервер:

● необходимо создать папку, в директории home, в которой будут расположены серверные папки и файлы;

● сделать описание этого сервера в файле vhosts.conf;

● добавить название сервера и IP-адрес в файл C:\WINDOWS\system32\drivers\etc\hosts.

Т.к. в файле httpd.conf имя сервера мы установили localhost и папку для документов установили home, то это нас не устроит, потому что во всем должен быть порядок (сейчас поймете, о чем идет речь).

Если мы оставим все как есть, то html документы, принадлежащие серверу localhost, и новые виртуальные серверы окажутся в одной папке home. Это выглядит не очень красиво и удобно.

Поэтому мы перенастроим localhost, оформив его в виде виртуального сервера:

1. Создайте в папке home папку localhost, а в ней папку cgi-bin:

2. Добавьте следующее описание в файл vhosts.conf:

#----localhost

<VirtualHost 127.0.0.1>

DocumentRoot "/home/localhost/"

ServerName localhost

ScriptAlias /cgi-bin/ "/home/localhost/cgi-bin/"

ErrorLog /home/localhost/error.log

</VirtualHost>

Здесь папка cgi-bin (вместо cgi), html-файлы (которые должны располагаться в папке html) и файл error.log будут находиться в одной папке localhost:

Эти описания можно было сделать в файле httpd.conf, но если все виртуальные серверы описать в отдельном файле, то строение вашего http-сервера становится более наглядным.

3. Создайте второй виртуальный хост.

Допустим, что Ваш сайт расположен в Internet по адресу http://mysite.ru. Настроим Apache так, чтобы при наборе этого адреса загружался Ваш сайт, без выхода в Internet.

Для этого в папке home создайте папку mysite и в папке mysite папки cgi и html:

Опишите данный сервер в файле виртуальных хостов vhosts.conf:

<VirtualHost 127.0.0.2> - задается IP-адрес сервера

DocumentRoot "/home/mysite/html/" - папка расположения документов

ServerName www.mysite.ru - имя сервера

ScriptAlias /cgi-bin/ "/home/mysite/cgi/" - папка с cgi-скриптами

ErrorLog /home/mysite/error.log - расположение файла ошибок

CustomLog /home/mysite/access.log common - расположение файла доступа

</VirtualHost> - закрываем описание сервера

#----localhost

<VirtualHost 127.0.0.1>

DocumentRoot "/home/localhost/"

ServerName localhost

ScriptAlias /cgi-bin/ "/home/localhost/cgi-bin/"

ErrorLog /home/localhost/error.log

</VirtualHost>

#----mysite

<VirtualHost 127.0.0.2>

DocumentRoot "/home/mysite/html/"

ServerName www.mysite.ru

ScriptAlias /cgi-bin/ "/home/mysite/cgi/"

ErrorLog /home/mysite/error.log

CustomLog /home/mysite/access.log common

</VirtualHost>

В конец файла С:&bsol;WINDOWS&bsol;system32&bsol;drivers&bsol;etc&bsol;hosts:

добавьте IP-адрес и имя сервера:

127.0.0.2 mysite.ru

Перезапустите Apache.

5) Если Вам понадобиться обратить к сайту mysite.ru на удаленном сервере, то закомментируйте строку: #127.0.0.2 mysite.ru

в файле С:&bsol;WINDOWS&bsol;system32&bsol;drivers&bsol;etc&bsol;hosts.

Не забывайте про это, иначе при попытке обращения к удаленному серверу, Вы будете оказываться на своем локальном.

Что бы этого не делать, лучше виртуальные хосты называть так же, как и на настоящем web – сервере, но только без «суффикса» .ru или .com. В этом случае, используя правило «отсечения суффиксов» можно легко обращаться к «реальному» и «виртуальному» хостам, даже если имеется подключение к Интернет.

Вы можете использовать любой IP-адрес из диапазона 127.0.0.1 – 127.255.255.255.

На этом настройка сервера окончена. Перезапустите его. Все должно работать:

Если Вы получаете сообщение об ошибке и номер строки в файле http.conf, где она произошла, то исправьте ошибку и перезапустите сервер. Если ошибок больше нет, то появится показанное выше окно.

2.5. Настройка PHP

Для настройки PHP необходимо воспользоваться файлом php.ini. Если при установке PHP использован инсталлятор, то этот файл расположен в C:&bsol;WINDOWS:

Если Вы использовали архив, то скопируйте файл php.ini-distr в каталог C:&bsol;WINDOWS и переименуйте его в php.ini. Откройте этот файл при помощи Notepad++.

1. Диагностический вывод при наличии ошибок. Найдите директиву error_reporting и присвойте ей значение E_ALL & ~E_NOTICE & ~E_STRICT

error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT

Эта директива указывает PHP, насколько подробным должен быть диагностический вывод при наличии ошибок и предупреждений. Установлен минимальный вывод. Но если вы собираетесь создавать скрипты на PHP, то лучше оставить E_ALL, т.к. это позволит создавать более качественный код:

Установлен максимально подробный режим контроля ошибок. Это очень поможет при отладке скриптов. Для программ, которые на этот режим не рассчитаны, всегда его можно отключить.

2. Сохранение последнего сообщения об ошибке. Установите:

track_errors = On

Сделанные изменения позволят сохранять последнее сообщение об ошибке или замечании в переменной $php_errormsg.

3. Режим register_globals.

Внимание
Начиная с PHP 4.2.0, значение директивы register_globals по умолчанию установлено в off (отключено, раньше было on - включено). Положение register_globals в off делает предопределенные переменные доступными в глобальной области видимости.Например, чтобы получить:DOCUMENT_ROOT, необходимо использовать $_SERVER['DOCUMENT_ROOT'] вместо $DOCUMENT_ROOT;● $_GET['id'] из URL http://www.example.com/test.php?id=3 вместо $id;● $_ENV['HOME'] вместо $HOME.

При работе с полями формы, например, следует каждый раз писать:

$_REQUEST[' … ']

Это делать необходимо из-за того, что все данные из полей формы PHP помещает в глобальный массив $_REQUEST.

Рекомендуется писать скрипты с расчетом на выключенный register_globals=off.

Сценарий, корректно работающий при выключенном register_globals, будет работать и при включенном режиме. Но не наоборот.

Установите строку: register_globals = Off