- Создание структуры директорий в Ubuntu с Apache
- Предоставление разрешений
- Создание демонстрационных страниц для каждого виртуального хоста
- Файлы настроек веб-сервера Apache в Ubuntu
- a2enmod и a2dismod
- a2ensite и a2dissite
- a2enconf и a2disconf
- Корневые директории документов веб-сервера Apache в Ubuntu
- Связанные статьи:
Создание структуры директорий в Ubuntu с Apache
Прежде всего, нам потребуется создать структуру директорий, где будут храниться данные сайтов, которые мы будем выводить посетителям.
Наша корневая директория документов (директория верхнего уровня, где Apache ищет выводимый контент) будет задана как отдельные директории в директории /var/www . Здесь мы создадим директории для каждого из виртуальных хостов, которые мы планируем создать.
В каждом из этих директорий мы создадим папку public_html для хранения файлов. Это даст нам определенную гибкость в отношении хостинга.
Например, мы будем создавать директории для наших сайтов следующим образом:
sudo mkdir -p /var/www/название_домена.com/public_html // создаем директорию для первого сайта sudo mkdir -p /var/www/название_домена.com/public_html // создаем директорию для второго сайта
Предоставление разрешений
Теперь у нас имеется структура директорий для наших файлов, но они принадлежат пользователю root . Если мы хотим, чтобы обычный пользователь имел возможность изменять файлы в веб-директориях, мы можем изменить структуру владения следующим образом:
sudo chown -R $USER:$USER /var/www/название_домена.com/public_html // назначаем пользователя для первого сайта sudo chown -R $USER:$USER /var/www/название_домена.com/public_html // назначаем пользователя для второго сайта
Переменная $USER будет принимать значение текущего пользователя в системе при нажатии клавиши ENTER . Так наш обычный пользователь теперь является владельцем субдиректорий public_html , где мы будем хранить наш контент.
Также нам необходимо изменять разрешения, чтобы обеспечить доступ для чтения к общей веб-директории и всем содержащимся в ней файлам и папкам, чтобы страницы могли выводиться надлежащим образом:
sudo chmod -R 775 /var/www // меняем права в директории сайта
Теперь ваш веб-сервер должен иметь необходимые разрешения для вывода контента, а ваш пользователь должен иметь права создания контента в соответствующих папках.
Создание демонстрационных страниц для каждого виртуального хоста
Теперь у нас имеется структура директорий. Давайте создадим контент для вывода. Для демонстрационных целей мы создадим страницу index.html для каждого сайта.
Начнем с первого домена, создаем файл index.html в текстовом редакторе, в данном случае мы используем nano:
nano /var/www/название_домена.com/public_html/index.html // создаем индексную HTML страницу через блокнот nano
В этом файле мы создадим документ HTML, указывающий на связанный с ним сайт. Документ будет выглядеть так:
Success! The example.com virtual host is working!
Сохраните и закройте файл (в nano нажмите CTRL + X , затем Y и ENTER ) после завершения редактирования.
Создаем файл index.php в текстовом редакторе, в данном случае мы используем nano:
nano /var/www/название_домена.com/public_html/index.php // создаем индексную PHP страницу через блокнот nano
В этом файле мы создадим документ PHP, указывающий информацию о версии. Документ будет выглядеть так:
Сохраните и закройте файл (в nano нажмите CTRL + X , затем Y и ENTER ) после завершения редактирования.
Мы можем скопировать эти файлы и использовать в качестве основы для нашего второго сайта.
Файлы настроек веб-сервера Apache в Ubuntu
Расположение конфигурационных файлов установленного веб-сервера Apache2 на системах Ubuntu выглядит следующим образом:
/etc/apache2/ |-- apache2.conf | `-- ports.conf |-- mods-enabled | |-- *.load | `-- *.conf |-- conf-enabled | `-- *.conf |-- sites-enabled | `-- *.conf
apache2.conf – это главный конфигурационный файл. Он содержит настройки, а также собирает настройки из всех других конфигурационных файлов для соединения этих частей в целое при запуске веб-сервера.
ports.conf всегда включается в настройку главным конфигурационным файлом. Он используется для определения прослушиваемых портов для входящих соединений, этот файл можно настроить в любое время.
Конфигурационные файлы в директориях mods-enabled/, conf-enabled/ и sites-enabled/ содержат определённые куски конфигурации, которые, соответственно, управляют модулями, глобальными фрагментами конфигурации или настройками виртуальных хостов.
Они активируются символическими ссылками на доступные файлы конфигураций, расположенных в аналогичных директориях *-available/. Для помощи в управлении используются небольшие скрипты a2enmod, a2dismod, a2ensite, a2dissite, и a2enconf, a2disconf.
a2enmod и a2dismod
a2enmod, a2dismod – включение или отключение модулей apache2.
a2enmod [ [-q|--quiet] module] a2dismod [ [-q|--quiet] module]
a2enmod – это скрипт, которые включает определённый модуль внутри конфигурации apache2. Он делает это создавая символическую ссылку внутри /etc/apache2/mods-enabled. А a2dismod отключает модуль удаляя эту ссылку. Не будет ошибкой включить модуль, который уже включен или отключить модуль, который уже отключен.
Помните, что многие модули имеют, в дополнении к файлу .load, ассоциированный файл .conf. Включение модуля размещает конфигурационные директивы в файле .conf как директивы в главном контексте сервера apache2.
Не показывать сообщения с информацией.
Включает режим сопровождения, то есть вызов программы выполняется автоматически скриптом сопровождения. Эта опция не должна использоваться конечными пользователями.
При отключении модуля очищает все следы модуля во внутренней базе данных состояния.
a2enmod и a2dismod завершаются со статусом 0 если все модули успешно обработаны, 1 если случились ошибки, 2 если использована неверная опция.
a2enmod imagemap a2dismod mime_magic
Включает модуль mod_imagemap, и отключает модуль mod_mime_magic.
Каталог с файлами, предоставляющими информацию о доступных модулях.
Директория с ссылками на файлы в mods-available для включённых модулей.
a2ensite и a2dissite
a2ensite, a2dissite – включают или отключают сайты / виртуальные хосты apache2.
a2ensite [ [-q|--quiet] сайт] a2dissite [ [-q|--quiet] сайт]
a2ensite – это скрипт, который включает указанный сайт (который содержится в блоке ) внутри конфигурации apache2. Он делает это создавая символическую ссылку внутри /etc/apache2/sites-enabled. А a2dissite отключает сайт удаляя эти ссылки. Не является ошибкой включить сайт, который уже включен или отключить сайт, который уже отключен.
Apache расценивает самый первый виртуальный хост включённым специально для перенаправления на него каждого запроса, не соответствующего действительной директиве. Таким образом, первым должен вызываться 000-default чтобы с сортировке быть первым перед загрузкой оставшихся хостов.
Не показывать сообщения с информацией.
Включает режим сопровождения, то есть вызов программы выполняется автоматически скриптом сопровождения. Эта опция не должна использоваться конечными пользователями.
При отключении сайта очищает все следы модуля во внутренней базе данных состояния.
a2ensite и a2dissite выходят со статусом 0 если все сайты обработаны успешно, 1 если произошли ошибки, 2 если была использована неверная опция.
Отключает стандартный сайт.
Директория с файлами, предоставляющими информацию о доступных сайтах.
Директория с ссылками на sites-available для включённых сайтов.
a2enconf и a2disconf
a2enconf, a2disconf – включают и отключают конфигурационные файлы apache2.
a2enconf [ [-q|--quiet] конфигурация] a2disconf [ [-q|--quiet] конфигурация]
a2enconf – это скрипт, который включает определённый конфигурационный файл внутри конфигурации apache2. Он делает это создавая символическую ссылку внутри /etc/apache2/conf-enabled. А a2disconf отключает определённую часть конфигурации удаляя эти символические ссылки. Не является ошибкой включить конфигурацию, которая уже включена или отключить её, если она уже отключена.
Помните, что многие конфигурационные файлы могут иметь зависимости от определённых модулей. В отличие от зависимостей модулей, они не решаются автоматически. Фрагменты конфигурации, хранящиеся в директории conf-available считаются несущественными или установленными и управляемыми с помощью обратных зависимостей (например, веб-скриптами).
Не показывать информационные сообщения.
Включает режим сопровождения, то есть вызов программы выполняется автоматически скриптом сопровождения. Эта опция не должна использоваться конечными пользователями.
При отключении модуля очищает все следы модуля во внутренней базе данных состояния.
a2enconf и a2disconf выходят со статусом 0 если все конфигурации обработаны успешно, 1 если случились ошибки, 2 если была использована неверная опция.
a2enconf security a2disconf charset
Включает директивы Apache security, хранящиеся в конфигурационных файлах security, и отключает конфигурацию charset.
Директория с файлами доступных конфигураций веб-сервера.
Директория с ссылками на файлы в conf-available для включения конфигурационных файлов.
Корневые директории документов веб-сервера Apache в Ubuntu
По умолчанию, Ubuntu не позволяет доступ через веб-браузер к любому файлу за пределами директорий /var/www, public_html (когда включено) и /usr/share (для приложений). Если ваш сайт использует в качестве корневой папки какое-либо другое расположение (такое как /srv) вам понадобиться добавить корневую директорию документов в белый список в файле настроек /etc/apache2/apache2.conf.
По умолчанию корневой папкой для веб-документов в Ubuntu является /var/www/html. В /var/www вы можете делать ваши собственные виртуальные хосты.