С тех пор как я попробовал после Windows систем сесть на Linux, а потом и на Mac ничего кардинально не изменилось. Пока нужно сделать что-то не сложное — это делается в один клик, как только нужно сделать что-то очень простое, это просто невыполнимо.
Ну в общем, мне нужно настроить Mac OS для разработки на PHP. Надо заметить что Apache на моем Mac уже стоит, причем это по умолчанию. (У меня Yosemite, для справки).
Особо удачливые и гуру могут использовать инструкцию с сайта php, а здесь я попытаюсь изложить доходчиво и по пунктам для всех остальных.
Ну пожалуй по порядку.
Apache
Нам нужен для работы Apache, который в принципе уже предустановлен (в Yosimite по умолчанию доступна версия 2.4), но в панели управления никаких интерфейсов для работы с ним не представлено.
Есть несколько простых способов решить эту задачку с помощью сторонних приложений, например, clickontyler или VirtualHostX. (На самом деле clickontyler это более простая и бесплатная версия одного и того же продукта).
Но все можно сделать используя уже имеющиеся средства.
Нас интересует Terminal и apachectl.
Чтобы запустить web-сервер:
$ sudo apachectl start
Чтобы остановить apache:
$ sudo apachectl stop
Чтобы перезапустить apache после изменение конфигурации:
$ sudo apachectl restart
Если после запуска сервера Вы не можете зайти на http://localhost возможно необходимо добавить алиас в файле /etc/hosts: 127.0.0.1 localhost. Хотя, это должно быть по умолчанию.
Настройки Document Root
В первую очередь я изменил корневую папку, с которой работает сервер. По умолчанию это /Library/WebServer/Documents. Поскольку эта машина предназначена для разработчика можно изменить директорию, на папку в домашней директории пользователя. Для этого необходимо внести правки в конфигурационный файл Apache.
/etc/apache2/httpd.conf
Можно использовать любой удобный редактор, к примеру vi или subl. Главное запускать его с правами root, для этого необходимо использовать команду sudo.
Я предпочитаю использовать простой редактор — nano.
$ sudo nano /etc/apache2/httpd.conf
Найдите в документе DocumentRoot, строка должна выглядеть следующим образом:
DocumentRoot "/Library/WebServer/Documents"
Измените адрес на необходимый вам. К примеру
DocumentRoot "/Users/<имявашегопользователя>/Sites"
Так же нужно внести изменения внутри <Directory> должен быть указан тот же путь:
<Directory "/Users/<имявашегопользователя>/Sites">
Внутри блока <Directory> вы найдете настройку AllowOverride, измените ее следующим образом:
AllowOverride All
* посмотреть назначение параметров можно, например, здесь.
User & Group
Теперь апач смотрит на папку Sites, расположенную в домашней директории пользователя. Есть одна проблема, по умолчанию apache работает из под пользователя _www и группы _www, поэтому сервер может не иметь доступа к домашней директории. Снова редактируем httpd.conf.
User <имявашегопользователя>
Group staff.
Создаем корневую директорию
Конечно, для того чтобы применить настройки необходимо перезапустить Apache sudo apachectl restart.
Выше мы уже сделали необходимые настройки, но самой директории у нас еще нет. Создать ее можно из терминала или из Finder. Следующий пример создает директорию и файлик index.html, содержащий заглушку, которой можно будет проверить работу сервера.
$ mkdir ~/Sites
$ echo "<h1>Hello World!!!1111 Работает!!!</h1>" > ~/Sites/index.html
Теперь, когда вы откроете в браузере http://localhost, вы должны увидеть именно это сообщение. Если все работает — можно продолжать дальше.
Homebrew
Существуют различные менеджеры пакетов для Mac OS:
- MacPorts: » http://www.macports.org/
- Liip: » http://php-osx.liip.ch/
- Fink: » http://www.finkproject.org/
- Homebrew: » http://github.com/mxcl/homebrew
В принципе, вы можете использовать тот, что Вам больше нравится. Исторически сложилось так, что я пользуюсь Homebrew.
В первую очередь, для установки brew потребуется поставить XCode и Command Lite Tools. Сперва убедитесь, что установлен XCode он доступен в Mac App Store.
Затем в терминале пишем:
xcode-select --install
Установка
Полную документацию можно найти на Homebrew Wiki, кажется теперь ее переместили к репозиторию на GitHub. Я приведу только выдержку.
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Просто следуем предложениям терминала и там где требуется вводим пароль. Это займет несколько минут.
Проверка
Простой вариант проверить, что brew установился корректно — набрать команду:
$ brew --version
Так же вы можете использовать следующую команду, чтобы удостовериться, что все корректно
$ brew doctor
Вы получите инструкции, если необходимо что-то исправить.
Если brew уже был установлен, удостоверьтесь, что вы используете последую доступную версию:
$ brew update
Теперь можно работать с brew.
Немного мат.части для общего развития.
У Homebrew есть формулы, это нечто вроде скриптов на Ruby, например вот:
class Wget < Formula
homepage "https://www.gnu.org/software/wget/"
url "https://ftp.gnu.org/gnu/wget/wget-1.15.tar.gz"
sha1 "f3c925f19dfe5ed386daae4f339175c108c50574"
def install
system "./configure", "--prefix=#{prefix}"
system "make", "install"
end
end
Homebrew устанавливает программы в их собственные директории и создает символьную ссылку на них в /usr/local
.
Homebrew не станет устанавливать файлы за пределами своей директории. Вы можете установить Homebrew в любую директорию.
Установка PHP 5.4
В общем-то после установки brew, установка php становится весьма тривиальной задачей. В данном описании я покажу только установку конкретной версии PHP, а дальнейшем постараюсь показать вариант установки нескольких версий и переключения между ними. Англоязычное описание по установке нескольких версий php можно найти прямо здесь.
$ brew tap homebrew/dupes
$ brew tap homebrew/versions
$ brew tap homebrew/homebrew-php
$ brew install php54
Этот процесс займет какое-то время.
Если в процессе компиляции вы увидите ошибку: configure: error: Cannot find OpenSSL’s вам необходимо переустановить XCode command line tools, для этого достаточно набрать: xcode-select —install
Если вам потребуется подстроить php под себя, конфигурационный файл вы сможете найти по адресу:
/usr/local/etc/php/5.4/php.ini
Настройка Apache
Теперь, когда мы успешно установили php, необходимо объяснить Apache, как работать с ним. Для этого снова редактируем файл /etc/apache2/httpd.conf. Ищем в нем строку начинающуюся с #LoadModule php5_module.
# — в данном случае символ комментария, но мы можем не трогать эту строку, т.к. параметр все равно ссылается на версию php, которая была предустановленна вместе с OS X.
Просто добавляем под этой строкой следующее:
# Brew PHP LoadModule
LoadModule php5_module /usr/local/opt/php54/libexec/apache2/libphp5.so
Так мы сказали Apache для обработки PHP запросов использовать PHP 5.4, который установили ранее.
Так же сразу следует убрать комментарий с объявления модуля mod_rewrite.so (описание на английском языке можно найти здесь):
LoadModule rewrite_module libexec/apache2/mod_rewrite.so
Перезапускаем Apache, для обновления конфигурации $ sudo apachectl restart.
Теперь Apache должен начать обрабатывать php.
Для проверки этого утверждения используем команду phpinfo(), которая заодно расскажет нам практически все текущие параметры и пригодится в будущем.
Просто создаем файл info.php в папке ~/Sites/ и помещаем в него одну строку
<?php phpinfo()
Открываем в браузере http://localhost/info.php и наблюдаем страницу с информацией о нашем PHP.
Если Вы нашли ошибку, пожалуйcта выделите ее и нажмите Shift + E или нажмите здесь чтобы информировать меня. Спасибо.