форум
22.08.2019
Просмотров: 141
Другое

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

alex2

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

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

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

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

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

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

ServerName localhost

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

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

DocumentRoot «z:/home/localhost/www»

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

Options Indexes Includes
AllowOverride All
Allow from all

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

Найдите аналогичный блок, начинающийся и заканчивающийся . Там будет много комментариев, не обращайте на их внимание. Этот блок необходимо удалить, потому что все опции для директории со страницами должны наследоваться от опций по дефлоту, которые только-только установили.

Установите 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.

Сейчас следует отыскать блок характеристик, начинающийся с и заканчивающийся. Это — установки для 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 и нажмите . Появится подсказка командной строчки. (В том случае нет способности запустить Сеанс MS-DOS, воспользуйтесь каким-либо другим средством. К примеру, запустите Far и работайте через него. Просмотр результатов работы программки — +.)

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

c:
cd «Program FilesApache GroupApache»
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!

Сейчас наберите в браузере:

http://localhost/test.shtml

Должен загрузиться файл, который состоит из текста «SSI Test!«, за которым следует содержимое файла index.html меж 2-мя горизонтальными чертами. В том случае этого не вышло, означает, некорректно настроена работа 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

    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

    #—-hacker

    ServerAdmin [email protected]
    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

    #—-cracker

    ServerAdmin [email protected]
    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

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

    В нем должна быть 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, и активизирует соответственный блок .

    Настройка 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!
    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:localhostcgi файл test.pl с подобным содержанием:

    #!/usr/local/bin/perl -w
    print «Content-type: text/htmlnn»;
    print «It works!
    n»;

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

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

    Сделайте таковой PHP-скрипт с именованием mysql.php в директорииz:homelocalhostwww.

    define(«DBName»,»test»);
    define(«HostName»,»localhost»);
    define(«UserName»,»root»);
    define(«Password»,»»);
    if(!mysql-connect(HostName,UserName,Password))
    { echo «Не могу объединиться с базой «.DBName.»!
    «;
    echo mysql-error();
    exit;
    }
    mysql-select-db(DBName);
    // Создаем таблицу t. В том случае такая таблица уже есть,
    // сообщение об ошибке будет подавлено, т.к.
    // употребляется «@»
    @mysql-query(«create table t(id int,a text)»);
    // Вставляем в таблицу 10 записей
    for($i=0; $i{ $id=time();
    mysql-query(«insert into t(id,a) values($id,’Стр$i!’)»);
    }
    // Выводим все записи
    $r=mysql-query(«select * from t»);
    for($i=0; $i{ $f=mysql-fetch-array($r);
    echo «$f[id] -> $f[a]
    n»;
    }
    ?>

    Сейчас наберите в браузере:

    http://localhost/mysql.php

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

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

    Источники:

  • Apache + Perl + PHP3 + MySQL для Windows 95/98: управление по установке на веб-сайте citforum.ru, создатель статьи Дмитрий Котеров
  • Установка web-сервера Apache в связке с PHP 5 и MySQL на веб-сайте www.softtime.ru, создатели Симдянов И.В., Голышев С.В., Кузнецов М.В.
  • Установка и настройка Apache сервера на веб-сайте www.internet-technologies.ru
  • Array

    Добавить комментарий

    орфографическая ошибка в тексте:
    чтобы сообщить об ошибке автору, нажмите кнопку "отправить сообщение об ошибке". вы также можете отправить свой комментарий.

    Задать вопрос прямо сейчас