Как уже писал в прошлом посте, что решил в новогодние каникулы погонять свой мак максимально возможно и поставить все что было у меня на винде и вот встал вопрос об установке Веб сервера под Мак и данная статья будет пошаговой инструкцией как запустить встроенный веб сервер Apache с подключением PHP и MySQL.
т.к. я буду 100% натыкаться на какие нибудь «вилы» то эта статья будет постоянно дополняться + буду ждать комментарии от Вас
Давайте для удобства разобьем эту статью на подпункты:
[contents]
Включаем встроенный WEB Server Apache
Приведенный материал является универсальным и будет полезен пользователям любых операционных систем.
Включить веб-сервер можно в настройках: Системные настройки > Общий доступ > включить службу Общий веб-доступ.
Если набрать в адресной строке браузера http://localhost/
, то сервер вернет страницу с текстом «It works!».
Либо можно запустить Apache через командную строку Терминала набрав след команду:
sudo apachectl start
Конфигурация Apache
Для конфигурации 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
Конфигурация виртуальных хостов
Все проекты будут размещаться в каталоге пользователя Сайты (/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
Проверка и тестирование результата
Теперь, если перейти по адресу 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.
Всем удачи и хороших зимних каникул!
Здавствуйте. Никак не получается настроить все правильно. 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$
не очень понимаю что работает а что нет. напишите более подробно
Проверьте, насколько верно записали данные в файл:
/private/etc/apache2/extra/httpd-vhosts.conf
У меня, например, скопировалось как:
<VirtualHost *:80>
А должно быть:
То есть появились лишние символы. Пройдитесь по всем строчкам и исправьте остальное.
В комментарии строчка отобразилась по-другому, чем писал. Вторая вообще не показалась…
Смысл в том, что возможно пример кода для httpd-vhosts.conf, приведённый автором может скопироваться неверно. Отсюда могут и ошибки.
P.S. Автор, спасибо, всё заработало. Впрочем, пришлось немного поломать голову — как писал выше, некоторый код неверно отобразился.
спасибо проверю!
Спасибо! У меня получилось. Но с трудом)
В статье не сказано что надо раскомментировать это:
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
Красавчик автор
Не работает, ошибка:
Forbidden
You don’t have permission to access / on this server.
Помогла правка имя сервера в: 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
Помучался но все получилось) Хорошо до комментариев промотал и прочитал. Спасибо за труды!!!! как раз сейчас нужен локальный сервер для учебы. 💡 💡 💡