Форма входа
Программирование
Видеоуроки
Личное
Гость


Выход
Статистика
Проверка тиц и PR
Онлайн всего: 1
Гостей: 1
Пользователей: 0
Друзья сайта
MEGAsoft-Все для uCoz
Реклама
Главная » Статьи » Веб » Администратирование

Установка Apache2 + Perl + PHP + MySQL для Windows
Copyright© 2004. Oleg Kazban (mailto:cyberix@ukr.net)

Веб-сервер в домашних условиях? Реально! Руководство по установке Apache2 + Perl + PHP + MySQL для Windows

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

В случае, если возникнут какие-либо вопросы по установке и администрированию сервера, пишите мне на cyberix@ukr.net  

Дистрибутивы, использовавшиеся в тестировании
  • Apache 2.0.44
  • Perl 5.6.1
  • PHP 4.3.6
  • MySQL 4.0.13
  • Оглавление
  • Предисловие
  • Начнем! 
  • Установка Apache
  • Виртуальный хостинг
  • Установка PHP
  • Установка Perl
  • Установка MySQL
  • 1. Предисловие

    Бродя по бескрайним просторам Интернета, Вы наверняка сталкивались с такими сервисами, как гостевая книга, чат, форум, доска объявлений, короче говоря с сервисом, который работает не со статически созданными страницами, а с динамической информацией - предоставляет пользователю ту часть информации, которая соответствует некоторому сценарию. И наверняка Вы захотели устроить себе такой же сервис на своем сайте. Проблема заключается в следующих моментах - во-первых, Вам необходимо знать язык сценариев типа Perl или PHP, во-вторых никто не сможет написать с нуля работоспособный скрипт без ошибок и неточностей, а просиживать все это время в Интернете обойдется очень дорого, ток что нужна домашняя платформа, и в-третьих, если уж у Вас готов скрипт, то существует проблема размещения сайта на хостинге, поддерживающем технологии Perl или PHP, так как платить деньги за ту де домашнюю страничку мало кто захочет, а бесплатный хоснтиг не предоставляет услуги Perl или PHP технологий. Но вернемся к первым двум проблемам, а точнее, ко второй - необходимости завести себе локальную платформу, которая обеспечит написание и отладку скриптов для динамического вывода информации. Для этого потребуется - веб-сервер Apache2 (как самая популярная и устойчивая версия веб-сервера), PHP, Perl, MySQL - кроме веб-сервера вам потребуется только то, с чем Вы будете работать. Если Вы не собираетесь использовать базы данных, то MySQL Вам ни к чему. Итак, приступим.

    2. Начнем!
    Технологии типа Perl, PHP, MySQL, SSI, CGI  требуют для своего работоспособного существования наличия веб-сервера. В наше время распространено достаточно много различных серверов, но именно Apache является наиболее популярным, надежным сервером среди множества других. Apache разработан командой программистов-любителей и является программным обеспечением с открытым программным кодом. Точно так же все популярные платформы - PHP, Perl, MySQL - являются программным обеспечением с открытым программным кодом, и за их использование Вам не придется платить ни копейки. Огромным плюсом является то, что Apache - это кросс-платформенная система. Работает как под управлением Unix, так и под Windows, причем под любой версией (но все-таки желательно, чтобы это была NT система) на любой машине, даже на старенькой 486. Далее, я буду описывать действия для локального компьютера под управлением достаточно популярной Windows XP, но для всех Windows систем действия аналогичны, так что если у вас стоит другая версия, не расстраивайтесь, и следуйте дальнейшим инструкциям.

    Первым делом Вам нужно получить дистрибутив сервера. Получить его Вы можете непосредственно с сайта разработчиков: www.apache.org. Закачать его можно или в виде бинарного дистрибутива, или в виде архива с исходным кодом (предпочтительнее качать все-таки бинарный, но только не в том случае, если Вы хотите разобраться с "внутренностями").

    Первое, с чем Вы должны будете определиться, это куда Вы будете устанавливать сервер. Можно же конечно, установить его туда, куда Вы обычно ставите другое программное обеспечение, сервер в этом случае будет функционировать, но заниматься администрированием (что само по себе увлекательно) Вам будет достаточно затруднительно. Итак, для лучше всего Вам выделить под платформу целый диск. Тип файловой системы роли не играет - но все-таки NTFS значительно стабильнее FAT32, так что если Вы не хотите в один прекрасный день потерять все свои наработки, выделите диск размером порядка 1 Гб (больше Вам вряд ли понадобится, а меньше... уж все-таки лучше больше) с файловой системой NTFS. Обзовите этот том как Server - на самом деле название роли не играет, это всего лишь для удобства. Пусть установка происходит на логический диск E, имеющий метку Server.

    3. Установка Apache 3.1 Установка сервера
    • Запустите только что скачанный файл. В появившемся диалоге нажмите кнопку Yes, а затем - кнопку Next.
    • По умолчанию Windows предложит Вам свой каталог Program Files, но Вы должны отказаться и вручную ввести следующий путь: e:usrlocalapache. Теперь нажмите Browse. Вручную задайте директорию для установки: e:usrlocalapache и нажмите кнопку OK.
    • Выберите тип установки - Сustom и уберите флажок Source Code (если, конечно, не хотите посмотреть исходные тексты Apache). Этим Вы сэкономите себе 3 Мбайта.
    • Нажмите Next, и заполните предложенные инсталятором поля - имя домена, адрес электронной почты администратора для получения сообщений, и т.д.
    • Нажмите Next и подождите, пока будут копироваться файлы Apache.
    • На запрос о перезагрузке компьютера ответьте "Перезагрузить".

    Сама установка сервера занимает порядка нескольких минут максимум. Теперь остается самое увлекательное (а для кого нудное и непонятное) - отконфигурировать сервер.

    3.2 Конфигурирование сервера

    Теперь нужно вручную отредактировать файлы конфигурации.

    3.2.1 Настройка файла mime.types
    • Откройте директорию e:usrlocalapacheconf. Откройте находящийся там файл mime.types.

    В этом файле находятся грубо говоря ассоциативные связи с типами файлов. Т.е. здесь Вы указываете, какой тип файлов каким обработчиком будет обрабатываться.

    • Найдите в нем такую строчку:
      text/html html htm
      Измените ее на
      text/html html htm shtml shtm sht


    Таким образом Вы дадите знать веб-серверу, что файлы с указанными Вами расширениями являются гипертекстовыми документами (расширения shtml shtm sht используются для технологии SSI). Можно также воспользоваться директивой AddType. Например Вы не хотите привести Ваш сервер в неработоспособное состояние, для чего Вам нужно иметь резервные копии конфигурационных файлов и проводить как можно меньше изменений, если Вы не понимаете их назначение. Для этого в конфигурационном файле httpd.conf Вы можете ввести следующую строчку:

     AddType text/html html htm shtml shtm sht


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

    3.2.2 Настройка файла httpd.conf
    • Откройте директорию e:usrlocalapacheconf. Откройте находящийся там файл httpd.conf. Это главный конфигурационный файл сервера, так что будьте осторожны! Любое некорректное изменение настроек приведет к отказу работы сервера.
    • В поле ServerAdmin (e-mail администратора сервера) укажите Ваш E-mail адрес, на который будут отсылаться сообщения  об ошибке сервера. Например:
      ServerAdmin admin@server.com
    • В поле ServerName (имя сервера) напишите любое слово - на работе это не сказывается , например:
      ServerName Server
    • В поле DocumentRoot (путь к каталогу с html-документами) укажите ту директорию, в которой будут храниться Ваши html-файлы, например:
      DocumentRoot e:/www
    • Найдите блок, начинающийся строкой <Directory /> и заканчивающийся </Directory>.  Его нужно изменить на:
      <Directory />
      Options Indexes Includes
      AllowOverride All
      </Directory>
      Этот блок отвечает за  установки для заданной директории и всех ее поддиректорий. То есть все указанные здесь параметры будут применены для корневого каталога и всех вложенных папок, если их параметры не указаны особо (параметры по умолчанию наследуются от корневого каталога).
    • Найдите аналогичный блок, начинающийся <Directory "e:/usr/local/apache/htdocs"> и заканчивающийся </Directory>. Там будет много комментариев, не обращайте на них внимание. Этот блок следует заменить на:
      <Directory "e:/www">
      Options Indexes Includes
      AllowOverride All
      Order allow,deny
      Allow from all
      </Directory>
      Это - установки для директории с Вашими html-документами.
    • Установите UserDir (пользовательская директория):
      UserDir e:/home
      Это директория для пользовательских html-документов
    • Установите DirectoryIndex (начальная страница):
      DirectoryIndex index.htm index.html
      Данная директива указывает на стартовый документ, если в адресной строке браузера указана только директория
    • Найдите и пропишите такой параметр:
      ScriptAlias /cgi-bin/ "e:/cgi-bin/"
      Данная директива указывает серверу директорию, в которой будут храниться CGI-скрипты Подобный параметр сообщает серверу  о том, что, если будет указан путь вида http://localhost/cgi-bin, то на самом деле следует обратиться к директории e:/cgi-bin.
    • Теперь следует найти и настроить блок параметров, начинающийся с <Directory "e:/cgi-bin"> и заканчивающийся </Directory>. Это - установки для CGI-директории:
      <Directory "e:/cgi-bin">
      AllowOverride All
      Options ExecCGI
      </Directory>
    • Настройте следующий параметр:
      AddHandler cgi-script .bat .exe
      Данная директива сообщает серверу о том, что файлы с данными расширениями необходимо обрабатывать как CGI-скрипты.
    • Если Вы собираетесь работать с SSI, то установите следующий параметр:
      AddHandler server-parsed .shtml .shtm .sht
      А если Вы хотите обрабатывать обычный гипертекст как SSI, измените на:
      AddHandler server-parsed .shtml .shtm .sht .html .htm

    Вот по идее и все!

    Теперь нужно перезапустить сервер, для чего один раз кликнуть на значке в системном трее левой кнопкой, появится меню: Start, Stop, Restart. Кликаете на Restart, после чего если не было нигде допущено ошибок, сервер будет перезапущен. В противном случае, будет выдано сообщение об ошибке и или прийдется ее искать, или повторить все с начала.

    3.2.3 Проверка работоспособности сервера.
    • Проверка html: в директории e:/www с html-документами Apache создайте файл index.html. Теперь в адресной строке браузера наберите:
      http://localhost/index.html
      или просто
      http://localhost/
      Должен загрузится Ваш файл. Если нет - то Вы допустили ошибку в конфигурировании DocumentRoot.
    • Проверка CGI: в директории e:/cgi-bin создайте файл test.bat:
      @echo off
      echo Content-type: text/html
      echo.
      echo.
      dir
      В адресной строке браузера наберите:
      http://localhost/cgi-bin/test.bat
      В окне отобразится результат команды DOS dir.
    • Проверка SSI: аналогична проверке html. Используйте, например, директиву
      <!--#exec cgi="/cgi-bin/test.bat"-->
    4. Виртуальный хостинг

    При активной работе может случиться так, что пользоваться одним хостом неудобно. Неудобство будет заключаться в том, что при установке сервера существует только одна директория e:/www для хранения html-документов и только одна директория для cgi-скриптов - e:/cgi-bin. Данную проблему можно решить при помощи виртуального хостинга. Скажем, можно с помощью сервера сделать  один с именем serv1 и адресом 127.0.0.2, а другой - с именем serv2 и адресом 127.0.0.3. (вместо "serv1" и "serv2" Вам нужно будет указать действительные имена Ваших виртуальных хостов. Назовите их так же, как и на Вашем настоящем Web-сервере - это может многое упростить при программировании скриптов.) в случае хостинга, основанного на ip-адресах, или с одним и тем же ip-адресом (127.0.0.1), но разными именами ("serv1" и "serv2"), в случае хостинга, основанного на именах. Я рассмотрю оба случая.

    4.1 Виртуальный хостинг, основанный на ip-адресах

    Как это принято в Unix, каждый сервер будет представлен своим каталогом в директории e:/home с именем, совпадающим с именем сервера. Например, сервер serv1 будет храниться в директории e:/home/serv1. В этой директории будут находиться:

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

    Директории www и cgi Вам необходимо создать прямо сейчас.

    Далее, для установки виртуального нужно будет настроить главный сервер:

    • Откройте директорию e:usrlocalapacheconf. Откройте находящийся там файл httpd.conf. В самый конец добавьте следующие строки после всех комментариев:
      #----serv1
      <VirtualHost 127.0.0.2>
      ServerAdmin admin@serv1.com
      ServerName serv1
      DocumentRoot "e:/home/serv1/www"
      ScriptAlias /cgi/ "e:/home/serv1/cgi/"
      ErrorLog e:/home/serv1/error.log
      CustomLog e:/home/serv1/access.log common
      </VirtualHost>
      При желании можно добавить и другие параметры (например, DirectoryIndex и т.д.), но все параметры по умолчанию наследуются виртуальным хостом от главного.
    Этим Вы создадите виртуальных хост со следующими свойствами:
    • Имя - serv1
    • Доступен по адресу http://127.0.0.2.
    • Расположен, соответственно, в директории e:/home/serv1.
    • Директория для хранения документов - e:/home/serv1/www, доступная по адресу http://127.0.0.2/.
    • Директория для CGI - e:/home/serv1/cgi, доступная по адресу http://127.0.0.2/cgi/
    • Файлы журналов хранятся в e:/home/serv1

    Если Вам необходимо создать 2, 3 , 4 и т.д. хоста, то просто копируете данный блок, только изменяете имена серверов и адреса и месторасположение документов и скриптов. Адреса лучше всего раздавать по порядку, а то можно запутаться и возможна некорректная работа сервера

    Основной хост по-прежнему доступен по адресу http://127.0.0.1 или http://localhost.

    4.2 Виртуальный хостинг, основанный на именах

    Принцип построения тот же самый, Вам необходимо выделить под каждый хост отдельную папку, имя которой совпадает с именем хоста, в которой, есть две вложенные папки www и cgi - для документов и скриптов. Разница лишь в настройках основного сервера. Для виртуального хостинга, основанного на именах, Вам нужно настроить основной сервер следующим образом:

    • Откройте директорию e:usrlocalapacheconf. Откройте находящийся там файл httpd.conf. В самый конец добавьте следующие строки после всех комментариев:
      #----VirtualHost 127.0.0.2
      <VirtualHost 127.0.0.2>
      ServerAdmin admin@serv1.com
      ServerName VHost1
      ServerAlias VHost1
      DocumentRoot "e:/home/VHost1/www"
      ScriptAlias /cgi/ "e:/home/VHost1/cgi/"
      ErrorLog e:/home/VHost1/error.log
      CustomLog e:/home/VHost1/access.log common
      </VirtualHost>
    Этим Вы создадите виртуальных хост со следующими свойствами:
    • Имя - VHost1
    • Доступен по адресу http://VHost1/ (или http://127.0.0.2/).
    • Расположен, соответственно, в директории e:/home/VHost1.
    • Директория для хранения документов - e:/home/VHost1/www, доступная по адресу http://127.0.0.2/.
    • Директория для CGI - e:/home/VHost1/cgi, доступная по адресу http://127.0.0.2/cgi/
    • Файлы журналов хранятся в e:/home/VHost1
    5. Установка PHP

    Установка PHP не займет много веремени. Нужно всего лишь достать бинарный дистрибутив, и запустить setup-программу, а также необходимо настроить сервер.

    5.1 Установка PHP
    • Создайте директорию e:/usr/local/php. Это - та директория, в которую будет установлен PHP.
    • Скачайте дистрибутив PHP и запуститt setup-программу.
    • Следуя инструкциям инсталятора, установите PHP в директорию e:/usr/local/php.
    • В файле php.ini (который находится в корневой папке Windows)  есть закомментированные строки, выглядящие так:
      ;extension=имя_модуля.dll
      Если Вы хотите включить какой-нибудь модуль (по умолчанию уже включена поддержка GD и mSQL), раскомментируйте соответствующую строку (уберите точку с запятой), но будьте осторожны, чтобы не произвести необратимых действий!.
    5.2 Настройка Apache
    • В файл конфигурации Apache conf/mime.types добавтьте такую строку:
      application/x-httpd-php phtml php3 php
    • Теперь откройте файл conf/httpd.conf и добавьте в его конец, но перед блоком виртуальных хостов) такие строки:
      <Directory "e:/usr/local/php">
      Options ExecCGI
      </Directory>
      ScriptAlias "/__php_dir__/" "e:/usr/local/php/"
      Action application/x-httpd-php "/__php_dir__/php.exe"
    Все, PHP установлен!  5.3 Проверка работоспособности PHP

    О том, работает PHP или нет, Вам поможет узнать простенький скрипт:

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

    Данный скрипт нужно сохранить в ту же папку что и html-документы -  e:/www/test.php. Теперь в адресной строке браузера наберите:

    http://localhost/test.php

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

    6. Установка Perl

    Работа с  Perl начинается с выбора директории. Так как Perl требует, чтобы в каждом скрипте первой строкой стоял путь к Perl-интерпретатору; например, эта строка может выглядеть так:

    #!/usr/local/bin/perl
    Эту же строку можно было бы написать и так:
    #!/usr/local/bin/perl.exe
    или даже так:
    #!e:usrlocalbinperl.exe
    Это заставляет искать Perl-интерпретатор в директории e:/usr/local/bin/ (если диск e: не указан, это означает, что он совпадает с диском, на котором расположен Apache). Ясно, что если Вы установите Perl не в такую же директорию, как на настоящем Web-сервере, Вам придется каждый раз менять эту самую первую строку во всех скриптах при закачке их на сервер. Таким образом, следует разместить интерпретатор в той же директории, что и на настоящем сервере::
    e:/usr/local/bin
    ВНИМАНИЕ: очень распространенной ошибкой является установка Perl не в ту директорию или не на тот диск. Если Вы все же по какой-то необъяснимой причине не придерживаетесь этого совета, то проверьте первую строку в Вашем скрипте. Она должна указывать не на директорию с Perl, а на исполнимый файл perl.exe. Напоминаю, что
    #!/usr/local/bin/perl
    заставляет искать Perl-интерпретатор perl.exe в директории e:/usr/local/bin/, а не e:/usr/local/bin/perl

    Если Вы все же установите пути неправильно, Apache выдаст сообщение об ошибке, а в errors.log появится сообщение: couldn't spawn child process.

    6.1 Установка Perl
    • Скачайте и запустите дистрибутив
    • Следуя инструкциям инсталятора установите Perl в директорию:
      e:/usr/local/bin
    6.2 Настройка сервера

    Для запуска интерпретатора нужно дать серверу знать, как обрабатывать файлы с расширением .pl  и .cgi:

    • Найдите в файле конфигурации Apache conf/httpd.conf строчку
      AddHandler cgi-script .bat .exe
      Замените ее на
      AddHandler cgi-script .bat .exe .pl .cgi

    Вот и все! Можете пользоваться Perl-интерпретатором!

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

    Для проверки работоспособности Perl используйте такой скрипт (помещенный, разумеется, в директорию cgi-bin или аналогичную):

    #!/usr/local/bin/perl
    print "Content-type: text/htmlnn";
    print "It works!<br>n";
    system("dir");

    Скрипт должен выдать надпись "It works!".

    7. Установка MySQL Конечно, поддержка баз данных MySQL может и не понадобится, но уж лучшее ее все-таки подключить. 7.1 Установка MySQL
    • Запустите setup.exe и следуя инструкциям инсталятора установите MySQL в директорию e:/usr/local/mysql.
    • Что ж, считайте, MySQL уже установлена. Осталось только создать базу данных. Для этого следует запустить e:/usr/local/mysql/bin/mysqladmin и создать новую базу данных, например, testbase.
    • Если Вы планируете использовать MySQL в скриптах на PHP, проверьте, раскомментирована ли в файле php.ini  следующая строка:
      extension=php_mysql.dll
      Если в ее начале стоит точка с запятой, уберите ее - иначе PHP не сможет опознавать функции для работы с MySQL!
    7.2 Проверка работоспособности MySQL

    Напишите простенький скрипт и сохраните его в директории e:/www/, назвав, скажем, test_sql.php. Листинг скрипта:

    Error_Reporting(1+2+4);
    define("DBName","testbase");
    define("HostName","localhost");
    define("UserName","root");
    define("Password","");

    if(!mysql_connect(HostName,UserName,Password))
    { echo "Не могу соединиться с базой ".DBName."!
    "; exit; }

    // Создаем таблицу test. Если такая таблица уже есть, сообщение об ошибке будет
    // подавлено, т.к. используется "@"
    @mysql(DBName,"create table test(id int,a text)");

    // Вставляем в таблицу 10 записей
    for($i=0; $i<10; $i++)
    { $id=time();
    mysql(DBName,"insert into test(id,a) values($id,'Строка $i!')");
    }

    // Выводим все записи
    $r=mysql(DBName,"select * from test");
    for($i=0; $i { $f=mysql_fetch_array($r);
    echo "$f[id] -> $f[a]
    n";
    }

    ?>
    Обращаю Ваше внимание на макросы DBName, HostName, UserName и Password. DBName должен содержать имя базы данных. HostName - всегда localhost, ведь мы работаем на локальном компьютере. В макросе UserName проще всего подставлять root, который является собственником всех таблиц. При установке MySQL пользователю root не назначается пароль, так что макрос Password равен пустой строке.
    Категория: Администратирование | Добавил: Asakura (27.12.2010)
    Просмотров: 782 | Комментарии: 1 | Рейтинг: 0.0/0
    Всего комментариев: 0
    Добавлять комментарии могут только зарегистрированные пользователи.
    [ Регистрация | Вход ]
     
    Реклама