MacOS Локальный веб сервер

Apache

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

$ sudo apachectl start

Чтобы проверить работоспособность Apache, открываем браузер и в адресной строке пишем

http://localhost/

После этого должна открыться страница с надписью It works!

PHP

Подключаем к Apache PHP. Для этого переходим в каталог /etc/apache2/

$ cd /etc/apache2/

Изменяем файл httpd.conf

$ sudo nano httpd.conf

Раскомментируем следующую строчку

LoadModule php7_module libexec/apache2/libphp7.so

Перезагружаем Apache

$ sudo apachectl restart

По умолчанию файлы сервера храняться в /Library/WebServer/Documents, чтобы проверить подключился ли у нас PHP и его параметры, создаем в каталоге Library/WebServer/Documents файл phpinfo.php

$ sudo su
$ echo '<?php phpinfo(); ?>' > /Library/WebServer/Documents/phpinfo.php
$ exit

Посмотреть результат можно тут http://localhost/phpinfo.php

MySQL

Скачиваем сервер MySQL с официального сайта в виде DMG архива http://dev.mysql.com/downloads/mysql/ и устанавливаем в систему.

В ходе установки отобразиться окно сообщающая, о сгенерированном пароле для пользователя root (часть после root@localhost: ). Запоминаем его и нажимаем ОК.

macos MySQL Server Install

После установки в Системных настройках открываем MySQL. В открывшемся окне запускаем сервер и отмечаем (если не отмечен) пункт Automatically Start MySQL Server on Startup (Автоматический запуск MySQL сервера при загрузки системы).

Размещение файлов на веб-сервере

По умолчанию файлы веб-сервера сайта располагаются в каталоге /Library/WebServer/Documents/ и доступны по адресу http://localhost. Данное расположение не совсем удобно для работы, в связи с ограничениями на доступ от обычного пользователя. Поэтому в домашней папке создадим каталог webServer. Далее создадим файл настроек apache

$ sudo nano /etc/apache2/users/username.conf

где username — имя пользователя, чтобы его узнать можно воспользоваться командой в терминале users, которая выведет имя текущего пользователя.

В созданном файле укажем следующее

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

Теперь откроем файл /etc/apache2/httpd.conf

$ sudo nano /etc/apache2/httpd.conf

и раскомментируем следующие строки

LoadModule authn_core_module libexec/apache2/mod_authn_core.so
LoadModule authz_host_module libexec/apache2/mod_authz_host.so
LoadModule rewrite_module libexec/apache2/mod_rewrite.so
LoadModule userdir_module libexec/apache2/mod_userdir.so
LoadModule vhost_alias_module libexec/apache2/mod_vhost_alias.so
Include /private/etc/apache2/extra/httpd-userdir.conf
Include /private/etc/apache2/extra/httpd-vhosts.conf

После этого внесем изменения в файл /etc/apache2/extra/httpd-userdir.conf

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

Раскомментировав строку Include /private/etc/apache2/users/*.conf

После этого внести информацию о виртуальных хостах сайтов в файл /etc/apache2/extra/httpd-vhosts.conf

$ sudo nano /etc/apache2/extra/httpd-vhosts.conf

следующего вида

<VirtualHost *:80>
    ServerAdmin support@aztom.ru
    DocumentRoot "/Users/username/webServer/site_main"
    ServerName site-main
    ServerAlias www.site-main
    ErrorLog "/Users/username/webServer/site_main-error_log"
    CustomLog "/Users/username/webServer/site_main-access_log" common
</VirtualHost>

Отредактируем файл /etc/hosts

$ sudo nano /etc/hosts

добавив строку с указанием ip сервера и именем сайта.

127.0.0.1 site-main

Перезагружаем apache

$ sudo apachectl restart