Запуск, перезапуск и остановка сервера. Под управлением ОС Linux. Под управлением ОС Windows. Под управлением Mac ОС.
1. Сервер Апач
В качестве имитатора сервера на машине-клиенте может быть использован наиболее известный в Интернет http-сервер Apache (в русской нотации – Апач).
В большинстве случаев программисты, профессионально работающие с компьютерными сетями, используют Unix-образные операционные системы. Однако, в нашей стране наиболее доступными являются операционные системы Windows, начиная с Windows 95/98. Они наиболее сбалансированы с точки зрения интерфейса и удобства работы администратора компьютерных сетей.
Для наших условий одним из лучших серверов является Apache, обеспеченный такими приложениями, как Perl, PHP3 и MySQL, также работающими под Windows, тем более, что при работе в домашних условиях использование обычных для компьютерных сетей технологий SSI, CGI, PHP и Perl одновременно, требуют наличия сервера.
Для работы с сервером Апач необходимо скачать его, инсталлировать на своём компьютере и настроить.
Затем предлагается согласиться с требованиями лицензии, и принять их.
В следующем окне содержится информация, предупреждающая, что данный сервер был разработан для использования в Unix-системах, но инсталлируемая версия предназначена для работы с операционными системами Windows 2000, NT, 98 или 95. Сообщаются возможности инсталлируемой системы.
Затем фиксируется информация о пользователе: имя, название организации, кто будет пользоваться сервером.
2. Работа сервера под управлением ОС Linux.
Хостинг сайтов.
Можно реализовать четырьмя способами:
по умолчанию в папке /var/www/html. Доступом является http://localhost/
настройки основного хостинга. Например, http://localhost/phpmyadmin
в любой папке с помощью модуля виртуальных хостов. Например, http://mysite/
в папке пользователя public_html (модуль userdir). Например, http://localhost/~username
Установка
Для установки Apache выполните в терминале:
sudo apt-get install apache2
Настройка
Для применения изменений в настройках необходимо перезапустить демон Apache:
sudo service apache2 restart
В Ubuntu конечный файл настройки (apache2.conf) разделён на несколько файлов, расположенных в разных поддиректориях. Подробней написано в комментариях файла apache2.conf.
Настройки модулей расположены в директории /etc/apache2/mods-available. Для подключения или отключения модулей (настроек модулей) следует использовать соответствующие команды a2enmod или a2dismod. Пример подключения модуля:
sudo a2enmod <mod-name>
Свои настройки следует сохранять в файлы, расположенные в директории /etc/apache2/conf-available. Для подключения или отключения своих настроек следует использовать соответствующие команды a2enconf или a2disconf. Пример подключения файла со своими настройками:
sudo a2enconf <config-name>
Настройки виртуальных хостов следует сохранять в файлы, расположенные в директории /etc/apache2/sites-available. Для подключения виртуальных хостов следует использовать соответствующие команды a2ensite или a2dissite. Пример подключения виртуального хоста:
sudo a2ensite <site-name>
Кодировка по умолчанию
Для указания кодировки по умолчанию следует использовать директиву AddDefaultCharset в файле /etc/apache2/conf-available/charset.conf (или раскомментировать соответствующую строку):
AddDefaultCharset UTF-8
Виртуальные хосты
Файлы настроек виртуальных хостов хранятся в /etc/apache2/sites-available/*.conf. По умолчанию в Apache уже настроен один виртуальный хост. Его настройки лежат в файле 000-default.conf. Вы можете использовать этот виртуальный хост в качестве примера.
Пример настройки виртуального хоста:
<VirtualHost *:80>
#Имя хоста
ServerName host1.server1
#Корневая папка хоста
DocumentRoot /var/www/host1.server1
<Directory /var/www/host1.server1>
#Разрешение на перезапись всех директив при помощи .htaccess
AllowOverride All
</Directory>
</VirtualHost>
Назовите файл настройки именем вашего хоста host1.server1.conf и сохраните.
После создания файла настроек допишите в /etc/hosts имя вашего хоста:
127.0.0.1 host1.server1
Для включения созданного виртуального хоста используется утилита a2ensite:
sudo a2ensite host1.server1
Отключается хост аналогично утилитой a2dissite:
sudo a2dissite host1.server1
Модули
mod_userdir
Модуль mod_userdir позволяет использовать директории, находящиеся в домашних директориях пользователей для хранения веб страниц. По умолчанию Apache ищет запрашиваемые страницы в директории ~/public_html
mkdir ~/public_html
Чтобы включить mod_userdir, выполните:
sudo a2enmod userdir
и добавьте необходимого пользователя в группу www-data:
sudo adduser $USER www-data
после чего перезагрузите Apache:
sudo service apache2 restart
Страницы будут доступны по адресу http://localhost/~username, где username — имя пользователя.
Настройка public_html подробно.
CGI
Если Вы хотите запускать на сервере cgi-скрипты, подключите модуль cgi командой
sudo a2enmod cgi
По умолчанию cgi-скрипты размещаются в директории /usr/lib/cgi-bin, но вы можете разместить их где угодно, указав это в настройках своего виртуального хоста, либо глобально для всех хостов в файле /etc/apache2/conf-enabled/serve-cgi-bin.conf.
Eсли ваш сервер работает во внешней сети, то в целях безопасности настоятельно рекомендуется размещать cgi-скрипты вне корневой директории виртуального хоста
Настройка HTTPS в Apache
Веб-сервер Apache полностью поддерживает работу по HTTPS. Чтобы активировать поддержку HTTPS на уже установленном Apache, необходимо выполнить следующее.
Перенаправление HTTP запросов на HTTPS
Если вы хотите запретить использование HTTP, то самым разумным будет перенаправлять все HTTP запросы к страницам на их HTTPS адрес. Сделаем это с помощью mod_alias. Если он не включён — включаем:
sudo a2enmod alias
sudo service apache2 restart
Затем изменяем файл /etc/apache2/sites-enabled/000-default, отвечающий за виртуальный хост по умолчанию для HTTP запросов. В этот файл добавляем директиву
Redirect / https://example.com/
При этом все настройки директорий можно удалить, поскольку по HTTP на ваши сайты всё равно будет не попасть.
Всё, теперь ещё раз перезапустите Apache и убедитесь, что при заходе по HTTP вы автоматически перенаправляетесь на HTTPS-страницу.
3. Работа сервера под управлением ОС Windows.
На Windows платформах Apache обычно работает как сервис Windows NT/2000/XP или как консольное приложение Windows 95/ME. Для получения более подробной информации по этому вопросу, обратитесь к документам, объясняющим работу Apache под Windows в качестве сервиса и работу Apache под Windows в качестве консольного приложения.
В Unix программа httpd представляет собой демон, выполняющийся в фоновом режиме и обслуживающий поступающие запросы. О том, каким образом можно запустить httpd и что в результате этого получится, и рассказывается в этом документе.
Если в директиве Listen в конфигурационном файле указано значение 80 (задаваемое по умолчанию) или любое другое значение порта меньшее 1024, то для запуска Apache необходимо быть привилегированным пользователем, так как Apache придется подключаться к привилегированному порту. После того, как сервер запустился и выполнил ряд подготовительных операций, таких как открытие своих log-файлов, он порождает несколько процессов потомков, которые и будут выполнять всю работу по обработке запросов от клиентов. Основной процесс httpd выполняется с правами привилегированного пользователя, в то время как процессы потомки имеют меньший приоритет. Все это контролируется МП-модулем, который компилируется вместе с сервером.
Для запуска демона httpd лучше всего использовать скрипт apachectl. Этот скрипт устанавливает ряд переменных окружения, необходимых для правильной работы сервера под некоторыми операционными системами, а затем запускает исполняемый файл httpd. Скрипт apachectl передаст серверу любую командную строку, так что при вызове можно указывать в его командной строке все необходимые для сервера опции. Вы также можете вручную внести некоторые изменения в скрипт apachectl, в частности, изменив значение переменной HTTPD для запуска Apache из другого каталога, и указав опции, которые будут передаваться серверу каждый раз при его запуске.
Первым делом httpd находит и считывает конфигурационный файл httpd.conf. Путь к этому файлу задается еще во время сборки сервера, но его можно изменить и после этого, запустив сервер с опцией -f, как это показано в следующем примере
/usr/local/apache2/bin/apachectl -f /usr/local/apache2/conf/httpd.conf
Если во время запуска не возникло никаких проблем, то сервер отсоединится от консоли и приглашение на ввод командной строки вернется к пользователю практически мгновенно. Это указывает на то, что сервер запустился и теперь выполняет свою работу. Теперь вы можете, используя браузер, подключиться к нему и увидеть тестовую страницу, находящуюся в каталоге DocumentRoot, а также локальную копию документации, ссылку на которую вы найдете на той же странице.
Ошибки, которые могут возникнуть во время запуска
Если во время запуска Apache произойдет какая-либо фатальная ошибка, то перед тем, как завершить свою работу, сервер пошлет на консоль или в ErrorLog сообщение, описывающее данную ошибку. Наиболее распространенным сообщением об ошибке является "Unable to bind to Port ...". Подобная ошибка возникает в двух случаях:
Если вы пытаетесь запустить сервер на привилегированном порту, будучи зарегистрированным в системе как обычный пользователь; или
Если вы пытаетесь запусть сервер, когда в системе уже есть выполняющийся демон Apache или другой web-сервер, слушающий тот же самый порт.
Запуск сервера вместе с запуском всей системы
Если вы хотите, чтобы сервер запускался автоматически после перезагрузки системы, добавьте вызов скрипта apachectl в системные файлы, отвечающие за загрузку операционной среды (обычно это rc.local или файлы в каталоге rc.N). Это приведет к запуску Apache от имени привилегированного пользователя. Во избежание проблем с безопасностью системы, убедитесь, что сервер сконфигурирован правильно.
Скрипт apachectl разработан таким образом, что он может действовать как стандартный init-скрипт системы SysV; он может принимать аргументы start, restart, и stop и переводить их в соответствующие сигналы процессу httpd. Поэтому чаще всего вам достаточно сделать ссылку на apachectl в запускном каталоге процесса init. Но прежде чем делать это, узнайте точные требования вашей системы.
4. Работа сервера под управлением Mac ОС.
Apache и модуль PHP имеются в Mac OS X 10.9 «из коробки».
Для начала открываем Терминал. Для этого нажимаем Control + Пробел и в Spotlight пишем «тер» (без кавычек). В выдаче подсветится приложение Терминал. Жмем на Enter.
Далее запускаем Apache командой:
sudo apachectl start
Вводим по требованию пароль супер-пользователя.
Далее в строке браузера водим localhost. Должна открыться страница с надписью «It works!». Это означает что у нас пока все отлично.
Файл, отвечающий за вывод этой надписи, находится здесь: /Library/WebServer/Documents/index.html.en
Если вас не устраивает данное расположение директории веб сервера, то её легко сменить. Открываем Finder. Далее «Переход» -> «Переход к папке…» и в строке пишем /private/etc/apache2/. Находим файл httpd.conf и открываем его. Далее находим строку:
#LoadModule php5_module libexec/apache2/libphp5.so
И раскомментируем её:
LoadModule php5_module libexec/apache2/libphp5.so
Эта строка будет подключать PHP при старте Apache.
Ниже находим строку:
DocumentRoot "/Library/WebServer/Documents"
И заменяем этот путь на тот, который вам нужен. Например, пусть это будет директория Sites на рабочем столе:
DocumentRoot "/Users/user_name/Desktop/Sites"
Тоже самое нужно проделать со строкой ниже:
<Directory "/Library/WebServer/Documents">
Она должна стать такой:
<Directory "/Users/user_name/Desktop/Sites">
И напоследок находим строку:
#ServerName www.example.com:80
И заменяем её на эту:
ServerName localhost
Сохраняем файл httpd.conf и перезагружаем Apache командой:
sudo apachectl restart
Если все хорошо, то вы должны увидеть следующее:
Index of
Apache необходимо перезагружать каждый раз после каких-либо изменений в его конфигурациях.
5. Контрольные вопросы.
1. Какими приложениями обеспечен сервер Apache?
2. Какими способами можно реализовать хостинг сайтов?
3. Каким образом Apache работает на Windows?
4.Что необходимо обязательно выполнять после внесения в сервер изменений?
<== предыдущая лекция | | | следующая лекция ==> |
Хемолитотрофные железобактерии | | | Классификация средств мониторинга и анализа |
Дата добавления: 2017-06-02; просмотров: 2378;