28982 автора и 62 редактора ответили на 85243 вопроса,
разместив 135214 ссылок на 43429 сайтов, присоединяйтесь!

Как локально настроить сервер Apache?

РедактироватьВ избранноеПечать

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

 

Данная статья предусматривает наличие установленного Аpache сервера, начиная с версии 1.3.14 (пакет включающий в себя Apache, PHP, perl, MySQL - PHPTriad можно бесплатно и легально скачать тут, тут или тут), оперционной системы Windows 95/98/NT/XP. На более ранних версиях Apache, а так же на ОС Windows Vista не тестировалось, у автора первичной статьи комментариев по этому поводу нет. Если компьютер введен в домен могут возникнуть проблемы с winMySQLAdmin входящей в пакет PHPTriad.

 

Настройка файла конфигурации Apache 

 

На этом этапе нужно определиться с директорией, в которой будут храниться сайты. По умолчанию Apache использует для этого C:\Program Files\Apache Group\Apache\htdocs, где сразу после установки можно найти документацию по серверу. Для серьезных целей она не очень подходит - слишком уж длинное имя, поэтому рекомендуется сделать для всех сайтов отдельный диск (например, с именем Z:).

 

На диске Z: необходимо создать директорию home, а в ней - каталог localhost. В нем будет храниться содержимое главного хоста Apache - того, который доступен по адресу http://localhost. В каталоге localhost создайте директории cgi и www. В первой будут храниться CGI-скрипты, а во второй - документы и программы на PHP. Замечу, что подобную операцию нужно будет проделывать каждый раз при создании нового виртуального хоста.

 

Откройте в Блокноте файл конфигурации httpd.conf, который расположен в поддиректории conf директории Apache. Установите поле ServerName следующим образом:

ServerName localhost

Только не забудьте раскомментировать поле ServerName, то есть убрать символ "#" перед этим параметром (по умолчанию он закомментирован)! Вообще, все, что идет после этого символа и до конца строки, Apache игнорирует.

 

В поле DocumentRoot укажите ту директорию, в которой будут храниться ваши html-файлы. Мы ранее договорились, что это будет Z:\home\localhost\www):

DocumentRoot "z:/home/localhost/www"

Найдите блок, начинающийся строкой <Directory/> и заканчивающийся </Directory> (вообще, такие блоки обозначают установки для заданной директории и всех ее поддиректорий). Этот блок может содержать множество комментариев - не обращайте на них внимания. Его нужно изменить на такой блок:

<Directory z:/>
Options Indexes Includes
AllowOverride All
Allow from all
</Directory>

Таким образом, в этом блоке будут храниться установки для всех директорий по умолчанию (т.к. это - корневая директория). А именно, для всех директорий по умолчанию устанавливается возможность автоматической генерации индекса - списка содержимого директории при просмотре ее в браузере, а также поддержка SSI и разрешение использовать файлы .htaccess для индивидуальных настроек каталогов.

 

Найдите аналогичный блок, начинающийся <Directory "C:/Program Files/Apache Group/Apache/htdocs"> и заканчивающийся </Directory>. Там будет много комментариев, не обращайте на них внимание. Этот блок нужно удалить, так как все настройки для директории со страничками должны наследоваться от настроек по умолчанию, которые только что установили.

 

Установите DirectoryIndex так:

DirectoryIndex index.htm index.html

Это - так называемые файлы индекса, которые автоматически выдаются сервером при обращении к какой-либо директории, если не указано имя html-документа. В принципе, можно добавить сюда и другие имена, например, index.php, и т.д. Однако дополнительные настройки все же лучше делать в файлах .htaccess для каждого сайта в отдельности.
Найдите и исправьте такой параметр:

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

Добавьте после него еще такую строчку:

 ScriptAlias /cgi/ "z:/home/localhost/cgi/"

Подобный параметр говорит Apache о том, что, если будет указан путь вида http://localhost/cgi-bin, то на самом деле следует обратиться к директории z:/home/localhost/cgi.

 

Теперь следует найти блок параметров, начинающийся с <Directory "C:/Program Files/Apache Group/Apache/cgi-bin"> и заканчивающийся</Directory>. Это - установки для CGI-директории. Так как указывать никаких дополнительных параметров взамен тех, которые уже установлены по умолчанию не нужно, этот блок нужно удалить.

 

Найдите и настройте (не забудьте раскомментировать!) следующий параметр:

AddHandler cgi-script .bat .exe .cgi

Это говорит Apache о том, что файлы с расширениями exe, bat и cgi нужно рассматривать как CGI-скрипты.
И последнее - установите следующие параметры:

AddType text/html .shtml
AddHandler server-parsed .shtml .html .htm

Тестирование Apache

 

Для запуска сервера нажмите Пуск, затем Программы, Apache Web Server, Management и Start Apache, при этом появится окно, очень похожее на Сеанс MS-DOS, и ничего больше не произойдет. Не закрывайте его и не трогайте до конца работы с Apache.

 

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

 

Запустите Сеанс MS-DOS. Для этого нажмите Пуск, затем Выполнить. Наберите в появившемся диалоге command и нажмите <Enter>. Появится подсказка командной строки. (Если нет возможности запустить Сеанс MS-DOS, воспользуйтесь каким-нибудь другим средством. Например, запустите Far и работайте через него. Просмотр результатов работы программы - <Ctrl>+<O>.)

 

Наберите следующие команды DOS:

c:
cd "\Program Files\Apache Group\Apache"
apache.exe

Если до этого Apache не запускался, то получите сообщение об ошибке и номер строки в httpd.conf, где она произошла. Исправьте httpd.conf и повторите описанный процесс сначала, до тех пор, пока в окне не отобразится что-то вроде "Apache / 1.3 . 14 (Win32) running..."

 

Проверка html

 

В директории z:/home/localhost/www с html-документами Apache создайте файл index.html с любым текстовым содержанием. Теперь запустите браузер и наберите:

http://localhost/index.html

или просто

http://localhost/

Должен загрузиться созданный файл.

 

Проверка SSI

 

В директории z:/home/localhost/www с html-документами Apache создайте файл test.shtml c таким содержанием (внимательно следите за соблюдением пробелов в директиве include!):

SSI Test!<hr>
<!--#include virtual="/index.html" -->
<hr>

Теперь наберите в браузере:

http://localhost/test.shtml

Должен загрузиться файл, который состоит из текста "SSI Test!", за которым следует содержимое файла index.html между двумя горизонтальными чертами. Если этого не произошло, значит, неправильно настроена работа SSI.

 

Проверка CGI

 

В директории z:/home/localhost/cgi для CGI-скриптов создайте файл test.bat с таким содержанием:

@echo off
echo Content-type: text/html
echo.
echo.
dir

Теперь в браузере наберите:

http://localhost/cgi/test.bat

В окне отобразится результат команды DOS dir.

 

Виртуальные хосты Apache

 

Существует два вида виртуальных хостов: отдельные для каждого ip-адреса или же использующие один общий ip-адрес (так называемые name-based хосты - хосты, определяемые по имени). В тренировочных целях рассмотрим оба варианта, а именно, создадим хост hacker, использующий тот же адрес, что и localhost, а также хост cracker с адресом 127.0.0.2.

 

Сервер hacker будет храниться в директории z:/home/hacker, которую необходимо создать прямо сейчас (конечно, вместе с ее поддиректориями cgi и www), а хост cracker - в директории z:/home/cracker. В этих директориях будут находиться:

  • файлы access.log с журналом доступа к виртуальному серверу;
  • файлы errors.log с журналом ошибок сервера;
  • директория www, где, как обычно, будут храниться html-документы;
  • директория cgi для хранения CGI-программ.

Для установки виртуальных хостов необходимо сделать некоторые изменения в файле конфигурации Apache httpd.conf (см. выше), а также в некоторых файлах Windows.

 

Откройте файл httpd.conf (можете для этого воспользоваться ярлыком Edit configuration в меню Пуск - Программы - Apache Web Server - Management). Перейдите в его конец, Вам предстоит добавить туда несколько строк. Добавьте следующие строки в конце файла после всех комментариев:

NameVirtualHost 127.0.0.1
#----localhost
<VirtualHost localhost>
ServerAdmin webmaster@localhost
ServerName localhost
DocumentRoot "z:/home/localhost/www"
ScriptAlias /cgi/ "z:/home/localhost/cgi/"
ErrorLog z:/home/localhost/error.log
CustomLog z:/home/localhost/access.log common
</VirtualHost>
#----hacker
<VirtualHost hacker>
ServerAdmin webmaster@hacker.ru
ServerName hacker
DocumentRoot "z:/home/hacker/www"
ScriptAlias /cgi/ "z:/home/hacker/cgi/"
ErrorLog z:/home/hacker/error.log
CustomLog z:/home/hacker/access.log common
</VirtualHost>
#----cracker
<VirtualHost cracker>
ServerAdmin webmaster@cracker.ru
ServerName cracker
DocumentRoot "z:/home/cracker/www"
ScriptAlias /cgi/ "z:/home/cracker/cgi/"
ErrorLog z:/home/cracker/error.log
CustomLog z:/home/cracker/access.log common
</VirtualHost>

Откройте системный фаил hosts, который находится в директории C:\WINNT\SYSTEM32\DRIVERS\etc.

В нем должна быть 1 раскомментированная строка:

 127.0.0.1 localhost

Замените ее на:

127.0.0.1 localhost hacker
127.0.0.2 cracker

Обратите внимание на то, что хост hacker описан на той же строке, что и localhost. Дело в том, что в файле hosts должны указываться только уникальные ip-адреса. Если же одному адресу сопоставляется сразу несколько хостов, то один из них (тот, который идет первым) объявляется главным, а остальные - его синонимами. В нашем случае localhost - главный, а hacker - его синоним. Apache при получении запроса на адрес 127.0.0.1 узнает, что он пришел хосту с именем hacker, и активизирует соответствующий блок <VirtualHost>.

 

Настройка Apache для работы с PHP

 

Откройте в Блокноте файл конфигурации Apachehttpd.conf.

Найдите в нем такую закомментированную строку:

#AddType application/x-httpd-php php

Раскомментируйте ее:

AddType application/x-httpd-php php

Сразу же после этой строки добавьте такие настройки:

ScriptAlias /_php/ "C:/Program Files/PHP4/"
Action application/x-httpd-php "/_php/php.exe"

Тестирование PHP

 

Создадим в директории z:/home/localhost/www файл test.php со следующим содержанием:

<?
echo "It works!<br>\n";
phpinfo();
?>

Теперь наберите в браузере: http://localhost/test.php. Должна отобразиться страница с разнообразной информацией о PHP, которая генерируется функцией phpinfo().

 

Установка Perl 

 

Найдите в файле конфигурации Apache httpd.conf строчку

 AddHandler cgi-script .bat .exe

Замените ее на

AddHandler cgi-script .bat .exe .pl .cgi

Найдите и раскомментируйте параметр:

ScriptInterpreterSource registry

Проверка работоспособности Perl

 

Создайте в директории z:\localhost\cgi файл test.pl с таким содержанием:

#!/usr/local/bin/perl -w
print "Content-type: text/html\n\n";
print "It works!<br>\n";

Важно! Обратите внимание на первую строчку в скрипте. Можно подумать, что она указывает Apache, что Perl расположен в z:\usr\local\bin\perl.exe. На самом же деле Apache видит, что такого файла не существует, и использует Реестр для поиска ассоциации для расширения pl. Происходит это благодаря директиве ScriptInterpreterSource. Однако, хотя Apache игнорирует первую строку в скрипте, Perl ее использует для того, чтобы определить, какие флаги были использованы при его запуске.

 

Тестирование MySQL

 

Создайте такой PHP-скрипт с именем mysql.php в директорииz:\home\localhost\www.

<?
define("DBName","test");
define("HostName","localhost");
define("UserName","root");
define("Password","");
if(!mysql_connect(HostName,UserName,Password))
{ echo "Не могу соединиться с базой ".DBName."!<br>";
echo mysql_error();
exit;
}
mysql_select_db(DBName);
// Создаем таблицу t. Если такая таблица уже есть,
// сообщение об ошибке будет подавлено, т.к.
// используется "@"
@mysql_query("create table t(id int,a text)");
// Вставляем в таблицу 10 записей
for($i=0; $i<10; $i++)
{ $id=time();
mysql_query("insert into t(id,a) values($id,'Стр$i!')");
}
// Выводим все записи
$r=mysql_query("select * from t");
for($i=0; $i<mysql_num_rows($r); $i++)
{ $f=mysql_fetch_array($r);
echo "$f[id] -> $f[a]<br>\n";
}
?>

Теперь наберите в браузере:

http://localhost/mysql.php

Если все установилось правильно, должны получить несколько строк вывода без сообщений об ошибках. При каждом запуске в таблицу t добавляются новые строки, так что с каждым нажатием кнопки Обновить в браузере объем вывода будет все увеличиваться.

 

Обращаю внимание на константы DBName, HostName, UserName и Password. DBName должен содержать имя базы данных (в нашем случае это test, база данных, которая создается MySQL по умолчанию). HostName - всегда localhost, ведь мы работаем на локальном компьютере. В определении UserName проще всего подставлять root, который является собственником всех таблиц. При установке MySQL пользователю root не назначается пароль, так что константа Password равна пустой строке.

 

Источники: 

Последнее редактирование ответа: 06.01.2011

  • Оставить отзыв

    Оставить отзыв

РедактироватьВ избранноеПечать

«Как локально настроить сервер Apache»

В других поисковых системах:

GoogleЯndexRamblerВикипедия

В соответствии с пользовательским соглашением администрация не несет ответственности за содержание материалов, которые размещают пользователи. Для урегулирования спорных вопросов и претензий Вы можете связаться с администрацией сайта genon.ru. Размещенные на сайте материалы могут содержать информацию, предназначенную для пользователей старше 18 лет, согласно Федерального закона №436-ФЗ от 29.12.2010 года "О защите детей от информации, причиняющей вред их здоровью и развитию". Обращение к пользователям 18+.