- Настройка виртуальных хостов Apache в macOS
- Подключаем vhosts
- Настраиваем виртуальные хосты
- Редактирование /etc/hosts
- Настраиваем права доступа
- Проверка работы
- Jason McCreary I build things with my hands
- What are Virtual Hosts?
- A Cleaner Configuration
- Mapping the .local extension
- A note about permissions
- In Closing
- Запуск WEB сервера под MAC OS x
- Включаем встроенный WEB Server Apache
- Конфигурация Apache
- Конфигурация виртуальных хостов
- Проверка и тестирование результата
- Настройка виртуальных хостов в Apache под Mac OS X
- Настройка виртуальных хостов
- И немного о правах
Настройка виртуальных хостов Apache в macOS
В данной статье я расскажу, как добавить виртуальные хосты в Apache.
Виртуальные хосты предназначены для того, чтобы создавать несколько сайтов на одном сервере. Фактически каждый виртуальный хост представляет собой отдельный сайт, со своим адресом и директорией, где размещаются его файлы.
После установки Apache создается один виртуальный хост с именем localhost. Вы можете открыть его в браузере по адресу http://localhost. Директория, в которой размещаются файлы данного сайта /Library/WebServer/Documents.
Есть несколько способов для добавления своих хостов в Apache. Можно прописать информацию о них в одном файле, а можно создать для каждого хоста свой отдельный конфигурационный файл с соответсвующим именем. Я буду использовать второй способ.
Файлы с настройками хостов мы будем размещать в одной директории /private/etc/apache2/vhosts. Файлы будут иметь имена вида mysite.local.conf.
Подключаем vhosts
Сначала нам нужно отредактировать конфигурационный файл Apache. Необходимо добавить в него директиву, которая будет подключать директорию, в которой мы будем создавать конфигурационные файлы хостов.
Откройте файл для редактирования, для этого выполните в терминале команду:
Найдите в файле строку #Include /private/etc/apache2/extra/httpd-vhosts.conf .
Под этой строкой добавьте новую строку:
Сохраните изменения и закройте файл. Чтобы закрыть файл и сохранить изменения, нажмите Ctrl+X, затем введите Y и нажмите Enter.
Мы добавили директиву, которая говорит о том, что Apache должен подключать все файлы с расширением .conf из директории /private/etc/apache2/vhosts.
Настраиваем виртуальные хосты
Создадим директорию /private/etc/apache2/vhosts , которую мы добавили в кофигурацию Apache на предыдущем шаге. Чтобы создать директорию выполните в терминале команду:
Перейдем в эту директорию:
Создадим конфигурационный файл _default.conf. В нем мы пропишем конфигурацию виртуального сервера по умолчанию. Создайте новый файл, выполнив в терминале:
Введите следующую конфигурацию:
Сохраните и закройте файл.
Теперь создадим конфигурацию для нашего виртуального хоста (сайта). Для примера мы будем создавать сайт с адресом mysite.local, а файлы сайта будем размещать в домашней директории в каталоге mysite (полный путь будет иметь вид /Users/Yury/mysite, вместо Yury должно быть ваше имя пользователя).
Выполните в терминале:
В конфигурации мы указали директорию (/Users/Yury/mysite), в которой располагаются файлы нашего сайта. Задали адрес сайта mysite.local. Указали, где будут храниться лог файлы с ошибками и информацией о доступе к сайту.
Прежде, чем наш сайт станет доступен по адресу http://mysite.local необходимо добавить информацию о нем в файл /etc/hosts.
Редактирование /etc/hosts
В файле /etc/hosts прописывается соответсвие IP адреса и текстовый адрес хоста (что-то вроде локального DNS).
Нам нужно добавить наш адрес mysite.local. Для этого откройте файл /etc/hosts:
И добавьте в файл строку:
Настраиваем права доступа
Иногда требуется выставить правильные права доступа на директорию, в которой хранятся файлы сайта. Если этого не сделать, то при доступе к сайту мы получим ошибку 403 Forbidden. Такую же ошибку мы получим, если директории не существует.
В нашем случае нам нужно установить права доступа на директорию /Users/Yury/mysite. Для этого выполните в терминале команду:
Проверка работы
Теперь наберите в браузере адрес сайта: http://mysite.local
Если все пройдет успешно, то вы увидете ваш сайт.
Источник
Jason McCreary I build things with my hands
Main Thread November 30, 2014 • 5 min read
mountaindogmedia left the following comment on my post for installing Apache, PHP, and MySQL on Mac OS X:
Jason, have you tried a modified Include statement for virtual hosts to map a directory? So instead of /etc/apache2/extra/httpd-vhosts.conf as indicated, one would use /etc/apache2/extra/vhosts/*.conf and then just create a default.conf for the first virtual host, and then add/edit/delete vhost files as needed. I think it would be easier to manage host files and changes.
Indeed, mountaindogmedia, this is an easier way. In fact, this is the default configuration for many servers.
By default, the Apache Virtual Host configuration on Mac OS X is located in a single file: /etc/apache2/extra/httpd-vhosts.conf . You need to edit the Apache configuration to include this file and enable virtual hosts.
Over the years, I have created many virtual hosts. Each time editing httpd-vhosts.conf . To mountaindogmedia’s point, this becomes difficult to manage. Furthermore, Apache configurations often get reset when upgrading Mac OS X. In the same amount of steps (two), you can adopt a more manageable configuration.
What are Virtual Hosts?
The term Virtual Host refers to the practice of running more than one web site on a single machine.
By default, the Apache configuration on Mac OS X serves files from /Library/WebServer/Documents accessed by the name locahost . This is essentially a single site configuration. You could mimic multiple sites by creating subdirectories and access a site at localhost/somesite .
This is not ideal for several reasons. Primarily, we would rather access the site using a name like somesite.local . To do that, you need to configure virtual hosts.
A Cleaner Configuration
First, open the Terminal app and switch to the root user to avoid permission issues while running these commands.
Edit the Apache configuration file:
Find the following line:
Below it, add the following line:
This configures Apache to include all files ending in .conf in the /private/etc/apache2/vhosts/ directory. Now we need to create this directory.
Create the default virtual host configuration file.
Add the following configuration:
I create this file to serve as the default virtual host. When Apache can not find a matching virtual host, it will use the first configuration. By prefixing this file with an underscore, Apache will include it first. Techincally this file is not needed as it simply repeats the configuraton already in httpd.conf . However, it provides a place to add custom configuration for the default virtual host (i.e. localhost ).
Now you can create your first virtual host. The example below contains the virtual host configuration for my site. Of course, you will want to substitute jasonmccreary.me with your domain name.
Create the virtual host configuration file:
Add the following configuration:
This VirtualHost configuration allows me to access my site from http://jasonmccreary.local for local development.
Note: I use the extension local. This avoids conflicts with any real extensions and serves as a reminder I am developing in my local environment.
Note: The Require all granted configuration became available in Apache 2.4 which comes with Mac OS X Yosemite. If you are running a version of OS X before Yosemite, use the equivalent 2.2 configuration in the upgrading Apache examples.
The final step is to restart Apache:
If you run into any problems, run:
This will test your Apache configuration and display any error messages.
Mapping the .local extension
In order to access sites locally you need to edit your hosts file.
Add a line to the bottom of this file for your virtual host. It should match the value you used for the ServerName configuration. For example, my site:
I like to run the following to clear the local DNS cache:
Now you can access your site using the .local extension. For example, http://jasonmccreary.local.
A note about permissions
You may receive 403 Forbidden when you visit your local site. This is likely a permissions issue. Simply put, the Apache user ( _www ) needs to have access to read, and sometimes write, to your web directory.
If you are not familiar with permissions, read more. For now though, the easiest thing to do is ensure your web directory has permissions of 755 . You can change permissions with the command:
In my case, all my files were under my local
/Documents directory. Which by default is only readable by me. So I had to change permissions from my web directory all the way up to
/Documents to resolve the 403 Forbidden issue.
Note: There are many ways to solve permission issues. I have provided this as the easiest solution, not the best.
In Closing
Any time you want to add a site to Apache on your Mac, simply create a virtual host configuration file for that site and map it in your hosts file.
Find this interesting? Let’s continue the conversation on Twitter.
Источник
Запуск WEB сервера под MAC OS x
Как уже писал в прошлом посте, что решил в новогодние каникулы погонять свой мак максимально возможно и поставить все что было у меня на винде и вот встал вопрос об установке Веб сервера под Мак и данная статья будет пошаговой инструкцией как запустить встроенный веб сервер 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:
Далее в строке 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-скрипт:
/Sites/index.php
sudo nano
и напишем сценарий, который покажет конфигурацию PHP:
Сохраняем файл 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
touch index.php
nano index.php
и добавим сценарий:
Теперь займемся конфигурацией виртуальных хостов. Для начала откроем файл /etc/hosts и добавим в исключения адрес локального сайта ( http://test/ ). Переходим к командной строке:
sudo nano /etc/hosts
и добавляем строчку:
127.0.0.1 test
Добавим записи с конфигурацией нового виртуального хоста:
sudo nano /private/etc/apache2/extra/httpd-vhosts.conf
И в конец файла добавляем записи:
Сохраняем изменения и перезапускаем 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 настроек командой
Данная инструкция писалась пошагово, когда я сам настраивал на своем Макбук Веб сервер. Если Вы все делаете в точности по инструкции, то у Вас точно на все 100% получится настроить web server.
Источник
Настройка виртуальных хостов в Apache под Mac OS X
По умолчанию настройки виртуальных хостов Apache на Mac OS X находятся в файле /etc/apache2/extra/httpd-vhosts.conf
Для начала открываем терминал и переходим в root режим:
Далее редактируем файл конфигураций Apache:
Найдите в нем следующую строчку:
И замените ее на:
Теперь нам необходимо создать эту папку:
Создайте конфигурационный файл виртуального хоста по умолчанию:
И добавляем в него:
Этот файл служит в качестве виртуального хоста по умолчанию. Когда Apache не может найти соответствующий виртуальный хост, он будет использовать первую конфигурацию. Технически этот файл не нужен, поскольку он просто повторяет конфигурации из http.conf. Тем не менее, он обеспечивает локальную настройку сервера.
Создайте файл конфигурации виртуального хоста:
И добавьте в него следующее:
Перезагрузим веб — сервер Apache:
Если у вас возникли какие-нибудь проблемы, попробуйте выполнить команду, которая проверит настройки:
Настройка виртуальных хостов
Для того, чтобы у вас заработал сайт в браузере, по пути site.loc необходимо отредактировать файл hosts:
Добавьте строчку в конце файла. Имя хоста должно соответствовать ServerName в настройках Apache:
Чтобы очистить локальный кеш DNS, выполните следующую команду:
Теперь можно запрашивать наш сайт по http://site.loc
Проверить ошибки в настройках сервера можно с помощью команды:
И немного о правах
При запросе вашего сайта, вы можете получить в ответ 403 Forbidden, вероятно, это проблема с правами на чтение. Проще говоря, пользователь Apache не имеет на это прав.
Выполните следующую команду, чтобы это исправить:
Источник