Поднимаем веб‑сервер на macOS
Веб-разработка начинается с настройки локального веб-сервера. Есть множество различных комбинаций устанавливаемых пакетов и сборок, которые удобны по-своему. В этой статье я расскажу об установке связки Apache + PHP + MySQL + Redis + Memcached на macOS.
Установка Homebrew
Управлением пакетов, которые не идут в комплекте с macOS, занимается утилита Homebrew.
На официальном сайте вы найдете команду для запуска установки.
$ ruby -e «$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)»
Следуйте указаниям и введите пароль администратора, когда потребуется. В результате выполнения команды будет установлен Homebrew и XCode Command Line Tools.
Чтобы убедиться, что установка прошла успешно, выполните команду “brew —version”.
$ brew —version Homebrew 1.1.4 Homebrew/homebrew-core (git revision 4a1f; last commit 2016-12-15)
Подключаем репозитории с необходимыми пакетами.
$ brew tap homebrew/php $ brew tap homebrew/apache
И выполняем обновление всех репозиториев, подключенных к brew.
$ brew update
Всё готово к установке пакетов.
Установка Apache
С помощью Homebrew установим Apache со всеми необходимыми скриптами.
Перед установкой следует отключить и убрать из автозагрузки встроенный Apache-сервер.
$ sudo apachectl stop $ sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist 2>/dev/null $ brew install httpd24 —with-privileged-ports —with-http2
Операция займет время. Ожидайте появления строки, которая подтвердит успех установки.
/usr/local/Cellar/httpd24/2.4.23_2: 212 files, 4.4M, built in 1 minute 45 seconds
Обратите внимание на этот путь “/usr/local/Cellar/httpd24/2.4.23_2”. Он сейчас понадобится для настройки автозапуска Apache.
Задаем права и включаем автозагрузку свежеустановленного сервера.
$ sudo cp -v /usr/local/Cellar/httpd24/2.4.23_2/homebrew.mxcl.httpd24.plist /Library/LaunchDaemons $ sudo chown -v root:wheel /Library/LaunchDaemons/homebrew.mxcl.httpd24.plist $ sudo chmod -v 644 /Library/LaunchDaemons/homebrew.mxcl.httpd24.plist $ sudo launchctl load /Library/LaunchDaemons/homebrew.mxcl.httpd24.plist
Решения возможных проблем
Если вы получаете сообщение, что браузер не может подключиться к серверу, первым делом проверьте, запущен ли сервер.
$ ps -aef | grep httpd
Вы должны увидеть несколько httpd процессов, если Apache запущен.
Попробуйте перезагрузить сервер следующей командой.
$ sudo apachectl -k restart
В поиске проблемы вам могут помочь логи сервера. Посмотреть свежие записи можно с помощью такой команды.
$ tail -f /usr/local/var/log/apache2/error_log
Если проблема не пропала, убедитесь, что в файле /usr/local/etc/apache2/2.4/httpd.conf имеется следующая строчка.
Apache контролируется с помощью apachectl. Следующие команды могут быть полезны.
$ sudo apachectl start $ sudo apachectl stop $ sudo apachectl -k restart
Настрока Apache
У вас есть установленный веб-сервер. Пора настроить его.
Первым делом мы изменим директорию для хранения сайтов. Откройте для редактирования конфигурационный файл Apache.
$ open -e /usr/local/etc/apache2/2.4/httpd.conf
Найдите строку, где задается параметр DocumentRoot.
DocumentRoot «/usr/local/var/www/htdocs»
И измените её на следующую, где your_user — имя вашего аккаунта.
DocumentRoot /Users/your_user/Sites
Также надо изменить тег , чтобы его параметр совпадал с DocumentRoot.
Обратите внимание, что кавычки отсутствуют. Стандартный редактор автоматически может заменить их на другие символы, что может стать причиной ошибки.
Если вы планируете в локальных проектах использовать файл дополнительной конфигурации сервера .htaccess, то обратите внимание на настройки AllowOverride и mod_rewrite.
В блоке найдите опцию AllowOverride, которая отвечает за возможность использования .htaccess, и измените её на следующую.
# AllowOverride controls what directives may be placed in .htaccess files. # It can be «All», «None», or any combination of the keywords: # AllowOverride FileInfo AuthConfig Limit # AllowOverride All
Для возможности преобразования URL потребуется модуль mod_rewrite, который по-умолчанию закомментирован. Найдите строку и уберите символ комментирования #.
#LoadModule rewrite_module libexec/mod_rewrite.so
LoadModule rewrite_module libexec/mod_rewrite.so
Пользователи и группы
Мы направили обращения Apache к сайтам в директорию Sites, которую поместили в домашнем каталоге. Обычно Apache работает от имени системного пользователя daemon группы daemon, из-за этого могут возникнуть некоторые проблемы с доступом. Необходимо задать, пользователя и группу, от чьего имени Apache будет работать.
В конфигурационном файле Apache найдите User и Group и измените на следующее. your_user — имя вашего аккаунта.
User your_user Group staff
Директория для локальных сайтов
Создайте папку для сайтов в домашнем каталоге.
$ mkdir ~/Sites
Следующая команда создаст в папке Sites файл index.html и поместит в нем код первой веб-страницы.
$ echo «My User Web Root» > ~/Sites/index.html
Чтобы изменения в файле настроек вступили в силу, необходимо перезагрузить сервер.
$ sudo apachectl -k restart
Снова откройте в браузере страницу по адресу http://localhost/.
Установка PHP
На этом шаге мы установим PHP 5.6 и PHP 7.0, а также настроим скрипт переключения между версиями PHP.
Выполните установку необходимых версий PHP с помощью следующих команд.
$ brew install php70 —with-apache $ brew unlink php70 $ brew install php56 —with-apache
Если потребуется, вы можете настроить каждую версию языка в соответствующих php.ini.
/usr/local/etc/php/5.6/php.ini /usr/local/etc/php/7.0/php.ini
Знакомим Apache и PHP
Вы успешно установили нужные версии PHP, но теперь нужно сказать Apache использовать их.
Снова откройте файл /usr/local/etc/apache2/2.4/httpd.conf и найдите строку
#LoadModule php5_module
Вместо нее добавьте следующие строки для подключения ваших версий PHP.
LoadModule php5_module /usr/local/opt/php56/libexec/apache2/libphp5.so #LoadModule php7_module /usr/local/opt/php70/libexec/apache2/libphp7.so
Оставим незакомментированным php5_module, чтобы использовать его сейчас. Скрипт для переключения между версиями добавим немного позже.
Найдите ниже настройку указания на корневой файл директории.
DirectoryIndex index.html
И замените её следующими настройками.
DirectoryIndex index.php index.html SetHandler application/x-httpd-php
Сохраните файл настроек и снова перезагрузите сервер.
$ sudo apachectl restart
Проверяем установку PHP
Создайте в директории с сайтами файл index.php с содержанием “
$ echo » ~/Sites/index.php
Откройте в браузере страницу по адресу http://localhost/. Вы увидите информацию о настройках PHP.
Переключение версий PHP
Установим небольшой sphp скрипт в стандартную для brew директорию /usr/local/bin.
$ curl -L https://gist.github.com/w00fz/142b6b19750ea6979137b963df959d11/raw > /usr/local/bin/sphp $ chmod +x /usr/local/bin/sphp
Homebrew при установке должен был добавить свои директории /usr/local/bin и /usr/local/sbin в переменную $PATH. Убедимся в этом.
$ echo $PATH /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
Если вышеуказанные директории отсутствуют в результат выполнения команды у вас, то выполните следующую команду, которая исправит это.
$ export PATH=/usr/local/bin:/usr/local/sbin:$PATH
Остановите и запустите Apache. Не перезагружайте.
$ sudo apachectl -k stop $ sudo apachectl start
Снова откройте файл настроек Apache /usr/local/etc/apache2/2.4/httpd.conf и замените блок с подключениями этих модулей:
LoadModule php5_module /usr/local/opt/php56/libexec/apache2/libphp5.so #LoadModule php7_module /usr/local/opt/php70/libexec/apache2/libphp7.so
На следующий код.
# Brew PHP LoadModule for `sphp` switcher LoadModule php5_module /usr/local/lib/libphp5.so #LoadModule php7_module /usr/local/lib/libphp7.so
Сохраните файл настроек и закройте его.
Проверим возможность переключения версий PHP.
Выполните команду sphp с двумя цифрами нужной версии.
$ sphp 70 PHP version 70 found Unlinking old binaries. Linking new binaries. Linking /usr/local/Cellar/php70/7.0.14_7. 17 symlinks created Linking new modphp addon. Fixing LoadModule. Updating version file. Restarting homebrew Apache. Restarting non-root homebrew Apache. Done. PHP 7.0.14 (cli) (built: Dec 14 2016 01:24:46) ( NTS ) Copyright (c) 1997-2016 The PHP Group Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
Откройте страницу http://localhost/ и убедитесь, что теперь активен PHP версии 7.0.
Установка MySQL
Для установки MySQL введите следующую команду.
$ brew install mysql
Завершение установки подтвердит следующее сообщение.
We’ve installed your MySQL database without a root password. To secure it run: mysql_secure_installation To connect run: mysql -uroot To have launchd start mysql now and restart at login: brew services start mysql Or, if you don’t want/need a background service you can just run: mysql.server start ==> Summary /usr/local/Cellar/mysql/5.7.16: 13,511 files, 439M
Выполните указанные действия, если необходимо установить mysql на автозапуск.
$ brew services start mysql
Установка Redis, Memcached
С помощью Homebrew установка дополнительного ПО максимально проста.
$ brew install redis ==> Downloading https://homebrew.bintray.com/bottles/redis-3.2.6.sierra.bottle.tar.gz ######################################################################## 100.0% ==> Pouring redis-3.2.6.sierra.bottle.tar.gz ==> Caveats To have launchd start redis now and restart at login: brew services start redis Or, if you don’t want/need a background service you can just run: redis-server /usr/local/etc/redis.conf ==> Summary /usr/local/Cellar/redis/3.2.6: 11 files, 1.7M
Настроим автозагрузку и запустим Redis.
$ brew services start redis
$ brew install memcached ==> Downloading https://homebrew.bintray.com/bottles/memcached-1.4.33.sierra.bottle.tar.gz ######################################################################## 100.0% ==> Pouring memcached-1.4.33.sierra.bottle.tar.gz ==> Caveats To have launchd start memcached now and restart at login: brew services start memcached Or, if you don’t want/need a background service you can just run: /usr/local/opt/memcached/bin/memcached ==> Summary /usr/local/Cellar/memcached/1.4.33: 11 files, 184.5K
Настроим автозагрузку и запустим Memcached.
$ brew services start memcached
Теперь необходимо установить PHP расширений для работы со свежеустановленнымы сервисами для каждой версии вам нужно загрузить расширения, которые требуются.
$ sphp 70 $ brew install php70-redis $ brew install —HEAD homebrew/php/php70-memcached
Перезагрузите Apache и снова откройте http://localhost/.
$ sudo apachectl restart
В пункте “ дополнительные .ini файлы” вы увидите ini файлы установленных расширений.
Вы также можете заметить, что нужные расширения подгружены и готовы к работе.
Смените версию PHP перед началом установки расширений для нее.
$ sphp 56 $ brew install php56-redis php56-memcache php56-memcached
Снова перезагрузите Apache и откройте http://localhost/, чтобы убедиться в успехе.
$ sudo apachectl restart
Создание локального сайта
Для работы над несколькими проектами сразу удобно создать отдельную папку и доменное имя для каждого.
Например, ваш проект называется сodex. Первым делом создайте директорию.
$ mkdir ~/Sites/codex
Локальный сайт codex.local будет находиться на вашем компьютере. Поэтому нужно прописать в файле /etc/hosts адрес сервера и доменное имя.
$ sudo open -e /etc/hosts
Добавьте в конец файла следующую строку.
127.0.0.1 codex.local
Теперь надо настроить сам Apache сервер. Для этого откройте для редактирования файл настроек хостов.
$ open -e /usr/local/etc/apache2/2.4/extra/httpd-vhosts.conf
Добавьте следующий код, описывающий новый хост, в файл настроек. Название проекта codex уже вписано в нужные строки. Замените your_user на логин вашего пользователя.
# корневая директория проекта codex DocumentRoot /Users/your_user/Sites/codex # доменное имя ServerName codex.local # настройка прав доступа к директории проекта AllowOverride All Order allow,deny Allow from all
Перед подключением первого локального сайта необходимо включить возможность использования хостов.
Откройте для редактирования файл /usr/local/etc/apache2/2.4/httpd.conf. Необходимо раскомментировать строку с подключением файла настроек виртуальных хостов.
# Virtual hosts Include /usr/local/etc/apache2/2.4/extra/httpd-vhosts.conf
После этих действий нужно перезагрузить сервер.
$ sudo apachectl restart
Теперь сайт, находящийся в директории ~/Sites/codex, будет доступен по адресу http://codex.local/.
Заключение
После выполнения описанных в статье шагов у вас должен получиться готовый к работе веб-сервер.
В этой статье представлен наиболее простой способ разворачивания рабочего окружения непосредственно на операционной системе. Существуют и другие способы решения описанных задач: например, с использованием Open Server (для Windows) или виртуализации с помощью VirtualBox, VMWare, Vagrant, Docker и других утилит. Об использовании докера читайте в статье «Как поднять сайт в Docker».
Материалы
- Статья-источник https://getgrav.org/blog/macos-sierra-apache-multiple-php-versions
- Homebrew http://brew.sh
If you like this article, share a link with your friends
Read more
We talk about interesting technologies and share our experience of using them.
Сервер из 160 Маков своими руками? Легко!
Английская версия издания Macworld со ссылкой на портал Hack A Day поведала нам о хакере по имени Стив, который своими руками собрал собственную альтернативу Xserve, состоящую из 160 компьютеров Mac mini.

Стиву для работы необходим был сервер, но с января 2011 года Apple прекратила реализацию Xserve, заменив их серверными версиями Mac Pro и Mac mini. Стиву ничего не оставалось, кроме как воспользоваться наиболее выгодным для построения собственного сервера предложением компании. Его выбор пал на Mac mini.

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


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

Другим не менее важным вопросом было получение максимально возможной мощности от всех 160 компьютеров. Для этого Стив оснастил каждый стеллаж с компьютерами персональным блоком распределения питания, к которому подключались все четыре компьютера, расположенные на стеллаже. Каждый блок, в свою очередь, подключался к розетке. Это позволило хакеру в четыре раза уменьшить количество проводов, отходящих от конструкции сервера.
В конечном итоге получился самый настоящий центр обработки данных, состоящий из 160 компьютеров, в каждом из которых дисковый накопитель был заменен твердотельным. Общая мощь всей конструкции составила 640 ядер. Если брать в учет технологию HyperThreading, то все 1280 ядер. Mass Effect 3 на максимальных без лагов.
Если у вас тоже возникла подобна идея, то прежде чем приниматься за работу над собственным сервером, предлагаю посмотреть наш обзор новенького Mac mini.
Домашний Mac-сервер
Бродя по интернету я наткнулся на статью, которой захотелось поделиться с вами.
Итак:
Вступление.
Эта статья не является гайдом, не является мануалом или пособием. Эта статься призвана в общих чертах дать понять что можно сделать, имея прямые руки, немножко амбиций и упорства. В ней, в этой статье я восстановлю хронологию событий и действий, которые я совершал, в результате чего получилась эта статья.
Идея.
Мне захотелось иметь свой личный домашний сервер. Мой Powerbook G4, с винчестером 80Gb с каждым днём заполнялся до отказа, и постоянно приходилось что-то удалять, всегда чем-то жертвовать, чтобы освободить место под другую информацию, которая была более нужной и востребованной в данный момент. С другой стороны — та информация, которая удалялась тоже являлась важной и могла потребоваться в будущем. Записывать её на болванки не хотелось, покупать внешние винчестеры тоже не хотелось, по причинам, которые станут понятны читателю ниже.
Хотелось, чтобы сервер работал всегда, к нему был доступ из любой точки мира. Чтобы он стал своеобразным продолжением моего ноутбука, и сидя дома, можно было работать с ним по Wi-Fi через AirPort Extreme Base Station, а где-то “в дороге” — с любого устройства, которое имеет выход в Интернет, будь то наладонник или сотовый телефон.
Располагать сервер дома — кощунство. Во-первых это пожаро-опасно; во-вторых он может издавать слишком много шума, и, даже если убрать его, например в шкаф, то это всё равно небезопасно не только для квартиры, но и для него самого — нормальное охлаждение в замкнутом пространстве станет невозможным.
Решено было расположить сервер на этажной площадке.
Плюсы такого решения:
На площадке всегда прохладно, а значит нормальное охлаждение не станет проблемой
Это безопасно, ведь если произойдет короткое замыкание и сервер вдруг загорится, то произойдёт это всё равно на территории площадки и не принесёт вреда квартире
Полное отсутствие шума в квартире, отсутствие дополнительного источника тепла в оной
Минусы:
Сервер могут попросту украсть, а это значит, что для него необходимо продумать систему охраны
Выбор модели.
В качестве основы для постройки сервера я приобрёл Powermac G4 (модель “AGP”) с процессором PowerPC G4 400Mhz, 1Gb оперативной памяти, DVD-RW-приводом, ZIP-дисководом, видео-карточкой на 16 мегабайт, винчестером на 60 Gb и ненужным мне SCSI-контроллёром.

В качестве операционной системы я выбрал конечно же Mac OS X Tiger Server, но о ней и о некоторых деталях, касающихся системы и PowerMac G4 мы поговорим позже, а пока перейдем к “тяжелой” части статьи.
Подготовка ящика.
Чтобы разместить сервер на подъездной площадке для него необходимо придумать ящик. Прогулявшись по магазинам типа “Электрика” или “Всё, что связано с электричеством”, я пришел к выводу, что то, что продают эти товарищи подходит чтобы хранить в них разве что картошку, которую и не жалко потерять в случае появления воров и всяких… нехороших людей. За эти ящики продавцы хотят аж пять тысяч рублей. Такой ящик может сломать даже ребенок, отогнув стенку ключом. Поэтому я решил сделать ящик самостоятельно. Закупил немного листового металла на ближайшем рынке, набросал эскиз ящика и отдал на кафедру сварочного производства в один из ВУЗов города.
Ящик получился жёстким и прочным. Не идет ни в какое сравнение с магазинным. Размеры были специально выбраны с небольшим запасом, чтобы корпусу сервера было просторно, ведь помимо самого сервера в ящике будет располагаться ещё несколько устройств, о которых мы поговорим ниже.

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

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

После подготовки ящика я приступил к его установке. Для него было выбрано не самое удачное место — возле мусоропровода, но оно оказалось единственно-правильным с тактической точки зрения. Ящик не привлекает внимание “случайных посетителей” площадки. Все коммуникации были подведены заранее. К сожалению, я не могу рассказать что это были за провода и откуда они были подведены, но идеальным вариантом является штробление стен, с укладкой проводов и последующей замазкой. Также необходимо на фазу электропитания установить автомат-предохранитель, который, в случае возникновения экстренных повышенных токов отключит питание сервера и, таким образом, можно будет избежать больших неприятностей.
Ящик был закреплен в шести точках на анкерные строительные болты в верхней части стены, ближе к потолку. Отломать его сложно (Против лома нет приёма?). Замок лучше использовать без выступающих частей, чтобы исключить возможность спила оного.

Система охраны ящика.
Это очень важный момент. Мы придумали свою сигнализацию сами, но, к сожалению, я не могу рассказать принцип её работы по понятным причинам. Но есть некоторые параметры, которые необходимо учитывать, если читатель захочет придумать свою сигнализацию:
При незаконном (взломе) открытии дверцы сигнализация должна сработать, при последующем закрытии дверцы сигнализация не дложна отключаться и продолжать издавать сигнал тревоги до тех пор, пока она не будет отключена специальной кнопкой, которую лучше спрятать у себя в квартире или в недоступном для других месте.
Сигнализация должна показывать своё текущее состояние; в каком режиме она находится.
На рисунке выше рядом с вентилятором мы видим два отверстия в которые впоследствие были установлены два светодиода — белый и мерцающий красный. Белый светодиод извещает о работоспособности сигнализации, красный извещает том, что сигнализация находится в режиме охраны.
Наиболее простым вариантом будет использовать самую примитивную автомобильную сигнализацию. Даже такие имеют в своём арсенале датчики открытия дверей и пару датчиков удара
Я назвал свою сигнализацию iGuard.

Подготовка системного блока, докупка оборудования.
В этой части мы поговорим о необходимом апгрейде PowerMac G4. К сожалению, эта модель имеет очень большой минус. При подключении винчестера, скажем в 200Gb по стандартному IDE-каналу, система не увидит больше 128 Gb информации, да и вообще, ATA шина оставляет желать лучшего — это всего лишь Ultra ATA/66. В природе существует драйвер, который позволяет обмануть систему, и таким образом подключать винчестеры большего размера, но он имеет ряд существенных недостатков, о которых я говорить не буду. Скажу лишь, что после установки этого драйвера и подключении к нему винчестера Seagate Barracuda на 200Gb скорость скачивания с оного была отвратной. Да и вообще, IDE-шина — это уже прошлый век.
Я отправился в магазин Other World Computing, где подобрал себе замечательную карточку SIIG Serial ATA 4 Channel PCI-M, которая имеет четыре Serial ATA порта. Это позволит подключать самые последние и скоростные винчестеры любой ёмкости. Доставка из США обошлась не дорого и через неделю карточка была у меня.

В это же время были приобретены два топовых винчестера от Seagate ёмкостью по 400 Gb. Таким образом, суммарный объем нашего сервера увеличился до 800 Gb, что вполне неплохо для старта. В будущем, если просчитать количество свободных PCI портов, докупить ещё таких карточек, продумать систему питания и охлаждения суммарный объем может увеличиться до 13 террабайт.
Один винчестер я закрепил внутри корпуса в специальной корзинке, а другой — в отсеке, где был установлен DVD-RW- и ZIP-дисководы. Второй винчестер не имеет крепления и установлен на резиновой подушке, которая была создана из уплотнителя, который можно посмотреть выше в этой статье. Это позволило разделить источники тепла друг от друга и снизить вибрации. Также, на каждый винчестер было предусмотренно дополнительное охлаждение, таковых сейчас в продаже полно.

Внешний вид ящика, итоги “тяжёлой части”.
Вот, что получилось у меня в результате:


Настройка системы Mac OS X Server, общие принципы существования сервера в локальной сети и Интернет.
В качестве операционной системы я выбрал конечно же Mac OS X Tiger Server.
Сервер подключён к локальной сети, а также к Интернет посредством PPPoE. Мой провайдер выделил мне реальный IP, благодаря чему сервер стал доступен из любой точки мира.
Благодаря замечательной программе Remote Desktop, все операции по настройке системы можно производить прямо с ноутбука, видя на своём экране экран сервера:

На моём сервере я настроил в первую очередь конечно-же Apple File Protocol. Он позволяет подключаться к серверу и работать с файлами прямо через Finder, как будто-бы эти файлы располагаются на вашем винчестере. И конечно, файлы можно открывать прямо с сервера, будь-то прайс-листы или видео. Вот как например выглядит папка Movies на моём сервере:

Встроенный FTP-сервер слишком прост, его настроек не хватает. Зато существует прекраснейший и лучший на мой взгляд FTP-сервер под Mac — CrushFTP.
Такого количества настроек мне не удавалось увидеть ни в одном FTP-сервере ранее. Перечислять все достоинства не имеет смысла. Пользователи сами могут узнать их на странице разработчика. Это пожалуй второй “Amazing”-продукт, который удовлетворит даже супер-требовательных пользователей. Особенно отметить — это Web-интерфейс, который позволяет работать с FTP через любой браузер, а также закачивать файлы на сервер через оный по технологии drag’n’drop. Также, нельзя не отметить функцию архивирования “на лету”. Через Web-интерфейс можно выделить несколько файлов/папок и нажать на кнопку ZIP. Сервер сам на лету подготовит архив, в котором будут располагаться выбранные файлы или папки и представит этот архив к скачиванию. Это невероятно.
Поддержка пользователей/групп, квот, ограничителями пропускной способности, возможности удаленного администрирования, SSL, возможность обработки .sfv файлов и виртуальные директории. CrushFTP может даже определить WAN IP адрес, если вы используете NAT firewall. CrushFTP поддерживает передачу файлов по протоколам FTP, FTPS, HTTP, HTTPS, WebDAV и SFTP.
Для Windows-пользователей локальной сети был предусмотрен Windows Sharing.
При настройке системы, необходимо помнить, что в случае внезапного отключения питания в доме и последующей его подаче, компьютер должен сам включиться, запустить необходимые приложения и подключиться к Интернет. Для автоматического подключения к Интернет я написал небольшой AppleScript, который положил в Login Items. Скрипт после входа в систему, ожидает 10 секунд, пока загрузятся все приложения, затем открывает приложение Internet Connect, подключается к Интернет посредством PPPoE и закрывает приложение Internet Connect.
Оптимизация работы по Apple File Protocol.
Безусловно, для соединения по AFP можно использовать стандартную функцию Finder “Connect to Server…”, которая располагается в меню Go. Но это не совсем удобно для работы по локальной сети, особенно для Wi-Fi, ведь при случайном отключении от сети Finder повиснет и впоследствие “отмонтирует” присоединенную share point. После этого придется вновь присоединяться, нажимать дополнительные кнопки в окне аутенфикации. Есть гораздо более интересный способ и назвается он “статическое автомонтирование”. Суть его состоит в том, что после запуска системы она автоматически примонтирует нужные share point и выведет их в Network. Не стоит путать этот метод с программами типа AutoMountMaker, это другое. Во-первых, там используется динамический метод присоединения. Да, ничего вводить не придется и сервер будет досутпен прямо из Network, но динамическое присоединение не позволяет потоково воспроизводить аудио-файлы или фильмы прямо с сервера, их необходимо будет сначала скачать.
Статический метод монтирует нужные вам share point (как с аутенфикацией, так и без) также в Network, но позволяет потоково воспроизводить контент с сервера.
Для того, чтобы создать себе automount share points необходимо проследовать в NetInfo Manager. Там выбрать путь /mounts и сделать что-то примерное, как на скриншоте ниже:

Где 10.100.0.7 — это айпи вашего сервера (у вас он может быть другим).
Обратите внимание: переменная “dir” должна обязательно начинаться с “/Network/” и заканчиваться нужной Share Point. В описанном случае эта Share Point есть Distrib.
Логин и пароль у всех конечно получится свой. Также, в Интернет можно найти больше информации об этом методе.
Эту операцию необходимо сделать один раз и больше вам не нужно будет нажимать никаких “Connect to server…”, вводить логины, пароли и отвлекаться на нажатия кнопок. Более того, этот метод не вешает Finder при неудачном отсоединении от сети. Этот метод просто работает.
Заключение, выводы, благодарности.
Создание домашнего сервера штука увлекательная и не такая сложная. Конечно, не имея навыков в пайке, электронике, програмном обеспечении сделать описанное сложнее. Цель статьи — показать, насколько важна идея, которую доводишь до конца. Это очень важно — сделать всё так, как было задумано и не спускать помарки и ошибки, а исправлять и делать всё заново, пока не будет достигнут положительный результат.
Некоторые люди мне говорили: “Зачем тебе понадобилось делать сервер на основе Mac? На основе PC это было бы гораздо дешевле!”. Возможно, это так. Впрочем, умозрительно не думается, что системный блок PC был бы в пять раз дешевле PowerMac G4. И потом, что может предложить PC? FTP? Windows Sharing? Увольте. Сервер на основе Mac — это особая любовь.
Как я спаял нормальный сервер из очень старого Mac Mini

В закладки

Со дня знакомства с техникой Apple меня всегда тянуло к продуктам, которые Компания официально признала устаревшими. Сперва это было из финансовых соображений — деньги на новый Mac есть редко у какого подростка.
Сегодня же это превратилось в хобби. Трепет и тягу к олдскульной технике Apple объяснить сложно. Это состояние поймет только тот, кому приходилось самостоятельно прогревать южный мост у «Лампы Джобса», пытаться остудить PowerBook или ни один битый час загружать операционку на старый Mac mini с помершим приводом.
О последнем гаджете Apple я бы и хотел рассказать сегодня. Вдохновение пришло после статьи нашего читателя «Стоит ли брать Mac mini, которому 10 лет?»

По иронии судьбы мне досталась точно такая же модель: Mac mini 2.0, 1 ГБ оперативки, 120 ГБ HDD, процессор Core 2 Duo 2.0 ГГц. Одним словом, старичок.
За десятилетний неттоп без зарядного устройства я отдал… не упадите — 1400 руб. Да, чудеса бывают. Увы, в комплекте не было блока питания, а штатный CD давно приказал долго жить.
Продавец уверял, что машинка исправна и использовалась в качестве примитивного сервера. Я поверил, раскрыл, порадовался состоянию компьютера и поставил греться паяльник.
Откуда взять блок питания для старого Mac mini?

Этот вариант еще и в хорошем состоянии. Есть гораздо более «убитые» с заоблачными ценниками.
Беглый серфинг по барахолкам и доскам объявлений тут же оттолкнул от покупки оригинального зарядника. За то, что изображено на картинке выше, пользователи и отдельные представители розничной торговли просят от 1500 до 2500 тыс. руб.
Нет, я, конечно, понимаю, что это Apple, ретро и желание заработать на ностальгирующих, но не по цене же самого компьютера!
Понимая, что с экономической точки зрения абсолютно глупо покупать оригинальный блок питания, было решено погрузиться в азы радиоэлектроники и подружить Mac mini c универсальным зарядным устройством.
Да, в это сложно будет поверить убежденному маководу, но с любым компьютером Apple прошлого десятилетия будет работать сторонний блок питания. Хотя Apple и «думает иначе», ее продукты используют точно такой же ток и все те же законы Ома.
Сразу разбираемся с питанием и тем, что нам нужно купить.

Самый доступный и самый правильный вариант. Когда создавался Mac mini, Джобс вынашивал такую же идею: сделать зарядное устройство максимально компактным.
Оригинальный блок питания Mac mini 2007 года выдает 18.5 вольт и до 6 А. Грубо говоря, его мощность составляет 110 Вт. А значит, список того, что нам нужно будет купить для запуска Mac mini, включает:
- Ноутбучный блок питания на 18,5 – 19 Вольт (2.7% – вполне допустимое превышение по напряжению) – тут вообще можно не тратиться, а поспрашивать друзей-знакомых, либо окинуть взглядом собственный «склад».
- Резистор на 2 кОм – около 1 руб.
- Порт типа «мама» под соответствующий штекер питания раздобытого блока питания от ноутбука.
Ну и, конечно же, припой, флюс и ортофосфорная кислота (без них никак, канифоль не спасет), многожильный провод сечением в 0.8 – 1.2 мм, паяльник и максимально нетрясущиеся руки. 🙂
Ну что, паяем?

Если кратко, то разбирать не так уж и много. Главное — отключите все шлейфы.
Приобретенный Mac mini разбираем до основания. Нам нужно добраться до обратной стороны материнской платы. Описывать весь процесс разбора не вижу смысла, дабы не превращать статью в километровый трактат. По этой теме есть предостаточно материалов у ребят из iFixit.
Перевернув плату, внимательно смотрим на пять пятачков, ведущих от закрепленного порта питания. Для наглядности подпишу каждый из них:

Тот момент, когда категорически нельзя перепутать полярность.
Для того, чтобы пользователь не думал, какой стороной подключать оригинальный штекер блока питания, Apple продумала сразу два плюсовых и два минусовых контакта.
Нам же нужно припаяться к любому из «минусов» и «плюсов».
Да, оставшийся пятый контакт тоже не останется без нашего внимания. Изначально мне казалось, что припаяв пару проводов от «правильного» блока питания, я смогу тут же включить Mac mini.
Но не тут то было: Mac mini отказался стартовать. Потратив еще немного времени на изучение проблемы, удалось выяснить, что без вспомогательного резистора лед не тронется.
Что ж, на этот самый пятый контакт паяем еще один проводок для резистора. Не жалейте припоя и флюса. Припаиваться лучше к плюсу и минусу, которые расположены ближе к краю, чтобы не зацепить SMD-элементы.
После 15 минут напряженной микропайки получаем следующее:

- Красный провод — «плюс»
- Синий провод — выход на резистор 2 кОм
- Красный провод меченый — «минус»
Не будет лишним зафиксировать провода прямо на плате. Можно выбрать вариант суперклей + сода, но я предпочел более щадящий — синюю изоленту.

Запомните: если в инструкции нет синей изоленты, значит она неправильная!
Теперь можно приступать к сборке.
Все три шнура логично будет вывести в отверстие радиаторной решетки, которая расположена по всему периметру корпуса Mac mini. При большом желании можно установить порт под классический ноутбучный блок питания и прямо в корпус, но мне не хотелось портить оригинальный вид неттопа.
Теперь заключительный нюанс по питанию и подключению:
Плюс идет на плюсовой контакт блока питания ноутбука, резистор на 2 кОм подпаивается к минусу , а минус – к минусу блока питания.
Вот и вся математика.

Резистор нужен. Без него никак.
Подключаем шнур питания, нажимаем Power на корпусе Mac mini… Привет, белый дисплей и, черт побери, экран восстановления Windows 7!

Эм… и это с дисплея Mac mini?
Признаюсь, не ожидал.
Что будет дальше с этим Mac mini?

Mac mini ждет много улучшений
Изначально целью покупки этого ультрабюджетного компьютера было создание собственного мультимедийного сервера. Есть более простые решения в виде «умных» роутеров с возможностью подключения внешних дисков, но мы же не ищем легких путей?
Сегодня нам удалось включить Mac mini. Это действительно большая победа. Но впереди – апгрейд и установка системы.
Я уже заказал две планки оперативки суммарной емкости 3 ГБ (1 + 2 ГБ) — больше этот неттоп не потянет. Параллельно присматриваюсь к «карману» вместо CD-Rom, малоемкому SSD на 32 ГБ и вместительному HDD на пару терабайт.
Разберемся, что можно выжать из старичка, проведя хороший апгрейд, и определимся с оптимальной ОС для 11-летнего неттопа.
Если вас, дорогие читатели, заинтересовал подобный вариант использования старого Mac mini, продолжение следует. 😉
Краткие выводы
1. Mac mini даже после 10 лет – по-прежнему отличный неттоп для несложных задач.
2. Не нужно бояться паяльника — иногда это умение экономит очень много средств.
3. Осторожно разбирайте Mac mini. Особенно важно убедиться, что отключили все шлейфы. Лишний раз перепроверьте!
4. В оригинальном заряднике к Mac mini, на самом деле, не так много отличий от недорогого к любому ноутбуку.
5. Этот материал — дань хобби. «Пойти и купить» не всегда доставляет удовольствие.
