Разное

Веб сервер апач: Как установить веб-сервер Apache c PHP, MySQL и phpMyAdmin на Windows

06.05.2019

Содержание

Установка и настройка Apache сервера

В этой статье расказано как установить и настроить Apache-сервер на стандартный домашний компьютер, работающий под управлением Windows, чтобы на нём можно было заняться разработкой и написанием CGI-программ. Выполнив все приведённые здесь этапы, вы сможете запускать и проверять на своем компьютере все программы, представленные на этом сайте в качестве примеров.

  1. Скачайте Web-сервер Apache
  2. Установите Web-сервер Apache
  3. Настройте файла конфигурации Apache mime.types
  4. Настройте файла httpd.conf
  5. Проверте Web-сервера
  6. Проверте выполнение CGI-программы

Сервер Apache вы можете загрузить с узла компании по адресу http://www.apache.org. Щелкните на ссылке с именем download и выберите самую повую версия сервера для платформы Win32. Имя файла будет скорее всего вроде apache_1_3_9_win32.exe.

После того как пакет установки загружен, вам следует установить программу. Сервер Apache использует стандартную процедуру установки, поэтому вам нужно лишь дважды щелкнуть на файле пакета установки, принять условия лицензии, указать папку для программы и выбрать тип установки.

Рекомендуем установить сервер так (шесть шагов):

  1. Определитесь с директорией, в которую Вы будете устанавливать Apache. Все дальнейшие рассуждения основаны на том, что Вы выбрали для этой цели такой каталог: f:usrlocalapache Если диска F: у Вас нет, или если Вы не хотите его захламлять, советуем сделать одно из трех:
    1. Создайте диск F: с помощью какой-нибудь программы для виртуальных разделов (например, с помощью встроенной в Windows 95/98 программы DriveSpace). Это самое лучшее решение, и с точки зрения экономии памяти, и с точки зрения быстродействия. Ведь что такое Web-сайт, как не набор очень небольших файлов? А DriveSpace как раз и оптимизирует работу с такими файлами.
    2. Сделайте виртуальный диск F:. Для этого создайте где-нибудь на любом диске директорию, которая в будущем будет являться корневой для диска F:. Предположим, Вы выбрали C:INTERNET. Далее, в начале файла c:autoexec.bat пропишите такую строку:

      и перезагрузите компьютер. У вас должен появиться виртуальный пустой диск F:.

      ВНИМАНИЕ: имеются сведения, что в Windows 95/98 есть ошибка, в результате которой иногда subst-пути «сами по себе» преобразуются в абсолютные. То есть, например, иногда в рассмотренном выше примере команды

      f:
      cd
      cd
      dir

      (а точнее, команда dir в своем заголовке) ошибочно выведут, что текущая директория C: (а не F:, как это должно быть). Указанная ошибка чаще всего проявляется в неработоспособности Perl-транслятора. Так что лично мы не рекомендуем Вам использовать subst. Вместо этого воспользуйтесь пунктом 1.

    3. Наконец, Вы можете всего этого не делать и поставить Apache на любой другой диск, только тогда Вам придется немного тяжелее при выполнении всех остальных действий. Нужно будет все указываемые пути заменять на Ваши собственные, а это крайне неприятно. Еще раз настоятельно рекомендуем воспользоваться диском F:.

    Рекомендуем все же разместить Apache в указанном в начале каталоге, так как он максимально соответствует каталогу для реального Web-сервера Интернета. Ведь чем ближе в плане конфигурации мы будем к такому серверу, тем лучше и эффективнее сможем работать.

  2. Запустите только что скачанный файл. В появившемся диалоге нажмите кнопку Yes, а затем — кнопку Next.
  3. Теперь нажмите Browse. Вручную задайте директорию для установки: f:usrlocalapache и нажмите кнопку OK.
  4. Выберите тип установки — Сustom и уберите флажок Source Code (если, конечно, не хотите посмотреть исходные тексты Apache). Этим Вы сэкономите себе 3 Мбайта.
  5. Нажмите Next и подождите, пока будут копироваться файлы Apache.
  6. На запрос о перезагрузке компьютера ответьте «Перезагрузить».

Поздравляем — Apache установлен! Теперь самое неприятное — его настройка.

  1. Откройте директорию f:usrlocalapacheconf. Откройте находящийся там файл mime.types.
  2. Найдите в нем такую строчку:

    Измените ее на

    text/html      html htm shtml shtm sht

    Следует заметить, что если Вы по каким-то причинам не хотите портить файл mime. types, то можно вместо этого прописать в файле httpd.conf (см. ниже) строки вида

    AddType text/html html htm shtml shtm sht

Внимание! Это — самый ответственный момент установки. Просим соблюдать инструкции БУКВАЛЬНО.

  1. Откройте директорию f:usrlocalapacheconf Откройте находящийся там файл httpd.conf. Это — единственный файл, который Вам осталось настроить. Вам предстоит найти и изменить в нем некоторые строки, а именно те, о которых упоминается далее. Во избежание недоразумений не трогайте все остальное. Следует заметить, что в нем каждый параметр сопровождается несколькими строками комментариев, разобраться в которых с первого раза довольно тяжело. Поэтому не обращайте на них внимание.
  2. В поле ServerAdmin укажите Ваш E-mail адрес, который будет показываться в сообщениях об ошибке сервера. Например:
  3. В поле ServerName напишите любое слово — на работе это не сказывается, например:

    Только не забудьте раскомментировать поле ServerName, то есть убрать символ «#» перед этим параметром (по умолчанию он закомментирован)!

  4. В поле DocumentRoot укажите ту директорию, в которой будут храниться Ваши html-файлы, например:

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

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

    Таким образом, в этом блоке будут храниться установки для всех директорий по умолчанию (т.к. это — корневая директория).

  6. Найдите аналогичный блок, начинающийся <Directory «f:/usr/local/apache/htdocs»> и заканчивающийся </Directory>. Там будет много комментариев, не обращайте на них внимание. Этот блок следует заменить на:
    <Directory "f:/www"> Options Indexes Includes AllowOverride All Order allow,deny Allow from all </Directory>

    Это — установки для директории с Вашими html-документами. Если хотите, можете установить другую директорию, главное, чтобы она совпадала с той, которая прописана в параметре DocumentRoot

  7. Идем дальше. Установите UserDir, например так:

    Это будет директория, в которой хранились бы домашние страницы пользователей, если бы это был настоящий Web-сервер, а также корневые каталоги виртуальных хостов (см. ниже). Не забудьте также создать этот каталог.

  8. Установите DirectoryIndex так:
    DirectoryIndex index.htm index.html

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

  9. Найдите и пропишите такой параметр:
    ScriptAlias /cgi-bin/ "f:/cgi-bin/"

    Да, именно так, с двумя слэшами. Это будет та директория, в которой должны храниться Ваши CGI-скрипты. Если хотите, можете задать другое имя, например:

    ScriptAlias /mycgi/ "f:/mycgidir/"

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

  10. Теперь следует найти и настроить блок параметров, начинающийся с <Directory «f:/cgi-bin»> и заканчивающийся </Directory>. Это — установки для Вашей CGI-директории (если Вы установили для нее другое имя на предыдущем шаге, соответственно модифицируйте путь). Там должно быть:
    <Directory "f:/cgi-bin"> AllowOverride All Options ExecCGI </Directory>
  11. Настройте следующий параметр:
    AddHandler cgi-script .bat .exe

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

  12. И последнее — установите:
    AddHandler server-parsed .shtml .shtm .sht

    Или, если Вы хотите, чтобы и обычные файлы html обрабатывались SSI, напишите так:

    AddHandler server-parsed .shtml .shtm .sht .html .htm

Поздравляем — Вы настроили свой Apache, и он должен уже работать! Для запуска сервера нажмите Пуск->Программы->Apache Web Server->Start Apache as console app, при этом появится окно, очень похожее на Сеанс MS-DOS, и ничего больше не произойдет.

Не закрывайте его и не трогайте до конца работы с Apache.

Несколько слов о том, как можно упростить запуск и завершение сервера. В Windows можно назначить любому ярлыку функциональную комбинацию клавиш, нажав которые, Вы запустите этот ярлык. Так что щелкните правой кнопкой на панели задач, в контекстном меню выберите Свойства, затем Настройка меню и кнопку Дополнительно. В открывшемся Проводнике назначьте ярлыку Start Apache as console app комбинацию Ctrl+Alt+A, а ярлыку Shutdown Apache as console app — Ctrl+Alt+S

  • Проверка html: в директории f:/www с html-документами Apache создайте файл index.html. Теперь запустите браузер и наберите:
    http://localhost/index.html

    или просто

    Загрузится Ваш файл.

  • Проверка CGI: в директории f:/cgi-bin для CGI-скриптов создайте файл test.bat с таким содержанием:
    @echo off
 echo Content-type: text/html
 echo.
 echo.
 dir

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

    http://localhost/cgi-bin/test. bat

    В окне отобразится результат команды DOS dir. (Хотелось бы отметить, что указанный тест работает не на всех версиях Windows: иногда вместо того, чтобы выполнить файл test.bat, Apache выводит в браузер его содержимое. С чем это связано — не совсем ясно, однако, кажется, можно избавиться от указанной ошибки путем манипулирования с Реестром. Если у Вас test.bat не запускается, не расстраивайтесь: вряд ли Вы когда-нибудь будете писать скрипты в виде bat-файлов, тем более, что это несовместимо с Unix.)

  • Проверка SSI: аналогична проверке html. Используйте, например, директиву
    <!--#include virtual="/cgi-bin/test.bat"-->

Если bat-файлы Ваш Apache запускать не хочет (см. выше), то дождитесь установки Perl или PHP.

Если вы получили страницу с надпиьсю о правильной работе, вам нужно убедиться что сервер может выполнять CGI-программы. Для этого вы должны написать простую программу, поместить ее в правильный каталог и проверить, как она выполняется Web-сервером.

Ниже вы видите текст простой проверочной программы на языке Perl.

#!/usr/local/bin/perl
use CGI;
$query = new CGI;
print $query->header;

print "<html><head><title>Проверка</title></head>n";
print "<body>Проверка прошла успешно.</body></html>";

Скопируйте текст этой программы в Блокнот, сохраните его в файле test.pl и поместите этот файл в каталог cgi-bin корневого каталога вашего сервера. Первую строку в этой программе нужно изменить так, чтобы она отражала действительное положение интерпритатора Perl на вашем компьютере.

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

Теперь можете проверить выполнение этой программы, набрав в адресной строке броузера следующее:

http://localhost/cgi-bin/test.pl

Если все работает правильно, вы должны увидеть в окне броузера страницу, HTML-код которой указан в операторах print. Результат выполнения этой программы вы можете увидеть кликнув тут. Русский текст может быть отображен броузером в неверной кодировке. Если это случилось, то в открывшемся окне вручную выставте кодировку Кирилица (Windows). Как устанавливать кодировку HTML-страницы возвращаемой CGI-программой, чтобы броузер ее всегда верно отображал, будет рассказано позже.

Эта программа проверяет правильность установки компонентов для CGI-программирования. В частности, при выполнении этой программы проверяется следующее.

  • Web-сервер настроен и сконфигурирован правильно и может выполнять CGI-программы.
  • Программа помещена в правильный каталог, сервер распознает файлы в этом каталоге как программы.
  • Интерпритатор Perl установлен и работает правильно; путь к программе интерпритатора правильно указан в первой строке.
  • Библиотеки, входящие в комплект поставки Perl, установлены правильно, в частности CGI.pm.

При написании статьи использовались материала сайта http://www. dklab.ru.

Настройка виртуальных хостов Apache | Losst

Apache — это один из самых популярных веб-серверов для размещения сайтов на хостингах и VPS, а также для создания тестовых окружений. Если на вашем сервере один сайт, то все довольно просто, все запросы, поступающие к серверу, отправляется этот единственный сайт. А что если сайтов несколько? Как Apache будет понимать кому адресован запрос?

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

Содержание статьи:

Как работают виртуальные хосты Apache?

Не будем пока о локальных системах. Если у вас есть веб-сайт, то наверное, вы занимались парковкой домена и уже знаете как все настраивается. Сначала используется DNS сервер, который выдает IP адрес вашего сервера всем клиентам, запросившим адрес этого домена. Затем клиенты отправляют запрос на ip вашего сервера, а веб-сервер уже должен его обработать.

Обычно, на хостингах один веб-сервер обслуживает десятки, а то и сотни сайтов. И как вы понимаете, все запросы поступают на один ip. Для распределения их между папками на сервере используется имя домена, которое передается вместе с запросом в HTTP заголовке «Host». Именно поэтому нужно выполнять парковку домена не только на DNS сервисе, но и на вашем сервере.

Вы настраиваете виртуальные хосты Apache, а затем веб-сервер сравнивает домен, переданный в заголовке «Host» с доступными виртуальными доменами и если находит совпадение, то возвращает содержимое настроенной папки или содержимое по умолчанию, или ошибку 404. Нужно сказать, что вы можете настроить виртуальный хост для любого домена, например, vk.com или losst.ru. Но пользователи смогут получить доступ к этому домену у вас, только если к вам будут поступать запросы от браузеров, в которых будет значиться этот домен. А теперь детальнее про настройку.

Настройка виртуальных хостов Apache?

Я уже подробно рассматривал как настроить Apache в отдельной статье. Поэтому не буду полностью расписывать здесь все конфигурационные файлы. Остановимся на файлах виртуальных хостов. Для удобства они вынесены в отдельные папки:

  • /etc/apache2/sites-available
  • /etc/apache2/sites-enabled

Ясно, что это разделение очень условно. Вы можете его убрать и добавлять свои виртуальные хосты прямо в основной конфигурационный файл. Все файлы из этих папок подключаются к нему с помощью директив Include. Но ведь так намного удобнее. В папке sites-available находятся все конфигурационные файлы, но они пока еще не активированы и отсюда не импортируются никуда. При активации нужного хоста на него просто создается ссылка в папку /etc/apache2/sites-enabled.

Для примера, создадим новый конфигурационный файл для виртуального хоста site1.ru. Для этого просто скопируем существующую конфигурацию для хоста по умолчанию — 000-default:

$ sudo cp /etc/apache2/sites-enabled/000-default.conf /etc/apache2/sites-enabled/site1.ru.conf

Сначала рассмотрим синтаксис того, что вы увидите в этом файле:

<VirtualHost адрес_хоста_для прослушивания:порт>
ServerName домен
ServerAlias псевдоним_домена
ServerAdmin емейл@администратора
DocumentRoot /путь/к/файлам/сайта
ErrorLog /куда/сохранять/логи/ошибок/error. log
CustomLog /куда/сохранять/логи/доступа/access.log combined
</VirtualHost>

Это минимальная конфигурация, которую вам нужно указать, чтобы создать виртуальный хост Apache. Конечно, здесь вы можете использовать и другие директивы Apache, такие как Deny, Allow и многие другие. А теперь рассмотрим наш пример для тестового сайта site1.ru:

<VirtualHost *:80>
ServerName site1.ru
ServerAdmin [email protected]
DocumentRoot /var/www/html/site1.ru/
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Здесь мы используем звездочку вместо ip адреса, это значит, что веб-сервер будет слушать соединения на всех адресах, как на внешнем, так и на localhost. Порт 80, это порт по умолчанию. Затем указываем домен, электронный адрес администратора, и путь к папке, в которой будут находиться данные сайта. Две строчки Log говорят куда сохранять логи, но добавлять их необязательно. Дальше, нам нужно активировать этот хост. Мы можем вручную создать ссылку или использовать уже заготовленную команду:

sudo a2ensite site1.ru

Затем перезапустите Apache:

sudo systemctl restart apache2

И нам осталось все это протестировать. Если ваш сервер имен еще не направляет запросы к домену на ваш ip, а вы хотите уже проверить как все работает, можно пойти обходным путем. Для этого достаточно внести изменения в файл /etc/hosts на машине, с которой вы собрались открывать сайт. Этот файл, такой себе локальный DNS. Если компьютер находит ip для домена в нем, то запрос в интернет уже не отправляется. Если вы собираетесь тестировать с той же машины, на которую установлен Apache2, добавьте:

sudo vi /etc/hosts

127.0.0.1 site1.ru

Если же это будет другой компьютер, то вместо 127.0.0.1 нужно использовать адрес вашего сервера, на котором установлен Apache. Затем можете открыть сайт в браузере:

site1. ru

Настройка виртуальных хостов с SSL

Если вы хотите использовать современный безопасный протокол https для работы вашего виртуального хоста, то вам кроме обычного хоста на порту 80 будет необходимо создать виртуальный хост на порту 443. Здесь будет не так много отличий, вот пример, для нашего сайта site1.ru:

<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin [email protected]
DocumentRoot /var/www/html
ServerName site1.ru
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
</VirtualHost>
</IfModule>

Теперь о каждой новой строчке более подробно:

  • <IfModule mod_ssl.c> — весь код в этой секции будет выполнен только в том случае, если активирован модуль mod_ssl. Это нужно для безопасности, чтобы если модуль не активирован, то код не вызывал ошибок;
  • SSLEngine — включает поддержку SSL;
  • SSLCertificateFile, SSLCertificateKeyFile — пути к файлам сертификата и приватного ключа;
  • SSLOptions — для скриптов php, cgi и других мы передаем стандартные SSL опции.

Вот и все. Как видите, не так сложно. Осталось перезапустить Apache и проверить как все работает:

sudo a2enmod ssl
sudo a2ensite site1.ru-ssl
sudo systemctl restart apache2

Затем откройте https адрес в браузере:

https://site1.ru

 

Выводы

В этой статье мы рассмотрели как выполняется настройка виртуальных хостов Apache. Как видите, один веб-сервер может обслуживать сотни сайтов, а создание виртуальных хостов apache совсем не сложно. Надеюсь, эта статья была вам полезной. Если у вас остались вопросы, спрашивайте в комментариях!