Инструкция по установке локального веб-сервера на Mac OS.
Далее ниже будем настраивать веб-сервер самостоятельно, без использования сторонних программ. Благо Mac OS является UNIX системой и настройка веб-сервера почти не отличается от Linux серверов.
Для установки веб-сервера можно воспользоваться готовыми решениями. Например, MAMP PRO. Но если хочется hardcor-а или не хочется платить за готовые решения, то это статья для вас.
Ставим менеджер пакетов для Mac OS
Для начала устанавливаем менеджер пакетов Homebrew.
Ставим apache на Mac OS
Работаем через командную строку, но правки в файлах намного быстрее делать через сторонние редакторы, например, Sublime Text.
Устанавливаем apache
Перенастроим дефолтный конфигурационный файл:
1. Меняем директорию для сайтов
#<Directory "/usr/local/var/www">
на
<Directory "/Users/Dream/Sites/">
2. Меняем порт
на
Теперь сможем заходить на локальные сайты без указания порта
3. Меняем директиву AllowOverride
Обяжем Apache использовать файлы .htaccess.
на
4. Раскомментируем строку mod_rewrite
5. Поменяем стандартного пользователя
Group _www
на нашего в системе и меняем его группу на stuff
Group stuff
6. Изменим ServerName
на
Сохраняем файл, но не закрываем, скоро он снова понадобится.
Ставим последнюю версию PHP на Mac OS
Вернемся к файлу настроек апача и сообщим ему, чтобы тот использовал наш PHP. Файл:
В нем переходим к разделу загрузки модулей, видим там
Добавляем после этого
Также заменяем в этом файле
DirectoryIndex index.html
</IfModule>
на
DirectoryIndex index.php index.html
</IfModule>
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
Сохраняем, но опять не закрываем файл, он понадобится и дальше.
Запустить сервис PHP
Перезагрузка сервиса
Посмотреть все сервисы
Настройки для PHP указанной выше версии будут здесь:
После изменения обязательно надо перегрузить все сервисы (не только PHP)
Устанавливаем MySQL на Mac OS
Для управления БД через веб-интерфейс можно установить phpMyAdmin
А можно использовать сторонние программы, типа Sequel Pro
Если был установлен phpmyadmin, то допишем в файл httpd.conf
<Directory /usr/local/share/phpmyadmin/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
<IfModule mod_authz_core.c>
Require all granted
</IfModule>
<IfModule !mod_authz_core.c>
Order allow,deny
Allow from all
</IfModule>
</Directory>
Если после этого сразу зайти в phpmyadmin или через любое другое приложение, будет ошибка:
mysqli_real_connect(): The server requested authentication method unknown to the client [caching_sha2_password]
mysqli_real_connect(): (HY000/2054): The server requested authentication method unknown to the client
В MySQL 8 изменили аутентификацию с mysql_native_password на caching_sha2_password, как на более безопасную. Если мы хотим входить как и раньше, то внесем изменения.
Перегрузим все сервисы:
Войдем внутрь MySQL
Должны зайти на сервер:
Добавим старую авторизацию и пароль: password
Но и этого не достаточно, будут ошибки:
mysqli_real_connect(): (HY000/2002): No such file or directory
mysqli_real_connect (): (HY000 / 2002): нет такого файла или каталога
1. Находим файл
а) Изменим там false на true
б) А вместо
Поставим
2. В конфиг MySQL
Добавим
Теперь всё должно работать! Осталось всё запустить.
Запуск
brew services start mysql
или также для mysql подойдет
Команды для перезапуска:
или
Логи ошибок в веб-сервере на Mac OS
Если что-то пошло не так, можно посмотреть логи ошибок. Например, почему не открывается та или иная страница:
cat httpd/error_log | tail -10