Поднимаем локальный сервер в любой директории на MAC OS X. Запуск WEB сервера под MAC OS x Конфигурация виртуальных хостов


нет

Спустя некоторое время после того, как я начал пользоваться Mac OS X, у меня возникло желание «пощупать» серверную версию «десятки». Было интересно на нее посмотреть, сравнить с теми же Ubuntu, Debian или Windows Server. Потребовалось полтора года для того, чтобы «созреть» окончательно и в 2010 году я купил Mac mini Server. Тогда эти замечательные компьютеры работали под управлением Snow Leopard Server. Поработав с ним какое-то время, я пришел к выводу, что эта штука очень удобна. Можно настроить много сервисов, которые сделают жизнь с компьютерами в локальной сети намного приятнее. Например, локальный DNS, VPN, FTP, WebDAV, «хостить» там несколько сайтов, среди которых и мой блог. И вообще, вывести уровень комфорта при использовании компьютера на новый. Однако, в процессе настройки и эксплуатации, я понял, что Mac OS X Server требует к себе очень внимательного отношения и ошибок в настройке не прощает. К примеру, DNS очень чувствителен к ним. И если вы допускали ошибку в процессе его настройки, то прямая дорога была в консоль, потому как восстановить нормальную работу сервера можно было только оттуда. Однако, это не помешало мне изучить функциональность системы до того уровня, когда, после настройки необходимых служб, о сервере можно было просто забыть. Вот это «забыть» я не хотел менять даже на новую систему. А потому мимо меня благополучно прошла OS X Lion Server и, возможно, я оставил бы без внимания OS X Mountain Lion Server. Дома я обновил клиентские компьютеры на новейшую OS X Mountain Lion и меня начал волновать вопрос: а сможет ли Snow Leopard Server обслуживать клиентские компьютеры под управлением OS X Mountain Lion? Немного покопавшись в базе знаний Apple, я понял, что нет . И стал готовиться к долгому процессу настройки новой системы.

Что теперь из себя представляет сервер.

Если раньше было две - серверная и клиентская - операционные системы, то сейчас Apple оставила одну, клиентскую, добавив в свою экосистему серверное приложение, которое, будучи установленным на Mountain Lion, активирует в нем серверные функции и позволяет ими управлять. То есть разграничение на сервер и клиент осталось только номинально. Судя по всему, причиной, которая толкнула Apple на такой шаг, стало желание уйти от прежнего цикла разработки параллельно двух ОС, сконцентрировавшись на развитии OS X для домохозяек всех, а серверное приложение дорабатывать и развивать по мере добавления новых функций и сервисов в основную ОС. Вместе с этими правками изменилось и ценообразование. Теперь стать счастливым обладателем серверного программного обеспечения можно всего за 40 у. е. Это положительный момент, поскольку Mac OS X v10.5 Leopard Server стоил заоблачные 1000 у. е., Snow Leopard Server подешевел вдвое, а Lion Server можно было купить «всего» за 80 у. е.

Что потерял лично я.

К моему удивлению в OS X Server в списке служб отсутствуют NAT, DHCP и Firewall. Однако, в системе они формально присутствуют в виде «демонов». Включить NAT, DHCP можно в настройках общего web доступа, но службы будут работать с настройками по умолчанию и настроить их при помощи Server.app нельзя. Поэтому, если вы планировали использовать обновленный сервер как gateway, то командная строка к вашим услугам. Ко всему прочему Apple исключила из комплекта поставки OS X Server программу X11. Поэтому, если вы планируете использовать какое-то UNIX программное обеспечение, требующее X Window System, то вам нужно будет самому обеспокоится его установкой . Поклонникам Wireshark , которые не желают расставаться с OS X, я рекомендую обратить внимание на консольную утилиту tcpdump . Далее. Настройка IM сервера Message Server сведена к минимуму. Его можно только включить и выключить, а также добавить список доменов, с пользователями которых можно общаться. На этом возможности GUI заканчиваются. Однако, если вы хотите осуществить тонкую настройку, то CL утилита serveradmin к вашим услугам и хорошо осведомлена о наборе команд и свойств для «демона» jabberd. Синтаксис ввода команд не изменился и все остальное легко настроить из Terminall.app (за конкретными how-to милости прошу в мой блог). Та же история с Software Update Service. Его можно только включить, выключить из Server.app, а также выбрать автоматическую дистрибуцию обновлений или ручную. Неприятно меня удивила реализация WebDAV. Apple, видимо, сильно мешал модуль Apache mod_dav и они реализовали поддержку протокола так, как посчитали нужным. Теперь получить доступ ко всем публичным WebDAV папкам можно при помощи подключения к такому адресу http://yourserver.com/webdav/ . Расшарить при помощи него папку с файлами к корне Apache и зайти на нее по адресу http://yourserver.com/ больше не получится (у меня по такой схеме работал файловый хостинг). В качестве альтернатив присутствуют FTP и AFP (который, традиционно, очень крут). Также, Apple «сломала » работу WebDAV over SSL (еще в OS X Lion) и до сих пор не починила. По этой причине не работает метод PROPFIND. Из-за этого на своем сайте вы не сможете разместить, к примеру, базу OmniFocus или другого продукта, который может синхронизироваться с WebDAV сервером. На этом список недостатков, обнаруженных мной, заканчивается.

Что же осталось хорошего?

Теперь о хорошем. Первое, на что я обратил внимание - это стабильная и ровная работа сервера в целом. Ничего не падает, не ломается. Настройка DNS реализована очень дружелюбно по отношение к неискушенному в этом вопросе пользователю. Теперь, если вы допустите грубую ошибку, у вас не отвалятся все службы, как это было в Snow Leopard Server. То, что Apple отвязала, на сколько это возможно, общую конфигурацию сервера от DNS, мне кажется большим плюсом. На иллюстрации ниже приведен список служб, которые я использую на своем сервере.

Исключая проблему с WebDAV все было настроено или перенесено со старого сервера за пару кликов. При этом, особых проблем с настройкой не возникло. Стоит отметить приятное нововведение в Server.app. Если приложение находит в вашей локальной сети Time Capsule, AirPort Express или AirPort Extreme, которые работают в режиме NAT/router, то оно предлагает взять его под свой контроль. При помощи него Server.app будет автоматически настраивать порты, необходимые для корректной работы служб на сервере, если вы захотите обеспечить к ним доступ из публичного интернета. Отдельно хотелось бы сказать несколько слов о Profile Manager 2.

Profile Manager позволяет удаленно управлять OS X и iOS устройствами. Удаленно можно выполнять большой спектр административных задач. Например устанавливать настройки для VPN, Dock.app, proxy, логина, подключать сетевые принтеры и сногое другое

Это Mobile Device Management решение, которое позволяет управлять удаленно всем парком ваших устройств, начиная с Mac Pro и заканчивая iPod Touch. Настроилась служба за пару кликов и не потребовала каких-либо чрезмерных усилий для того, чтобы разобраться в том, как она работает. Для меня, как администратора локальной сети, это как глоток свежего воздуха.

В сухом остатке.

Это второй, на моей памяти, настолько гладкий старт OS X со времен Mac OS X Leopard. Первым был Snow Leopard. Mountain Lion работает ровно и стабильно, не заставляя напрягаться для решения мелких проблем, которые обычно присутствуют в только что выпущенных продуктах. Mountain Lion вместе с Server.app станут чудесной заменой для устаревших серверных операционным систем и значительно облегчат работу системным администраторам. Так что, если в вашем офисе или компании собралось довольно большое количество клиентского оборудования под управлением OS X или iOS, поторопитесь с покупкой. Автор - маковод со стажем, руководитель сервисного центра computersart.com.ua

Существует множество способов развернуть локальный сервер на Mac OS X, но сама система уже содержит предустановленный веб-сервер Apache и интерпретатор PHP, которые необходимо активировать и настроить.

Данное руководство требует некоторых навыков работы с командной строкой и знания редактора nano, поэтому рекомендую прочитать хорошую книгу по основам работы с командной строкой и терминалом в Mac OS X .

Приведенный ниже материал является универсальным и будет полезен пользователям любых операционных систем.

Включить веб-сервер можно в настройках: Системные настройки > Общий доступ > включить службу Общий веб-доступ.

Если набрать в адресной строке браузера http://localhost/ , то сервер вернет страницу с текстом «It works!».

Команды для работы с Apache через командную строку:

sudo apachectl start | stop | restart

Ошибка Apache в Mac OS X 10.6.5 и выше

Следующая ошибка наблюдается при перезапуске Apache в Mac OS X 10.6.5 и выше, если попытаться перезапустить сервер через командную строку, Apache вернет ошибку:

/usr/sbin/apachectl: line 82: ulimit: open files: cannot modify limit: Invalid argument

Необходимо внести изменения в скрипт apachectl (/usr/sbin/apachectl):

sudo nano /usr/sbin/apachectl

закомментируем строку 82:

ULIMIT_MAX_FILES="ulimit -S -n `ulimit -H -n`"

и добавим под ней:

ULIMIT_MAX_FILES=""

Сохраняем скрипт и перезапускаем Apache.

Конфигурация Apache

Для конфигурации Apache необходимо открыть файл /etc/apache2/httpd.conf:

sudo nano /etc/apache2/httpd.conf

Переходим к строке 116 и подключаем PHP (необходимо раскомментировать строку):

LoadModule php5_module libexec/httpd/libphp5.so

Зададим свой каталог для локального сервера, поменяем путь к корневому каталогу в строке 168 и 195. После этих изменений корневым каталогом будет папка Сайты (Sites), находящаяся в домашнем каталоге пользователя.

DocumentRoot "/Library/WebServer/Documents"

DocumentRoot "/Users/имя_пользователя/Sites"

Аналогично заменим прежний путь в строке 195:

В строке 230 пропишем какие типы файлов и в какой последовательности должен обрабатывать Apache:

DirectoryIndex index.php index.html

В строке 264 можно задать место для хранения журнала ошибок Apache:

ErrorLog "/private/var/log/apache2/error_log"

Раскомментируем строку 469, чтобы подключить файл в котором будем записывать виртуальные хосты:

Include /private/etc/apache2/extra/httpd-vhosts.conf

Сохраняем все изменения в файле httpd.conf и перезапускаем Apache. Если перейти по адресу http://localhost/ , загрузится стартовая страница из папки сайты с приветствием "Ваш веб-сайт".

Проверим работоспособность PHP, для этого создадим в каталоге Сайты тестовый PHP-скрипт:

touch ~/Sites/index.php
sudo nano ~/Sites/index.php

и напишем сценарий, который покажет конфигурацию PHP:

Сохраняем файл index.php и вновь переходим по адресу http://localhost/ , должна открыться страница с информацией о версии PHP. Если по прежнему загружается страница приветствия, необходимо проверить настройки Apache (строка 230).

Конфигурационный файл php.ini находится в папке /private/etc/php.ini.defaults , его необходимо переименовать в php.ini:

sudo mv /private/etc/php.ini.default /private/etc/php.ini

Конфигурация виртуальных хостов.

Все проекты будут размещаться в каталоге пользователя Сайты (/Users/имя_пользователя/Sites/). Создадим в этом каталоге новую папку с названием test , а в ней файл index.php с тестовым скриптом. Локальный сайт будет открываться по адресу http://test/ . Переходим к командной строке и вводим следующие команды:

mkdir ~/Sites/test
cd ~/Sites/test
touch index.php
nano index.php

и добавим сценарий:

Теперь займемся конфигурацией виртуальных хостов. Для начала откроем файл /etc/hosts и добавим в исключения адрес локального сайта (http://test/). Переходим к командной строке:

sudo nano /etc/hosts

и добавляем строчку:

Добавим записи с конфигурацией нового виртуального хоста:

sudo nano /private/etc/apache2/extra/httpd-vhosts.conf

И в конец файла добавляем записи:

ServerAdmin DocumentRoot "/Users/имя_пользователя/Sites/test" ServerName test AllowOverride All Order allow,deny Allow from all

Сохраняем изменения и перезапускаем Apache. Теперь, если перейти по адресу http://test/ откроется страница с приветствием «Hello world!».

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

В Windows есть много способов установить WordPress локально, например, мы можем использовать специальное программное обеспечение вроде Instant WordPress или XAMPP , но на Mac количество вариантов ограничено. Недавно я приобрел MacBook Air на OS X Mountain Lion 10.8.2 и, поскольку я считаю, что локальная установка WordPress очень удобна для написания руководств и тестирования всяких новых штук, сегодня я наконец-то решил создать себе локальную WordPress среду. Это руководство будет полезно тем, кто любит WordPress и планирует сделать локальную установку WordPress на Mас.

Подготовка к установке WordPress на Mac

MAMP – это приложение для создания личного веб-сервера на вашей локальной системе. Чтобы начать локальную установку WordPress, нам нужно скачать MAMP и WordPress. Вот ссылки для скачивания:

  • Скачать MAMP

Кроме этого вам нужно будет немного отредактировать файл wp-config.php , а также создать базу данных через phpMyAdmin , что на самом деле очень просто.

Хотя для наших целей бесплатной версии MAMP достаточно, но разработчик включает в установочный пакет также и про-версию, так что общий объем скачиваемого пакета будет около 220 Mb.

Установка MAMP

После того, как скачаете MAMP, установите его как любое другое приложение для Mac. Как только MAMP установлен, откройте его и запустите сервер, чтобы проверить, работает ли он.

Приложение предлагает несколько опций для настройки, можете установить их по своему желанию. Например, тип кэширования или номер порта. Вам нужно установить для порта MAMP стандартный порт Apache и MySQL. Просто перейдите в настройки MAMP Preference → Ports → Set to default Apache and MySQL ports .

Иногда MAMP выдаёт ошибку при запуске, это обычно происходит из-за конфликта использования портов с другими приложениями, например Skype. Просто измените номер порта в Skype или MAMP, и все заработает.

Я использовал для создания базы имя sml_wp , вы можете использовать что угодно, по желанию. Просто запомните это имя, поскольку оно нам понадобиться для завершения конфигурации WordPress.

Теперь вам нужно распаковать файл WordPress, который вы скачали, перейти в Finder в Applications → MAMP → htdocs и скопировать файлы из папки WordPress. Так, как это показано на скриншоте:

Завершение установки WordPress на Мac

На данном этапе вы уже установили MAMP, настроили его и распаковали папку WordPress в директорию MAMP. Теперь нам нужно сделать небольшие изменения в файлах WordPress, и у нас будет WordPress на Mac.

В папке htdocs переименуйте wp-config-sample.php в wp-config.php и откройте его - нам нужно ввести данные о базе и пользователе.

Откройте файл wp-config.php и добавьте следующее:

  • DB_NAME : созданная вами база данных, в моем случае: sml_wp
  • DB_USER : root
  • DB_PASSWORD : root

Вот скриншот моего файла wp-config после редактирования:

Теперь сохраните файл. В вашем браузере введите http://localhost , вы должны увидеть окно установки WordPress. Просто дайте сайту имя, логин и пароль администратора, адрес электронной почты и щелкните Install WordPress .

Вот и все. Теперь ваш локальный WordPress блог установлен на Mac. И вы всегда можете добавить тему с помощью доступа в htdocs/wp-content/themes в папке MAMP на вашем Mac.

Привет Хабр!

Как веб-разработчик, выбравший Mac OS X в качестве основного рабочего инструмента, я столкнулся с проблемой настройки необходимого окружения. По многолетней привычке работы с серверами на Linux, руки сами потянулись в консоль дабы все поставить, но остановились - постойте, постойте, но зачем мне превращать эту операционку в очередной Linux сервер? Мне этого шаманства с консолью на серверах хватает, спасибо. Будем использовать встроенные компоненты, насколько это возможно.

Web сервер

Apache предустановлен в Mac OS и для локальной разработки его более чем хватает.
Маленькая хитрость – если не нужен виртуальный хост, то очень помогает вот такой трюк:
/etc/apache2/extra/httpd-userdir.conf
Options Indexes Order allow,deny Allow from all
Осталось кинуть проект в ~/Sites/%имя_проекта% и открыть в браузере localhost/~%user_name%/%имя_проекта%
На крайний случай, если нужна полная копия production окружения всегда можно установить Vagrant .

PHP

PHP предустановлен в Mac OS. Если его версия устраивает, то просто включаем загрузку модуля php5_module : /etc/apache2/httpd.conf
LoadModule php5_module libexec/apache2/libphp5.so
Если не устраивает, то можно установить PHP по мануалу отсюда php-osx.liip.ch . Эта версия не заменит системную, сама найдет Apache и вообще установится в /usr/local/php5 . Установка предельно проста – одна строка в консоли (пример для PHP 5.5):
curl -s http://php-osx.liip.ch/install.sh | bash -s 5.5

MySQL

Установить MySQL можно несколькими способами, например, через Homebrew . Но компилировать из исходников MySQL только потому что это позволяет пакетный менеджер? Мне кажется что проще взять DMG архив с официального сайта и установить. После установки в Системных настройках появится вкладка MySQL:

FTP/SFTP

Кроме работы над основным проектом приходится отвлекаться и исправлять/доделывать что-то у клиентов. Обычно это чужой хостинг с доступом по FTP. Значит нужен FTP клиент. Выбор пал на Cyberduck :




Почему Cyberduck? Потому что хранит пароли в Keychain, переведен на русский, бесплатен и поддерживает FTP , SFTP , WebDAV , Amazon S3 , Google Cloud Storage и Rackspace Cloud Files .

MySQL клиент

Долго выбирал рать между MySQL Workbench и Sequel Pro . В силу легкости победил Sequel Pro.

Почему локальное приложение а не phpmyadmin или mysql в консоли хостинга? Потому что все курируемые базы в одном месте и не надо при задаче «посмотри что там в базе у клиента » открывать консоль, SSH и вспоминать пароли. Да, это удаленное подключение и MySQL на хостинге смотрит наружу. Но доступ по IP или SSH туннель спасают отца русской демократии.
Возможностей у программы достаточно много, лучше почитать на официальном сайте.

Sublime Text

Без него никуда. Маленькая хитрость в настройках:
{ "open_files_in_new_window": false, }
По-умолчанию выставлено в TRUE и из-за этого Cyberduck открывает новые файлы в новом окне, а не в новой вкладке существующего окна.

Кроме этого, бывает что нужно быстро запустить небольшой кусок PHP кода, а делать это в IDE не удобно. Можно выполнить PHP код из Sublime Text, добавив новую Build System (Tools –> Build System -> New ):
{ "cmd": ["php" , "$file"] }
Теперь жмем CMD + B и результат работы кода появится в консоли Sublime Text.

Dash


Это удобный сборник документации, вот его особенности:

  • Автообновление документации с официальных сайтов
  • Оффлайн доступ
  • Шпаргалки (Cheat Sheets)
  • Создание своих сниппетов
  • Интеграция в PhpStorm и Sublime Text

Конечно, можно еще начать петь дифирамбы тач-жестам и полноэкранному режиму приложений, но это выходит за рамки статьи.

Если вы поддерживаете Web-сайт с предсказуемым и достаточно умеренным трафиком, то плата за хостинг может оказаться нерациональной тратой финансов. Этот практичный рецепт описывает, каким образом вы можете организовать хостинг у себя дома, используя дешевое оборудование.Я сам поддерживаю собственный домашний Web-сайт вот уже около семи лет. Я начал с PowerMac 6100 (pizza box), а впоследствии перешел на PowerMac 7500 ($10). Затем я выполнил апгрейд на процессор Sonnet G3, а в настоящий момент использую для этой цели Mac mini (процессор g4 1.25 ГГц).

Определите свои потребности

Для какого типа Web-сайта такое решение может быть идеальным? Сайт, который поддерживаю я, посвящен генеалогии и содержит базу данных с поддержкой поиска, содержащую около 30,000 имен и примерно 10,000 фамилий, все из которых связаны с нашими предками, Мэтью и Роуз Гринелл (Matthew and Rose Greenell) из Лексдена (Англия). Это довольно внушительный объем данных, печатная книга, составленная на основе этой базы данных, будет насчитывать свыше 1,500 страниц (по крайней мере, по моей прикидке на текущий момент). Однако для Web-сервера критичен не столько объем данных, сколько интенсивность трафика. Поддерживаемый мною сайт не требует интенсивного трафика, поэтому для него и не требуется мощного оборудования.

Использование старых Mac, выпущенных до выхода Mac OS X

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

Если для поддержания Web-сервера планируется использовать Mac, то в первую очередь вам необходимо будет решить, какое оборудование следует выделить под Web-сервер. Как я уже упоминал, изначально мой сайт размещался на очень старом PowerMac 6100. Компьютер этого типа с процессором Genteel 66 МГц явно не годился для большинства задач, выполняемых современными пользователями, но в качестве домашнего Web-сервера со статическими страницами HTML, не рассчитанного на большое количество ежедневных посещений, он отлично делал свое дело.

Учтите следующие соображения: большинство широкополосных каналов обеспечивают скорость передачи от 128 до 256 кбит/сек для исходящего трафика (когда посетители запрашивают страницы HTML и скачивают информацию с вашего сайта, вы выполняете закачку в сеть), поэтому для заполнения этого канала много не потребуется. К более мощным компьютерам из категории старых Mac относятся высоконадежные компьютеры из семейства PowerMac 7500/8500/9500. Они с легкостью поддерживают апгрейд до процессора G3 500 МГц от Sonnet или другого производителя, что обойдется менее чем в $100. Проблемы могут возникнуть и с организацией дискового пространства, поскольку найти жесткие диски SCSI становится все сложнее и сложнее. Однако как насчет старых компьютеров G3? Они используют более дешевые и доступные диски ATA (IDE). Бывшие в употреблении запчасти для этих компьютеров стоят очень дешево, поэтому, если вы желаете сэкономить на аппаратных средствах вашего сервера, они станут удачным выбором. При относительно небольших затратах вы сможете также нарастить память своего Web-сервера до 768 Мбайт.

Любой из перечисленных старых компьютеров будет хорошо работать под управлением Mac OS 9.2, в состав которой входят различные расширения, панель управления и функция совместного доступа к Web (Personal Web Sharing, PWS). Установить ее несложно. Единственное, о чем я не могу говорить с полной уверенностью - так это о том, насколько безопасно использование этого программного обеспечения в наше время. Не забывайте о том, что выпуск PWS датируется серединой 1990-х годов, а тогда безопасность еще не приобрела такого критического значения, как в наши дни.

Насколько все же безопасна MAC OS 9?

Маловероятно, что кто-либо до сих пор активно разрабатывает вирусы или что-либо другое для Mac OS X OS 9. По последним оценкам консорциума W3, доля операционных систем Mac, более ранних, чем Mac OS X, составляет менее 0,3% от всего рынка операционных систем. Возможно, эта оценка и не точна, но, тем не менее, основная идея остается в силе - пользователей, которые до сих пор возятся с Mac OS X 9, не так уж и много. Но означает ли отсутствие интереса к данной ОС, что ее можно использовать для развертывания и поддержки Web-сервера без риска для безопасности?

Стив Возняк (Steve Wozniak), один из отцов-основателей Apple, в 2003 году высказался в пользу этого решения, сказав в своей речи перед студентами: «Если вы хотите поддерживать Web-сервер, одновременно минимизировав риск вирусной атаки, то одним из возможных решений может быть использование Mac OS 9. Я держу все свои серверы на Mac OS 9 и несмотря на то, что не использую даже брандмауэра, в течение целого ряда лет ни разу не подвергался вирусной атаке, несмотря даже на то, что веду шоу на телевидении и общаюсь с хакерами. Несмотря на то, что мои серверы могли бы стать мишенью для атаки, этого не произошло ни разу».

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

Использование оборудования Mac OS X

А что, если вы желаете использовать современные аппаратные средства и Mac OS X? Хорошая новость состоит в том, что в состав Mac OS X входит наилучшее, и к тому же бесплатное программное обеспечение для Web-сервера - Apache Web Server. Apache Web Server используется практически повсюду, и при этом область его применения намного шире, чем у конкурирующего продукта Microsoft - Internet Information Services (IIS). Apache Web Server представляет собой расширяемый и в высшей степени настраиваемый продукт на основе открытого кода (Open Source), он поддерживается широчайшим сообществом энтузиастов и, несомненно, представляет собой основу основ для разработки и развертывания Web-сервисов.

Это великолепное решение для простых статических сайтов, и оно хорошо масштабируется даже для корпоративных Web-серверов (хотя лично я и не стал бы держать огромный сайт с высокой посещаемостью у себя дома - исключительно по соображениям полосы пропускания). Данное решение тесно интегрируется с двумя дополнительными Web-приложениями - PHP и MySQL. Вполне достаточно сказать, что любой компьютер Mac, способный работать под управлением Mac OS X, отлично себя покажет и в качестве Web-сервера. Это означает, что имеющиеся в продаже G4 и ранние G5 справятся с этой задачей, как и любой компьютер Mac mini или iMac (общая рекомендация такова - устанавливать Mac OS 9.2 на iMac G3, а на G4 и более новых iMac - Mac OS X). Есть даже люди, которые используют в качестве Web-серверов PowerBook.

Регистрируем собственный домен

Определившись с аппаратными средствами, на базе которых вы будете создавать свой Web-сервер, на следующим шаге необходимо озаботиться выбором интернет-провайдера (Internet Service Provider, ISP). Большинство провайдеров отрицательно относятся к самой идее организации домашнего Web-сервера. Им не нравится большой объем исходящего трафика с вашего сайта в Интернет, поэтому провайдеры могут наложить на вас ограничения по полосе пропускания или иные виды ограничений, если они обнаружат чересчур интенсивный трафик. Однако надо заметить, что при использовании популярного протокола BitTorrent шансы на то, что провайдер обнаружит, что вы поддерживаете небольшой Web-сайт с малым количеством посещений, минимальны.

Во-первых, вам потребуется определить, может ли ваш провайдер предоставить вам статический IP-адрес. Хотя Web-сайт и может использовать динамический IP-адрес, выделяемый провайдером по протоколу DHCP (Dynamic Host Configuration Protocol), и пользоваться дополнительными сервисами, предоставляемыми другими, использовать статический IP-адрес проще, потому что он никогда не меняется. Большинство интернет-провайдеров предоставляют эту услугу за дополнительную плату. Некоторые из них могут даже попытаться включить вас в бизнес-план и заработать на этом дополнительно. Столкнувшись с такой ситуацией, либо поторгуйтесь, либо попытайтесь найти другого провайдера (например, посмотрите по базе данных http://www.dslreports.com или воспользуйтесь другим аналогичным ресурсом).


Например, один из региональных провайдеров, работающих там, где я живу, настолько нетерпимо относится ко всем, кто пытается воспользоваться преимуществом постоянного подключения по DSL, что обновляет IP-адреса пользователей, которых они подозревают в «злоупотреблении ресурсами» примерно каждые 10-15 минут! Здесь надо сказать, что такая практика абсолютно законна, и для обычного пользователя, выходящего в Интернет в поисках нужной информации, абсолютно незаметна. Однако такое частое обновление IP-адреса губительно для защищенных виртуальных частных сетей (например, связывающих ваш домашний офис с корпоративной сетью вашего работодателя). Двое из моих коллег столкнулись с этой проблемой, и исправить ее удалось лишь за счет дополнительных затрат на получение статического IP-адреса. Это было все, чего хотели провайдеры - они стремятся заставить пользователя платить за полосу, которая после этого должна была быть им гарантированно доступна. Таким образом, постоянное подключение не всегда является постоянным.

После того как вы получите от провайдера статический IP-адрес, следует зарегистрировать доменное имя. Я использую сервис http://www.netfox.ru , но в Интернете есть множество других регистрационных сервисов. Поиск по Google или Яндекс поможет вам выбрать регистратора, в наибольшей степени соответствующего вашим потребностям. При планировании расходов рассчитывайте на то, что платить вам придется от 100 рублей в год (вступительная плата) до $30 в год или более. Сервис регистрации доменного имени нужен не только для защиты вашего доменного имени, но и для трансляции вашего доменного имени (например, www.mywebsite.com) в IP-адрес. После регистрации, никто не сможет присвоить себе ваше доменное имя и закрыть ваш сервер, если только вы не нарушаете ничьих авторских прав и не вступаете в конфликт с действующим законодательством.

Создание учетной записи для регистрационного сервиса может варьироваться от регистратора к регистратору. Вам в любом случае потребуется выяснить, свободно ли имя, которое вы желаете получить. Большинство из этих сервисов предлагают свободный поиск доменов со своей домашней страницы. Кроме того, вам потребуется выбрать корневой домен - .com (для коммерческих организаций), .net, .org (для некоммерческих организаций), .biz, .info и т. д.

Выбрав и зарегистрировав доменное имя, вы должны будете найти страницу, которую вы будете использовать для трансляции вашего доменного имени в статический IP-адрес, присвоенный вам вашим провайдером. Это необходимо, так как люди работают с именами, которые проще запоминать. С другой стороны, серверы, образующие Интернет, как и клиентские компьютеры, подключающиеся к этой сети, используют IP-адреса, запоминать которые намного труднее. Серверы DNS (Domain Name Servers) хранят информацию, необходимую для трансляции адресов в имена и обратно. Кроме того, серверы DNS поддерживают связь между собой, так что ваша информация о трансляции адресов хранится на множестве серверов по всему миру, что ускоряет процесс трансляции и, тем самым, ускоряет и соединение с нужным сервером. Большинство компаний, занимающихся регистрацией доменов, предоставляют и сервисы DNS. Нужные сервисы вы сможете найти на Web-сайте компании-регистратора.

Выполнив эти задачи, вы будете почти полностью готовы к тому, чтобы выходить в сеть. Фактически для того, чтобы ваше новое доменное имя распространилось по серверам DNS, потребуется несколько дней, поэтому не все пользователи смогут увидеть ваш сайт сразу же. За счет этого вы получите время на то, чтобы начать настройку вашего роутера, таким образом, чтобы посетители извне могли видеть ваш Web-сайт (и только его, но не другие компьютеры в вашей внутренней сети).

Конфигурирование роутера для предоставления доступа к вашему Web-серверу

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

Я настоятельно рекомендую использовать роутер вне зависимости от того, сколько компьютеров участвует в вашей сети - один или несколько. Роутеры имеют встроенные функции по обеспечению безопасности, затрудняющие несанкционированный доступ к вашей внутренней сети из Интернета. Многие роутеры обладают возможностью открываться только для конкретных компьютеров, и именно эту функцию мы детально обсудим чуть далее в этом разделе.

Во-первых, компьютер, выделенный под Web-сервер, должен иметь собственный статический IP-адрес. Проконсультируйтесь с вашим провайдером - вы должны получить от него не только статический IP-адрес, но и маску подсети (subnet mask), адреса серверов DNS, а также информацию о домене. Если вы еще не настроили свой роутер на новый статический IP-адрес, сейчас самое время это сделать.

Ваш ISP должен предоставить вам следующую информацию:

  • IP-адрес (IP address) - статический IP-адрес, который должен быть назначен вам вашим интернет-провайдером;
  • Адрес DNS (DNS address) - адрес DNS должен быть предоставлен вам вашим провайдером. Если вам выдается большее количество адресов, скопируйте их все;
  • Адрес шлюза (Gateway address) - этот адрес также предоставляется вам вашим интернет-провайдером;
  • Маска подсети (Subnet mask) - эта информация также предоставляется вам вашим ISP;
  • Доменные имена - несколько доменных имен для поиска (в формате domain.com).

Затем вам потребуется назначить статический IP-адрес компьютеру, который вы собираетесь использовать как Web-сервер, и настроить его сетевую конфигурацию. Перейдите на панель Network окна параметров предпочтительной настройки системы (Mac OS X) или на панель Networks (Mac OS 9) и создайте индивидуальную сетевую конфигурацию для вашего компьютера. Эта конфигурация должна выглядеть примерно следующим образом (в вашем случае она, конечно, должна учитывать особенности именно вашей сетевой конфигурации):

  • DNS: bbb.bbb.bbb.bbb (если вам выдано два адреса, скопируйте их оба)
  • Gateway: 192.168.2.1 (обычно - IP-адрес вашего роутера)
  • Subnet mask: 255.255.255.255
  • Search domains: somethingorother.com

Ваш роутер обычно будет управлять IP-адресами из следующих диапазонов:

  • 192.168.0.n (где n - число из диапазона от 2 до 254)
  • 192.168.1.n (где n - число из диапазона от 2 до 254)
  • 192.168.2.n (где n - число из диапазона от 2 до 254)
  • 192.168.3.n (где n - число из диапазона от 2 до 254)

В приведенном примере IP-адрес выглядит так: 192.168.2.5.

Все остальные компьютеры могут использовать стандартные настройки, задаваемые по протоколу DHCP (если роутер автоматически назначает IP-адреса). Вам потребуется убедиться в том, что сервер DHCP на вашем роутере не выполняет автоматического назначения IP-адресов из диапазона, в котором находится ваш статический IP-адрес. Например, если вам требуется назначить Web-серверу внутренний IP-адрес 192.168.2.5, убедитесь в том, что роутер начинает назначать адреса, начиная с адреса 192.168.2.10.

Здесь необходимо дать ряд дополнительных пояснений. Фактически вы работаете с различными типами IP-адресов. Ваш роутер автоматически транслирует (иными словами, перенаправляет) внешние адреса (из Интернета) в вашу внутреннюю сеть. Эта функция известна как трансляция сетевых адресов (Network Address Translation, NAT). NAT помогает скрывать ваши внутренние адреса от пользователей Интернета и является вашей базовой линией защиты. Для пользователей Интернета будет виден только один IP-адрес - тот статический IP-адрес, который был назначен вам вашим провайдером.

По другую сторону роутера находится ваша внутренняя сеть, для которой роутер или назначает IP-адреса с помощью встроенного сервера DHCP, или позволяет устройствам со статическими IP-адресами принимать участие в работе сети при том условии, что их IP-адреса находятся в допустимом диапазоне (к числу таких устройств относится, например, ваш Web-сервер).

Таким образом, в вашей внутренней сети присутствует ваш Web-сервер со статическим IP-адресом (в данном примере - 192.168.2.5) и любое количество компьютеров, адреса которым назначены автоматически по протоколу DHCP (из диапазона от 192.168.2.10 до 192.168.2.254). Таким образом, теоретически вы можете иметь сотни компьютеров, совместно использующих единственный внешний IP-адрес. Компьютеры, принадлежащие к вашей внутренней сети, могут взаимодействовать друг с другом, не выходя за пределы роутера, но, как только им потребуется получить доступ к Web-странице на одном из серверов Интернета, роутер автоматически транслирует адрес в Интернет.

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

С учетом сказанного, существует два способа конфигурации роутеров потребительского класса, обеспечивающих корректную работу вашего Web-сервера. Наиболее распространенный метод заключается в создании демилитаризованной зоны (Demilitarized Zone, DMZ). При этом компьютер с выделенным статическим IP-адресом размещается с внешней стороны брандмауэра и не защищается сервером NAT или брандмауэром. В случае с Mac эта проблема не столь важна, но, тем не менее, она существует. DMZ и методы виртуальных серверов (которые будут обсуждаться далее) используются также геймерами, которым требуется открывать конкретные порты на их роутерах с тем, чтобы совместно использовать данные с другими геймерами.

Еще один метод заключается в организации виртуального сервера. При его использовании на роутере открываются только конкретные порты для конкретных компьютеров, выходящих в Интернет. Например, если вы пользуетесь стандартным Web-сервером, вам потребуется открыть порт 80, который в Интернете считается стандартным для серверов HTTP. Если вам требуется выполнять передачу файлов в обоих направлениях с помощью протокола передачи файлов (File Transfer Protocol, FTP), то на вашем виртуальном сервере требуется открыть порт 25. Здесь, как в любом случае, действует стандартная рекомендация - RTFM! Существует огромное количество вариаций, зависящих от конкретных платформ, так что в пределах одной главы невозможно описать все возможные варианты конфигурации для каждого конкретного роутера.

При использовании любого из описанных вариантов конфигурации, как ваш Web-сервер, так и все остальные компьютеры вашей локальной сети должны нормально функционировать и беспрепятственно получать доступ в Интернет. Если в вашей сети применяется беспроводной роутер, вам следует убедиться в том, что вы обеспечили должный уровень защиты беспроводной сети. Вам следует блокировать трансляцию SSID и использовать модель безопасности WPA-PSK. Имейте в виду, что нет никакого смысла в обеспечении защиты вашего проводного соединения, если вся остальная сеть останется беззащитной перед атаками по беспроводной сети. Внимательно прочтите документацию, поставляющуюся в комплекте с вашим роутером, а также детальные инструкции по его настройке на сайте производителя (большинство производителей роутеров размещают такие инструкции на своих сайтах).

Установка Web-сервера на оборудовании PowerPC

Если у вас есть старый компьютер Mac G3/G4 на базе процессора PowerPC, то довольно жизнеспособный вариант установки Web-сервера состоит в использовании Personal WebSharing (PWS) под управлением Mac OS 9. Во всяком случае, эта опция заслуживает рассмотрения. Поддержка простых статических Web-сайтов с низким трафиком не требует больших объемов RAM и высокой скорости процессора. PWS под Mac OS 9 очень просто использовать (хотя, в действительности, для простых Web-сайтов использование Apache под Mac OS X тоже не представляет особой сложности). Таким образом, это решение позволит вам дать вторую жизнь старому компьютеру, не пригодному ни для каких других целей.

В первую очередь, вам следует загрузить свой старый Mac (подразумевается, что операционная система Mac OS 9 уже установлена) и вставьте в привод дистрибутивный диск с Mac OS 9.x. Выполните двойной щелчок мышью по папке Software Installers. Затем выполните двойной щелчок мышью по папке Personal WebSharing. Внимательно прочтите документ, озаглавленный «About personal Web Sharing». Если вы уже готовы начать установку, выполните двойной щелчок мышью по значку Installer. Согласитесь с условиями лицензионного соглашения и убедитесь в том, что в левом верхнем углу окна отображается опция Easy Install. Выполните установку на жесткий диск по умолчанию.

Конфигурирование вновь установленного Web-сервера

В Mac OS 9 перейдите в меню Apple и выберите опцию Control panels. Запустите Personal WebSharing. На экране появится окно (рис. 2.22), позволяющее начать процедуру конфигурирования вашего Web-сервера.


В этом окне показано размещение Web-папки (опция Web Folder), изменить которое можно, нажав кнопку Select…. Эта папка предназначена для хранения всех ваших файлов HTML и графики. Кроме того, в эту папку Apple помещает подробные справочные руководства (документы «About Personal WebSharing.htm» и «Using Personal WebSharing.htm»), а также Web-страницу по умолчанию. Если вы увидите эту страницу, обратившись к своему Web-серверу, это будет означать, что он корректно сконфигурирован и правильно работает.

Правее кнопки Start/Stop в окне панели управления PWS находятся два переключателя, задающих важнейшие опции безопасности - опции Give everyone read-only access (предоставить всем пользователям доступ только на чтение) и Use File Sharing to control user access (использовать совместный доступ к файлам для управления пользовательским доступом). Если вы хотите поддерживать общедоступный Web-сайт, который могут посещать все желающие, следует выбрать первую опцию. Если же вы желаете управлять доступом пользователей к своему сайту, предоставляя его избирательно, установите вторую опцию.

Чтобы программное обеспечение PWS функционировало корректно, вам необходимо указать файл, который должен использоваться как страница по умолчанию. Обычно в качестве страницы по умолчанию используется файл, называющийся index.html, default.html, или аналогично. Чтобы назначить страницу по умолчанию, нажмите кнопку Select…, расположенную правее метки Home page (нижняя из двух кнопок Select…). Раскроется новое окно. Выберите файл (в данном примере он называется default.html) и нажмите кнопку Select (рис. 2.23).

При желании вы можете воспользоваться командами меню Edit → Preferences и посмотреть, какие опции вам доступны. Возможно, вы захотите изменить здесь некоторые настройки (если только вы не хотите, чтобы сервер PWS генерировал файл журнала с отчетом обо всех происходящих в системе событиях - отметим, что этот отчет может оказаться действительно полезным), изменить используемый по умолчанию порт (делать этого не рекомендуется), разрешить использование псевдонимов (Aliases) для открытия файлов, расположенных за пределами Web-папки (с точки зрения безопасности это - не очень хорошая идея), или же разрешить гостям (пользователям, входящим с правами гостя) заменять файлы в Web-папке (что тоже является не слишком хорошей идеей). Ничего не меняйте на вкладках MIME Types и Actions. Чтобы сохранить внесенные изменения, нажмите кнопку Save. В противном случае, нажмите кнопку Close в левом верхнем углу окна (рис. 2.24).


Чтобы запустить Web-сервер, нажмите кнопку Start в главной панели управления PWS. Чтобы протестировать его, запустите Web-браузер и в строке адреса введите следующую строку: http://localhost . Если вы увидите стандартный файл default.html, созданный Apple, значит, ваш Web-сервер сконфигурирован и работает правильно. Очевидно, что вы не захотите использовать в качестве начальной страницы вашего сайта стандартный файл Apple default.html. Любой уважающий себя Web-мастер создает индивидуальную начальную страницу для своего сайта. Предполагается, что и вы сделали это еще задолго до того, как начали планировать, на какой платформе (как программной, так и аппаратной) будет работать ваш Web-сервер. Ваши Web-страницы должны быть написаны на HTML. Для этой цели доступно большое количество отличных коммерческих программных продуктов, в том числе - iWeb (рецепт 81), Dreamweaver, GoLive, Freeway, PageSpinner, и т. д.

Кроме того, к вашим услугам широкий диапазон условно-бесплатных и бесплатных продуктов, а также программного обеспечения с открытым кодом (Open Source). Загляните на сайт http://www.versiontracker.com , где вы можете скачать и протестировать множество разнообразных инструментов для Web-разработки, а затем выбрать наиболее подходящие для ваших целей.

Установка Web-сервера на Mac OS X

Программное обеспечение Personal Web Sharing в Mac OS X является «персональным» только по названию. Как уже упоминалось ранее, встроенный Web-сервер входит в состав каждой копии Mac OS X. Это Apache, продукт на основе открытого кода, пригодный к использованию в масштабах предприятия. Достаточно сказать, что большинство Web-серверов работает под управлением Apache - их больше, чем Web-серверов, использующих какой-либо другой продукт. Apache - это отлично масштабируемый и расширяемый продукт, поддерживающий практически все известные языки командных сценариев Web, включая HTML, PHP, Perl, JavaScript, Ruby on Rails, Ajax, Python и т. д.

Процедура установки предельно проста. Чтобы активизировать Apache, перейдите на панель Sharing окна System Preferences. Убедитесь в том, что выбрана вкладка Services. Установите флажок Web Sharing. Вам будет предложено ввести пароль администратора. Еще через несколько секунд Apache запустится (рис. 2.25).


Итак, ваш Web-сервер запущен. И кто говорит, что это было сложно? Теперь остается только решить, как его применять и где хранить ваши файлы. Вернемся на шаг назад и выключим Web-сервер, чтобы выполнить некоторые предварительные настройки. На верхнем уровне вашего жесткого диска (по умолчанию он называется Macintosh HD, но вы можете присвоить ему и другое имя) раскройте папку /Library/Web server/Documents. Обычно ваш Web-сайт располагается во вложенной папке Documents этого каталога. Как вариант, вы можете создать действительно персональный Web-сайт в вашей папке Sites, полный путь к которой выглядит так: /Users/username/Sites, где username - это ваше входное имя (например, Macintosh HD/Users/LarryGrinnell/Sites). Разницей между этими вариантами является способ доступа к сайту через Интернет.

В первом случае (когда сайт располагается в папке Documents), для доступа нужно использовать следующий URL: http://192.168.2.2/, в то время как во втором (персональный Web-сайт пользователя) этот URL будет выглядеть так: http://192.168.2.2/~larrygrinnell/. Обратите внимание, что в данном случае как IP-адрес, так и имя пользовательской учетной записи приведены исключительно в качестве примера. Когда вы активируете PWS на вкладке Services окна Sharing, вы увидите точные адреса для каждой из опций в нижней части окна. Если вы перейдете на вкладку Services окна Sharing и выполните щелчок мышью по ссылке наподобие http://192.168.2.2/, вы попадете на домашнюю страницу Apache. Ссылка из примера 2 выведет вас на домашнюю страницу PWS. Появление любой из этих домашних страниц свидетельствует о том, что Web-сайт работает.

Теперь необходимо сделать ваш Web-сайт доступным извне (а иначе, зачем вообще его создавать?). Проиллюстрируем выполнение этой задачи на примере Web-сайта, созданного в масштабах компьютера (первый пример). Разумеется, вам совершенно незачем публиковать Web-сайт только для того, чтобы отобразить демонстрационную страницу Apache, поэтому предполагается, что вы заранее создали информационное наполнение. Так как Mac OS X использует Apache и предоставляет в ваше распоряжение целую библиотеку преинсталлированных средств разработки, включая PHP, MySQL, Perl и т. д., и с учетом доступности большого количества бесплатных программ на основе открытого кода, вы без проблем можете создавать Web-сайты любого уровня сложности - вопрос только в вашем мастерстве.

Для создания собственного Web-сайта я воспользовался системой управления контентом на основе открытого кода, которая называется PHP-Fusion (http://php-fusion.co.uk/news.php). Эта система предлагает все функции, которые требуются для поддержки сообщества, посвященного генеалогии. Кроме того, я использую еще один специализированный пакет нового поколения - The next generation of geneology SiteBuilding, который позволяет опубликовать полную базу данных (30,000 имен и 10,000 фамилий) - на довольно скромном по своим аппаратным возможностям компьютере - Macintosh 1.25 Ггц G4 с 512 Мбайт RAM.

В данной статье приведено лишь несколько примеров, демонстрирующих развертывание и поддержку домашнего Web-сайта на базе Macintosh. Вы, несомненно, найдете это занятие не только полезным, но и увлекательным и интересным.