Настройка Apache

Следующим шагом будет настройка Apache, для корректной работы с Drupal. Из коробки Apache не поддерживает mod_rewrite в Ubuntu 12,04. Чтобы исправить эту ситуацию, можно использовать команду sudo a2enmod rewrite, но Ansible имеет модуль apache2_module, который упростит задачу.

Кроме того, необходимо добавить запись VirtualHost, чтобы сообщить Apache, где root директория сайта, и любые другие параметры.

- name: Enable Apache rewrite module (required for Drupal).
  apache2_module: name=rewrite state=present
  notify: restart apache

- name: Add Apache virtualhost for Drupal 8 development.
  template:
    src: "templates/drupal.dev.conf.j2"
    dest: "/etc/apache2/sites-available/{{ domain }}.dev.conf"
    owner: root
    group: root
    mode: 0644
  notify: restart apache

- name: Symlink Drupal virtualhost to sites-enabled.
  file:
    src: "/etc/apache2/sites-available/{{ domain }}.dev.conf"
    dest: "/etc/apache2/sites-enabled/{{ domain }}.dev.conf"
    state: link
  notify: restart apache

- name: Remove default virtualhost file.
  file:
    path: "/etc/apache2/sites-enabled/000-default"
    state: absent
  notify: restart apache

Первая команда позволяет запускает все необходимые модули Apache, и создает символические ссылки из /etc/apache2/mods-available в /etc/apache2/mods-enabled

Вторая команда копирует шаблон Jinja2, который мы определяем внутри папки Templates, в папку sites-available Apache с правами владельца и доступами. Кроме того, мы сообщаем notify о необходимости перезапустить Apache, чтобы изменения смогли вступить в силу.

Рассмотрим наш шаблон Jinja2 (обозначенный расширением .j2), dru-pal.dev.conf.j2:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName {{ domain }}.dev
    ServerAlias www.{{ domain }}.dev
    DocumentRoot {{ drupal_core_path }}
    <Directory "{{ drupal_core_path }}">
        Options FollowSymLinks Indexes
        AllowOverride All
    </Directory>
</VirtualHost>

Это довольно стандартное определение Apache VirtualHost. Синтаксис для вывода переменной в шаблоне Jinja2 — тот же, что мы используем в наших playbooks — две фигурные скобки в начале и в конце имени переменной ({{ variable }}).

Существует три переменные, которые нам понадобятся (drupal_core_version, drupal_core_path и domain), так что добавьте их в файл vars.yml, созданный ранее:

---
# The core version you want to use (e.g. 6.x, 7.x, 8.0.x).
drupal_core_version: "8.0.x"

# The path where Drupal will be downloaded and installed.
drupal_core_path: "/var/www/drupal-{{ drupal_core_version }}-dev"

# The resulting domain will be [domain].dev (with .dev appended).
domain: "drupaltest"

На этом этапе можно запустить сервер, но Apache скорее всего выдаст ошибку, поскольку VirtualHost, который вы создали, еще не существует (нет каталога {{ drupal_core_path }}). Вот почему важно использовать notify, а не добавлять инструкцию после этих шагов для перезапуска Apache (который не будет выполнен при первом запуске playbook), notify будет ждать до тех пор, пока мы не закончим все остальные шаги в нашей группе задач (что даст нам время закончить настройку сервера), затем перезапустит Apache.

results matching ""

    No results matching ""