Mac OS X. XAMPP - настройка виртуального сервера и добавление виртуальных хостов

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

Главный вопрос в том, зачем может понадобиться эмуляция сервера? Если существует нужда в запуске и тестировании интернет платформ и различных веб-сервисов на своей машине (к примеру, локальная версия WordPress), то веб-сервер - то, что нужно. Если вы изучаете PHP, то это отличный способ попрактиковаться и попробовать свои силы в разработке сайтов. Другими словами, мы организовываем хостинг, только локально.

Итак, помните про launchctl, которую мы использовали в предыдущей статье? Эта же утилита поможет нам активировать Apache Web server.

Для запуска Apache Web server открываем Terminal и вписываем команду:

sudo -s launchctl load -w /System/Library/LaunchDaemons/org.apache.httpd.plist

Все просто. Для проверки сервера открываем Safari и вводим в адресную строку:

http://localhost/

После чего мы будем оповещены следующим сообщением:

Для выгрузки веб-сервера используем аналогичную команду в Терминале:

sudo -s launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist

Attention. Перед тем, как вы перейдете к основной части статьи, следует предупредить, что ручное подключение PHP, MySQL и Virtual Hosts займет некоторое время. У нас уже есть отличная статья по настройке всего этого с помощью одного клиента , но если вы не из робкого десятка - вперед.

По умолчанию PHP на нашем сервере отключен, поэтому нам нужно его активировать. Делается это путем редактирования конфигурационного файла. Открываем Терминал и вводим следующее:

sudo nano /etc/apache2/httpd.conf

Откроется редактор файлов (nano), где нам нужно найти строчку, начинающуюся на «#LoadModule php5_module…» и удалить решетку:

После удаления, нажимаем Ctrl-O (сохранение изменений), Enter и Ctrl-X (выход из редактора). После чего нам нужно перезагрузить наш сервер командой:

sudo apachectl restart

Теперь мы можем работать с PHP скриптами. Кстати, файлы сайта хранятся по адресу: /Library/WevServer/Documents
Это важно.

Теперь о настройке MySQL. Чтобы не было совсем грустно, напомним, что MySQL - это ПО для создания и управления базами данных (информация о пользователях, посещениях, контенте сайта и т.д.), которые будут полноценно использоваться при создании вашего сайта. Таким образом, связка PHP — MySQL идеальна для создания Web — сайтов.

Сам процесс установки MySQL не так сложен. Существует отличный скрипт отсюда для автоматической инсталляции. Просто вводим его в Терминале (необходимо интернет-соединение):

bash <(curl -Ls http://git.io/eUx7rg)

После чего начнется установка:

MySQL интегрируется в панель Системных Настроек, где мы можем лицезреть статус ее работы, а также устанавливать разрешение на автозапуск при старте системы.


Для работы с базой, вводим типичную команду:

Все что нам остается - установить пароль. Прописываем в Терминале:

/usr/local/mysql/bin/mysqladmin -u root password ‘Ваш Пароль’

И теперь, перед тем, как начать работу с клиентом, нужно выполнить следующую команду:

mysql -u root -p

После чего ввести созданный пароль. Если вдруг на запрос выбивает «command not found», нужно перезапустить Терминал и попробовать еще раз.

Таким образом, мы имеем стандартный набор средств для управления, администрирования и проверки Web-сайтов локально, прямо на нашем Mac-сервере.

Существует множество способов развернуть локальный сервер на 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. С огромным удовольствием выслушаю предложения и замечания по доступности изложенного материала.

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

Но это не значит, что на другой версии Mac OS X или XAMPP что то не будет работать.

Внимание! Инструкция делиться на 2 части. Обычно первая часть () выполняются один раз, а вторая () необходима как пример для каждого нового виртуального хоста.


Первичная настройка виртуального сервера

После установки XAMPP имеет только один адрес .

Для создания своих хостов необходимо изменить файл конфигураций /Applications/XAMPP/xamppfiles/etc/httpd.conf . Открываем его и переходим к строке 173, в этой строке измените параметр User daemon на User username , где username - имя пользователя в Вашей системе Mac OS X. Пример:

# # If you wish httpd to run as a different user or group, you must run # httpd as root initially and it will switch. # # User/Group: The name (or #number) of the user/group to run httpd as. # It is usually good practice to create a dedicated user and group for # running httpd, as with most system services. # User username Group daemon

# Virtual hosts Include etc/extra/httpd-vhosts.conf

Теперь нам необходимо сохраним работу без изменений. Для этого откройте файл /Applications/XAMPP/etc/extra/httpd-vhosts.conf и добавьте в конец этого файла следующий блок:

#localhost ServerName localhost DocumentRoot "/Applications/XAMPP/xamppfiles/htdocs" Options Indexes FollowSymLinks Includes execCGI AllowOverride All Allow From All Order Allow,Deny

Сохраняем файл и закрываем его.

С первичной настройкой закончили.


Добавление виртуальных хостов

Для примера создадим тестовый виртуальный хост для сайта . Сначала создадим папку для файлов проекта, например: /Users/username/www/test.local и добавим в эту папку файл index.php с кодом:

#test ServerName test.local DocumentRoot "/Users/username/www/test.local" Options Indexes FollowSymLinks Includes ExecCGI AllowOverride All Require all granted ErrorLog "logs/test.local-error_log"

Внимание! Не забудьте изменить username на имя вашего пользователя в системе Mac OS X

Теперь нам необходимо добавить в файл /etc/hosts новый сайт. Для этого открываем терминал и выполняем команду:

Sudo nano /etc/hosts

Система запросит пароль администратора, после ввода пароля будет открыт файл /etc/hosts для редактирования, в конец файла добавляем следующую строку:

127.0.0.1 test.local

Перезапускаем Apache:

Все готово, открываем браузер и вводим в адресную строку , если все сделано верно, то в ответ Вы увидите примерно следующее:

Привет Хабр!

Как веб-разработчик, выбравший 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

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