ryg

Запуск и настройка Apache, PHP под управлением OS X 10.10 Yosemite

Данная инструкция предназначена для тех пользователей, которые устанавливали операционную систему OS X 10.10 на чистый диск. Для тех, кто делал обновление с версии 10.9 Mavericks и web сервер apache уже был включён достаточно проверить и обновить файлы настроек.

Запуск Apache

Начиная с версии  OS X 10.8, Apple отключила опцию в графическом интерфейсе, позволяющую запускать web сервер, но при этом он входит в стандартный комплект поставки и может запущен командой терминала.

Для этого необходимо запустить сам terminal.app, находящийся по адресу /Applications/Utilities/Terminal (быстрый переход осуществляется с помощью "горячих клавиш в Finder CMD+Shift+G).

Пользователям незнакомым с работой в терминале не стоит пугаться его использования, это не так сложно как кажется на первый взгляд. Однако стоит знать, что данный инструмент позволяет вносить существенные изменения в работу операционной системы и внимательно читать сообщения системы получаемые в ответ на Ваши команды. Терминал предоставляет простой интерфейс командной строки, ожидает набора команды (которые можно скопировать из данной инструкции) и выполняет их после нажатия клавиши Enter. Получив команду он её выполняет и выводит на экран диагностическое сообщение (обычно в случае ошибки) и новое приглашение для ввода командной строки.

Итак команда запуска apache

sudo apachectl start

Команда sudo говорит системе, что следующая за ней команда apachectl должна быть выполнена в привилегированном режиме, от имени суперпользователя и система затребует пароль пользователя с правами администратора. (пароль не отображается при наборе). После ввода пароля, по умолчанию, система не будет требовать ввода пароля для других команд выполняемых от имени суперпользователя (команда sudo) в течение 5 минут.

Остановить работу apache

sudo apachectl stop

Перезапустить web сервер (ее требуется выполнять после изменения настроек в системных файлах apache).

sudo apachectl restart

Получить информацию о текущей версии 

sudo apachectl -v

C 10.10 поставляется 

Server version: Apache/2.4.9 (Unix)
Server built:   Sep  9 2014 14:48:20

Получить информацию об ошибках в конфигурационных файлах apache/ (Достаточно важная команда для понимания в случаях, если что-то пошло не так)

sudo apachectl -t

После того как вы запустили сервер командой 

sudo apachectl start

Проверьте его работу в браузере по адресу localhost. В должны получить сообщение "It works!"

Запуск apache в mac OS X 10.10 Yosemite

 

Место хранения Ваших сайтов и доступ к ним

Традиционно сайты хранятся в папках операционной системы имеющих имена "public_html" и "htdocs", в OS X исторически сделано по другому, одна папка корневого каталога находится на системном уровне и одна на уровне пользователя. Вы можете использовать одну или другую или объединить их. Использование папки на системном уровне позволит работать с ней всем пользователям данного компьютера, а на уровне пользователя только Вам и позволит всем пользователям иметь разные папки для их сайтов. Я рекомендую использовать пользовательский уровень так как это не требует использовать в процессе работы пароля администратора.

Системный уровень каталога локальных сайтов

Доступен по адресу http://localhost

Сами файлы располагаются по адресу: /Library/WebServer/Documents/

Пользовательский уровень локальных сайтов

Обычно для этого используется каталог ~/Sites. Как видно из его адреса, то он находится в основной папке пользователя, но для этого его необходимо создать. Можно использовать любую другую папку, если Вам это удобнее, я предпочитаю именно это имя.

Данную папку можно создать с Finder или с помощью команды терминала:

mkdir ~/Sites

После этого необходимо создать файл настроек apache, который будет указывать на данный каталог. Для этого необходимо знать имя пользователя в системе для которого он создаются. Узнать точное имя пользователя можно командой терминала:

users

Данный файл настроек должен находиться в каталоге /etc/apache2/users/, а имя должно быть именем пользователя (дальше username) и суффикс .conf. Так как данная папка является "системной", то для создание и редактирование в данной папке разрешено только "суперпользователю". Если вы предпочитаете использовать графический интерфейс, то редактировать файл необходимо в обычной папке, например Документы, а потом его копировать в необходимую папку. Но проще, при определённых навыках, использовать терминал и простейший редактор nano.

Запускаем Terminal.app, ка было описано выше и переходим в нужный нам каталог:

cd /etc/apache2/users

Создаём нужный нам файл и запускаем редактор nano

sudo nano username.conf

Не забываем, что требуется заменить username ни имя реального пользователя.

В редакторе вводим следующие строки (их можно скопировать):

<Directory "/Users/username/Sites/"> 
AllowOverride All
Options Indexes MultiViews FollowSymLinks
Require all granted
</Directory>

Здесь тоже заменяем username на реальное имя. Сохраняем файл "ctrl-O" и выходим из редактора "ctrl-x".

Теперь необходимо проверить и установить права доступа к данному файлу. Провалить права можно командой :

ls- l

Они должны быть следующие:

-rw-r--r--  1 root  wheel  141 20 окт 18:38 Guest.conf

Если они отличются, то установить права доступа можно командой chmod

sudo chmod 644 username.conf

Теперь необходимо внести изменения в файл httpd.conf, он расположен в каталоге /etc/apache2/. Так как файл большой и потребуется поиск необходимых строк, лучше открыть его одновременно в графическом редакторе для поиска нужной строки и редакторе nano для редактирования. В nano не очень удобный поиск текста (ctrl-w) и поэтому можно  искать в обычном редакторе, например textedit и потом по номеру строки в nano можно найти нужную строку. (Посмотреть текущий номер строки можно клавишами ctrl-c).

sudo nano /etc/apache2/httpd.conf

В следующих строка необходимо удалить символ комментария в виде '#', в первых двух указанных строках он мог быть автоматически во время установки, но все равно необходимо проверить.

LoadModule authz_core_module libexec/apache2/mod_authz_core.so
LoadModule authz_host_module libexec/apache2/mod_authz_host.so
LoadModule userdir_module libexec/apache2/mod_userdir.so
Include /private/etc/apache2/extra/httpd-userdir.conf

Дальше необходимо внести изменения в другой файл конфигурации httpd-userdir.conf

sudo nano /etc/apache2/extra/httpd-userdir.conf

В нем нужно удалить символ комментария в строке:

Include /private/etc/apache2/users/*.conf

После внесения данных изменений можно перезапустить  apache, чтобы он заново прочёл файлы настроек:

sudo apachectl restart

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

http://localhost/~username

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

Настройка apache в Mac OS X 10.10 Yosemite

Если это не получилось и Вы получаете ошибку 403 или нечто подобное, проверьте предыдущие изменения и посмотрите, что Вам сообщит команда 

sudo apachectl -t

Использование локальных .htacess и замена URL

Если Вам удалось включить пользовательский уровень для хранения сайтов, то правильным будет включить возможность использования для каждого сайта собственного файла настроек apache, которые хранятся в файле .htacess. Для этого необходимо внести ещё одно изменение в файл httpd.conf.

Замечание файлы начинающиеся на точку '.' являются скрытыми файлами и для работы с ними их необходимо сделать видимыми в Finder

sudo nano /etc/apache2/httpd.conf

там необходимо изменить строку с содержимым AllowOverride None, на строку

AllowOverride All

По умолчанию данная директива находится в строке 217 данного файла, но может быть и в другом месте.

И включить библиотеку позволяющую делать rewrite URL, для этого снимаем комментарий в строке:

LoadModule rewrite_module libexec/apache2/mod_rewrite.so

Сохраняем изменения (ctrl-O) и выходим из редактора (ctrl-x).

Необходимые изменения внесены, перезапускаем apache:

sudo apachectl restart

Запуск и настройка PHP в OS X 10.10 Yosemite

Вместе с OS X поставляется и интерпретатор php версии 5.5.14 и его требуется только включить сняв комментарий ('#') в строке

LoadModule php5_module libexec/apache2/libphp5.so

Для этого открываем файл httpd.conf

sudo nano /etc/apache2/httpd.conf

Находим нужную строку с помощью клавиш ctrl-w и ключевому слову php, удаляем комментарий, сохраняем файл (ctrl-o) и закрываем файл (ctrl-x).

Опять перезапускаем apache

sudo apachectl restart

Чтобы проверить работу PHP стоит сделать файл с именем phpinfo.php в папке /Library/WebServer/Documents/ со следующей строкой:

<?php phpinfo(); ?>

И опять это проще сделать в редакторе nano:

sudo nano /Library/WebServer/Documents/phpinfo.php

после его сохранения проверяем работу и настройки PHP в браузере по адресу:

http://localhost/phpinfo.php

Должны получить следующую страницу:

phpinfo.php

Продолжение настройки web сервера. Установка и настройка MySql и PhpMyAdmin.

Tags: