Запуск WEB сервера под MAC OS x

mac os web server Apple

Как уже писал в прошлом посте, что решил в новогодние каникулы погонять свой мак максимально возможно и поставить все что было у меня на винде и вот встал вопрос об установке Веб сервера под Мак и данная статья будет пошаговой инструкцией как запустить встроенный веб сервер Apache с подключением PHP и MySQL.

т.к. я буду 100% натыкаться на какие нибудь “вилы” то эта статья будет постоянно дополняться + буду ждать комментарии от Вас

Давайте для удобства разобьем эту статью на подпункты:
[contents]

Включаем встроенный WEB Server Apache

mac os Apache
фото 1. Включение в Mac OS веб сервера Apache

Приведенный материал является универсальным и будет полезен пользователям любых операционных систем.

Включить веб-сервер можно в настройках: Системные настройки > Общий доступ > включить службу Общий веб-доступ.

Если набрать в адресной строке браузера http://localhost/, то сервер вернет страницу с текстом «It works!».

Либо можно запустить  Apache через командную строку Терминала набрав след команду:

sudo apachectl start

 

Конфигурация Apache

Конфигурация Apache в MAC OS
Фото 2. Конфигурация Apache в MAC OS

Для конфигурации Apache необходимо открыть файл /etc/apache2/httpd.conf:

sudo nano /etc/apache2/httpd.conf

Раскомментируем ServerName  и приведем ее к такому виду:
ServerName localhost
Далее подключаем PHP (необходимо раскомментировать строку):

LoadModule php5_module libexec/httpd/libphp5.so

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

DocumentRoot "/Library/WebServer/Documents"

на

DocumentRoot "/Users/имя_пользователя/Sites"

Аналогично заменим прежний путь в строке 195:

<Directory "/Library/WebServer/Documents">

на

<Directory "/Users/имя_пользователя/Sites">

 

Далее в строке 230 пропишем какие типы файлов и в какой последовательности должен обрабатывать Apache:

DirectoryIndex index.php index.html

 

В строке 469, чтобы подключить файл в котором будем записывать виртуальные хосты:

Include /private/etc/apache2/extra/httpd-vhosts.conf

Сохраняем все изменения в файле httpd.conf и перезапускаем Apache.

sudo apachectl restart

После этого переходим в браузере по адресу http://localhost/, загрузится стартовая страница из папки сайты с приветствием “Ваш веб-сайт”.

Теперь проверим работоспособность PHP, для этого создадим в нашем  каталоге Sites тестовый PHP-скрипт:

touch ~/Sites/index.php
sudo nano ~/Sites/index.php

и напишем сценарий, который покажет конфигурацию PHP:

<?php
phpinfo();
?>

Сохраняем файл index.php и вновь переходим по адресу http://localhost/, должна открыться страница с информацией о версии PHP. Если по прежнему загружается страница приветствия, необходимо проверить настройки Apache (строка 230).

(дополнение от 4.01.2016)

Обязательно нужно еще проделать операцию с конфигурационным файлом php.ini он находится в папке /etc/php.ini.defaults, его необходимо переименовать в php.ini:

sudo cp /etc/php.ini.default /etc/php.ini

Конфигурация виртуальных хостов

apache virtual host example
Фото 3. Конфигурация виртуальных хостов в Apache на mac os

Все проекты будут размещаться в каталоге пользователя Сайты (/Users/имя_пользователя/Sites/). Создадим в этом каталоге новую папку с названием test, а в ней файл index.php с тестовым скриптом. Локальный сайт будет открываться по адресу http://test/. Переходим к командной строке и вводим следующие команды:
mkdir ~/Sites/test
cd ~/Sites/test
touch index.php
nano index.php

и добавим сценарий:

<?php
phpinfo();
?>

Теперь займемся конфигурацией виртуальных хостов. Для начала откроем файл /etc/hosts и добавим в исключения адрес локального сайта (http://test/). Переходим к командной строке:

sudo nano /etc/hosts

и добавляем строчку:

127.0.0.1 test

Добавим записи с конфигурацией нового виртуального хоста:

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

И в конец файла добавляем записи:

<VirtualHost *:80>
    ServerAdmin webmaster@test
    DocumentRoot "/Users/имя_пользователя/Sites/test"
    ServerName test
    <Directory "/Users/имя_пользователя/Sites/test">
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

Сохраняем изменения и перезапускаем Apache

sudo apachectl restart

 

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

 тестирование веб сервера
фото 4. Тестирование веб сервера Hello Word

Теперь, если перейти по адресу http://test/откроется страница с приветствием «Hello world!»

Если ни чего не получилось, то возвращаемся в начало статьи и делаем все заново и внимательнее, если и после ни чего не получилось, то смотрим где у нас в конфигурационном файле httpd.conf лежит лог файл (по умолчанию он выглядит так  ErrorLog “/private/var/log/apache2/error_log”  и если Вы ничего не изменяли, то смотрите логи /private/var/log/apache2/error_log и присылайте ошибки, будем разбираться почему у Вас не работает веб сервер.

Еще можно проверить синтаксические ошибки в файле http.conf настроек командой

		sudo apachectl -t

ВСЕ!

Данная инструкция писалась пошагово, когда я сам настраивал на своем Макбук Веб сервер. Если Вы все делаете в точности по инструкции, то у Вас точно на все 100% получится настроить web server.

Всем удачи и хороших зимних каникул!

admin
Оцените автора
NIBBL
Добавить комментарий

  1. Василий

    Здавствуйте. Никак не получается настроить все правильно. http://localhost работает. Все другое нет. Проверил все 100 раз.
    Вот ошибки.Спасибо!
    [Sat Oct 15 18:37:58.937155 2016] [mpm_prefork:notice] [pid 2578] AH00163: Apac$
    [Sat Oct 15 18:37:58.937445 2016] [core:notice] [pid 2578] AH00094: Command lin$
    [Sat Oct 15 18:44:58.203894 2016] [mpm_prefork:notice] [pid 2578] AH00169: caug$
    [Sat Oct 15 18:45:07.396358 2016] [mpm_prefork:notice] [pid 2706] AH00163: Apac$
    [Sat Oct 15 18:45:07.396504 2016] [core:notice] [pid 2706] AH00094: Command lin$
    [Sat Oct 15 18:58:34.899385 2016] [mpm_prefork:notice] [pid 2706] AH00169: caug$

    Ответить
    1. nibbl

      не очень понимаю что работает а что нет. напишите более подробно

      Ответить
    2. launuapaso

      Проверьте, насколько верно записали данные в файл:
      /private/etc/apache2/extra/httpd-vhosts.conf

      У меня, например, скопировалось как:

      <VirtualHost *:80>

      А должно быть:

      То есть появились лишние символы. Пройдитесь по всем строчкам и исправьте остальное.

      Ответить
      1. launuapaso

        В комментарии строчка отобразилась по-другому, чем писал. Вторая вообще не показалась…

        Смысл в том, что возможно пример кода для httpd-vhosts.conf, приведённый автором может скопироваться неверно. Отсюда могут и ошибки.

        P.S. Автор, спасибо, всё заработало. Впрочем, пришлось немного поломать голову – как писал выше, некоторый код неверно отобразился.

        Ответить
      2. admin автор

        спасибо проверю!

        Ответить
  2. Бекжан

    Спасибо! У меня получилось. Но с трудом)

    В статье не сказано что надо раскомментировать это:
    Include /private/etc/apache2/extra/httpd-vhosts.conf

    И надо удалить примеры виртуальных хостов написать свои, к примеру:

    ServerAdmin webmaster@school.loc
    DocumentRoot “/Users/sbeka/Sites/school.loc”
    ServerName school.loc

    AllowOverride All
    Order allow,deny
    Allow from all

    Ответить
  3. Andrey Stalnoy

    Красавчик автор

    Ответить
  4. Андрей

    Не работает, ошибка:
    Forbidden
    You don’t have permission to access / on this server.

    Ответить
    1. Андрей

      Помогла правка имя сервера в: sudo nano /private/etc/apache2/extra/httpd-vhosts.conf

      Код:

      ServerAdmin webmaster@test
      DocumentRoot “/Users/ИМЯ_ПОЛЬЗОВАТЕЛЯ/sites”
      ServerName localhost

      AllowOverride All
      Order allow,deny
      Allow from all

      Ответить
  5. Dmitriy

    Помучался но все получилось) Хорошо до комментариев промотал и прочитал. Спасибо за труды!!!! как раз сейчас нужен локальный сервер для учебы. 💡 💡 💡

    Ответить