Web server mac os настройка

Обновлено: 25.06.2024

Сегодня рассмотрим алгоритм минимальной настройки предустановленных в систему MacOS инструментов для тестирования и разработки проектов. По факту настройки получим локальный веб сервер Apache, phpMyAdmin, MySql и синхронизацию проектов с помощью iCloud Drive. На все про все уйдет минут 10. Для любителей усваивать информацию в формате видео, в самом конце подробный ролик, в описании ролика находится ссылка для загрузки необходимых файлов и всего алгоритма в формате PDF.

1. Настройка vhosts

3. Распаковка phpMyAdmin

4. Установка и настройка MySql

5. Редактирование hosts

Настройка vhosts

-создаем папку vhosts по пути /private/etc/apache2/

команда для создания в терминале

-создаем дефолтный конфиг _default.conf

команды для создания и наполнения в терминале

1. Переходим в папку vhosts

2.Создаем конфиг

3. Заполняем конфиг

<VirtualHost *:80>
DocumentRoot "/Library/WebServer/Documents"
</VirtualHost>

после заполнения в терминале необходимо нажать control + x, затем "Y" и enter для сохранения изменений

-создаем конфиг под проект mysite.local (пример проекта)

<VirtualHost *:80>
DocumentRoot "ПУТЬ ПРОЕКТА"
ServerName mysite.local
ErrorLog "/private/var/log/apache2/mysite.local-error_log"
CustomLog "/private/var/log/apache2/mysite.local-access_log" common
<Directory "ПУТЬ ПРОЕКТА">
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
после заполнения в терминале необходимо так же нажать control + x, затем "Y" и enter для сохранения изменений

Путь iCloud Drive - /Users/ПОЛЬЗОВАТЕЛЬ/Library/Mobile Documents/com

Путь который использую я (для примера) - /Users/egor/Library/Mobile Documents/com

LoadModule rewrite_module libexec/apache2/ mod_rewrite.so
LoadModule php7_module libexec/apache2/ libphp7.so

вместо _www добавить пользователя и группу, мой вариант для примера

3. Подключаем vhosts после строки "Include /private/etc/apache2/extra/httpd-mpm.conf"

Распаковка phpMyAdmin

-Распаковываем zip архив с phpMyAdmin по пути /Library/WebServer/Documents

-Меняем имя папки из архива на "phpmyadmin"

-Переходим в папку посредством терминала

-Копируем config.sample.inc.php в config.inc.php

Установка и настройка MySql

1. Создаем папку mysql в каталоге var

2. Создаем псевдоним mysql.sock из temp в созданную папку
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'ПАРОЛЬ';

-Выходим из MySql

Редактирование hosts

-Добавляем 127.0.0.1 mysite.local

Локальный веб-сервер на Mac Os Macbook, Mac Os, Терминал, Урок, Видео, Длиннопост

после правок в hosts необходимо нажать control + x, затем "Y" и enter для сохранения изменений

После подобной настройки на двух и более устройствах Apple с одинаковым Apple iD и включенным iCloud Drive, можно работать с проектами на разных устройствах.

Admin 20.09.2019 , обновлено: 10.02.2021 Localhost, Mac OS, MySQL, PHP, VPS

Инструкция по установке локального веб-сервера на Mac OS.

Далее ниже будем настраивать веб-сервер самостоятельно, без использования сторонних программ. Благо Mac OS является UNIX системой и настройка веб-сервера почти не отличается от Linux серверов.

Для установки веб-сервера можно воспользоваться готовыми решениями. Например, MAMP PRO. Но если хочется hardcor-а или не хочется платить за готовые решения, то это статья для вас.

Ставим менеджер пакетов для Mac OS

Ставим apache на Mac OS

Работаем через командную строку, но правки в файлах намного быстрее делать через сторонние редакторы, например, Sublime Text.

Устанавливаем apache


Перенастроим дефолтный конфигурационный файл:

1. Меняем директорию для сайтов

DocumentRoot "/Users/Dream/Sites/"
<Directory "/Users/Dream/Sites/">

2. Меняем порт

Теперь сможем заходить на локальные сайты без указания порта


3. Меняем директиву AllowOverride

Обяжем Apache использовать файлы .htaccess.

4. Раскомментируем строку mod_rewrite

5. Поменяем стандартного пользователя

на нашего в системе и меняем его группу на stuff

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

В этом случае в строке указываем именного этого пользователя:

6. Изменим ServerName

Сохраняем файл, но не закрываем, скоро он снова понадобится.

Ставим последнюю версию PHP на Mac OS

Вернемся к файлу настроек апача и сообщим ему, чтобы тот использовал наш PHP. Файл:

В нем переходим к разделу загрузки модулей, видим там

Добавляем после этого

Также заменяем в этом файле

<IfModule dir_module>
DirectoryIndex index.html
</IfModule>

<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>

Сохраняем, но опять не закрываем файл, он понадобится и дальше.

Запустить сервис PHP

Посмотреть все сервисы

Настройки для PHP указанной выше версии будут здесь:

После изменения обязательно надо перегрузить все сервисы (не только PHP)

Устанавливаем PostgreSQL на Mac OS

Устанавливаем MySQL на Mac OS

Для управления базой данных через веб-интерфейс также можно установить phpMyAdmin:

Или использовать сторонние программы, типа Sequel Pro

Если был установлен phpmyadmin, то допишем в файл:

Alias /phpmyadmin /usr/local/share/phpmyadmin
<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

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

Но и этого не достаточно, будут ошибки:

mysqli_real_connect(): (HY000/2002): No such file or directory
mysqli_real_connect (): (HY000 / 2002): нет такого файла или каталога

а) Изменим там false на true

2. В конфиг MySQL

default_authentication_plugin = mysql_native_password

Теперь всё должно работать! Осталось всё запустить.

По умолчанию адрес доступа в phpmyadmin

Запуск

или также для mysql подойдет

Команды для перезапуска:

Посмотреть все сервисы:

Логи ошибок в веб-сервере на Mac OS

Если что-то пошло не так, можно посмотреть логи ошибок. Например, почему не открывается та или иная страница:

Ошибки при перезагрузке apache

Если ничего не работает, обязательно надо попробовать перезагрузить apache именно так:

а) Попробовать обновить homebrew:

Обновить php или установить новую версию php:

И еще раз перезагрузить сервисы

б) Заменить вручную.

Проверим версию php:

php -v
PHP 8.0.0 (cli) (built: Nov 30 2020 13:51:52) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.0-dev, Copyright (c) Zend Technologies
with Zend OPcache v8.0.0, Copyright (c), by Zend Technologies

Если покажет что-то вроде:

И снова запустим:

(48)Address already in use: AH00072

Ошибка появилась в Mac OS Big Sur

Меняем значение в Listen на такое:

Ошибка при импорте базы данных

Надо увеличить лимиты:

post_max_size = 32M
upload_max_filesize = 124M
memory_limit = 1024M

Которые устанавливаются в файл php.ini:

Версия php может быть любой другой, которая была установлена.

Снова перезагрузим все сервисы

После этого (не всегда), чтобы сразу заработало нужно выйти и заново зайти в phpMyAdmin.

Другие ошибки

И воспользоваться подсказками. Например:

Warning: Homebrew 's sbin was not found in your PATH but you have installed
formulae that put executables in /usr/local/sbin.
Consider setting the PATH for example like so:
echo ' export PATH = "/usr/local/sbin: $PATH " ' >>

Локальное подключение к БД

Подключиться можно разными сторонними программами. На примере программы DataGrip:


В поле password пароль будет password.

Кстати, на сайте нет рекламы. У сайта нет цели самоокупаться, но если вам пригодилась информация можете задонатить мне на чашечку кофе в макдаке. Лайкнуть страницу или просто поблагодарить. Карма вам зачтется.

Комментарии к статье “ Устанавливаем веб-сервер на Mac OS ” (9)

Добрый день, как связаться с автором статьи?

Что именно вас интересует?

mysql> root@localhost [(none)]>
-> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'root@localhost [(none)]>
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_nat' at line 1

Проблема может быть в кавычке. Посмотрите совет в конце этой статьи.

Та же проблема, мак ос биг сур.
как правильно прописать? Я пробую заменить все ковычки на скошенную все равно синтаксическая ошибка

Установка Apache, PHP, MySQL в macOS

Рассмотрим, как установить веб-сервер Apache, PHP и MySQL в macOS.

Все действия в данной статье будут выполняться в macOS Sierra.

Установка Apache

Хорошая новость — веб-сервер Apache уже установлен в вашей системе. Его нужно только запустить. Для этого откройте терминал и выполните в терминале команду:

Данной командной мы выполняем утилиту apachectl с правами суперпользователя (так как перед командной мы вводим sudo) и передаем утилите опцию start. Обратите внимание, что после того, как вы нажмете Enter, необходимо будет ввести пароль, который вы используете для входа в систему. При вводе пароля на экране не будет никакой индикации или символов, которые вы вводите. Просто введите пароль и нажмите Enter.

Проверка работы Apache. Localhost

Файлы localhost'а лежат в директории /Library/WebServer/Documents .

Установка PHP

И снова хорошая новость — PHP уже установлен. Нужно только включить его поддержку веб-сервером.

Для редактирования мы воспользуемся консольным редактором nano . Он простой, но для новичка может оказаться непривычным.

Откроем файл конфигурации:

В файле необходимо раскомментировать строку, которая отвечает за загрузку модуля php5_module:
LoadModule php5_module libexec/apache2/libphp5.so

Включаем PHP в httpd.conf

Теперь закройте и сохраните файл. Для этого нажмите Ctrl + X , отобразится предупреждение " Save modified buffer ", нажмите Y , а затем Enter .

Так как конфигурация сервера изменилась, необходимо перезапустить сервер, чтобы новые параметры вступили в силу. Для перезапуска Apache выполните в терминале команду:

Установка MySQL

Установка MySQL в macOS

В конце установки отобразится окошко, в котором будет написан временный пароль root'а для доступа к MySQL. Запишите его.

Пароль для MySQL при установке

Дополнительные действия после установки MySQL

Теперь снова перезапустите Apache:

Меняем пароль root'а в MySQL

Выше, во время установки MySQL, мы получили временный пароль root пользователя. Однако, его необходимо поменять. Обращаю ваше внимание на то, что речь идеть про пароль пользователя root для MySQL сервера и этот пароль ни как не связан с паролем, который вы используете для входа в систему или при выполнении команд через sudo.

Чтобы задать новый пароль для root пользователя в MySQL необходимо выполнить в терминале ряд команд.

  1. Остановим MySQL сервер, если вдруг он запущен:
  2. Запустим сервер в режиме safe mode:
  3. Запустим консольную утилиту mysql (MySQL Command-Line Tool). Откройте новое окно терминала и выполните:
  4. Введите команду:
  5. Затем установим новый пароль (вместо NewPassword введите свой пароль):
  6. Выйдем из утилиты mysql. Введите команду:

Запуск MySQL сервера из терминала

Запустить MySQL сервер можно из терминала или из Системных настроек.

Для запуска MySQL сервера через терминал выполните команду:

Чтобы остановить сервер выполните:

Запуск MySQL сервера из Системных настроек

В Системных настройках добавился новый пункт MySQL. Можно запускать MySQL сервер оттуда. Там же есть опция для автоматического запуска MySQL сервера при старте системы.

Запуск MySQL сервера в MacOS
Настройки MySQL сервера в Системных настройках macOS
MySQL сервер запущен в macOS

Проверка работоспособности

Как написано выше, файлы сайта localhost находятся в директории /Library/WebServer/Documents. Мы можем для проверки создать PHP файл, в котором выполним функцию phpinfo(). Для этого можно воспользоваться терминалом. Создадим файл /Library/WebServer/Documents/testfile.php и добавим в него вызов функции phpinfo():

phpinfo в Apache

Чтобы проверить, что MySQL сервер работает, и мы можем выполнять действия с базами данных, можно воспользоваться утилитой mysql. Выполните в терминале:

Введите пароль пользователя root и нажмите Enter. Вы попадете в shell для управления MySQL. Введите команду:

Отобразится список текущих баз данных. Завершите работу введя:

Проверка работы MySQL

Заключение

Итак, мы установили Apache, PHP и MySQL в macOS. Следующим шагом будет установка phpMyAdmin и настройка виртуальных хостов (сайтов).

Apache предустановлен в Mac OS и для локальной разработки его более чем хватает.
Маленькая хитрость – если не нужен виртуальный хост, то очень помогает вот такой трюк:


Осталось кинуть проект в

/Sites/%имя_проекта% и открыть в браузере localhost/

%user_name%/%имя_проекта%
На крайний случай, если нужна полная копия production окружения всегда можно установить Vagrant.

PHP предустановлен в Mac OS. Если его версия устраивает, то просто включаем загрузку модуля php5_module:

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

Без него никуда. Маленькая хитрость в настройках:

По-умолчанию выставлено в TRUE и из-за этого Cyberduck открывает новые файлы в новом окне, а не в новой вкладке существующего окна.

Кроме этого, бывает что нужно быстро запустить небольшой кусок PHP кода, а делать это в IDE не удобно. Можно выполнить PHP код из Sublime Text, добавив новую Build System (Tools –> Build System -> New):

Теперь жмем CMD + B и результат работы кода появится в консоли Sublime Text.


  • Автообновление документации с официальных сайтов
  • Оффлайн доступ
  • Шпаргалки (Cheat Sheets)
  • Создание своих сниппетов
  • Интеграция в PhpStorm и Sublime Text

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

Читайте также: