---
# file: roles/php/tasks/php.yml

- name: "PHP | Apt Repository"
  apt_repository:
    repo='{{ item }}'
    state='present'
    mode='644'
  with_items: '{{ php_repositories }}'

- name: "PHP | Install required packages."
  apt:
    pkg={{ item }}
    state=installed
    force=yes
  with_items: '{{ php_packages }}'
  notify:
    - "Apache | Restart Apache"

- name: "PHP | Hold em all"
  shell: dpkg --get-selections | grep ^php | sed s/install/hold/g | sudo dpkg --set-selections
  when: php_hold_version

- name: "PHP | Install PECL packages"
  shell: 'pecl install --soft imagick-3.3.0'
  when: php_version|default('5.5') != '7'
  ignore_errors: true

- name: "PHP | Install PECL packages"
  shell: 'pecl install --soft oauth'
  when: php_version|default('5.5') == '7'
  ignore_errors: true

- name: "PHP | Ensure Apache config directory"
  file:
    dest=/etc/{{ php_base_dir }}/apache2
    state=directory
    owner=root
    group=root
    mode='755'

- name: "PHP | Configuration file, php.ini"
  template:
    src=etc-php5-apache2-php.ini
    dest=/etc/{{ php_base_dir }}/apache2/php.ini
    owner=root
    group=root
    mode='644'
  notify:
    - "Apache | Restart Apache"

- include_tasks: php53.yml
  when: php_version|default('5.5') == '5.3'

- name: "PHP | Configuration file, fcgid.conf"
  template:
    src=fcgid.conf
    dest=/etc/apache2/mods-available/fcgid.conf
    owner=root
    group=root
    mode='644'
  notify:
    - "Apache | Restart Apache"

- name: "PHP | Configuration files"
  template:
    src=etc-php5-conf-d-{{ item }}.ini
    dest=/etc/{{ php_base_dir }}/{{ php_conf_dir }}/{{ item }}.ini
    owner=root
    group=root
    mode='644'
  with_items:
    - 'opcache'
    - 'apcu'
  notify:
    - "Apache | Restart Apache"

- name: "PHP | Create extra directory for browscap"
  file:
    dest=/etc/{{ php_base_dir }}/apache2/extra
    state=directory
    owner=root
    group=root
  when: php_browscap

- name: "PHP | browscap.ini"
  copy:
    src=browscap.ini
    dest=/etc/{{ php_base_dir }}/apache2/extra/browscap.ini
    owner=root
    group=root
  when: php_browscap
  notify:
    - "Apache | Restart Apache"

- name: "PHP | Create htdocs directory for apc status"
  file:
    dest=/var/www/apc
    state=directory
    owner=www-data
    group=www-data

- name: "PHP | Copy APC status php script"
  copy:
    src=apc.php
    dest=/var/www/apc
    owner=www-data
    group=www-data

- include_tasks: oci-{{ php_version|default('5.5') }}.yml
  when: repository is defined and php_needs_oci8

- name: "PHP | Ensure ImageMagick config directory"
  file:
    dest=/etc/ImageMagick
    state=directory
    owner=root
    group=root
    mode='755'

- name: "PHP | ImageMagick Policy File"
  template:
    src=etc-imagemagick-policy.xml
    dest=/etc/ImageMagick/policy.xml
    owner=root
    group=root
    mode='644'

- name: "PHP | FPM Default Pool Configuration"
  template:
    src=php_pool.conf
    dest=/etc/{{ php_base_dir }}/fpm/pool.d/www.conf
    owner=root
    group=root
    mode='644'
  when: (php_version|default('5.5') == '7') and (jailkit is not defined or not jailkit)

- block:
  - set_fact:
      phpLogRotatePrefix='7.0'
      phpLibPrefix=''
    when: php_version|default('5.5') == '7'
  - set_fact:
      phpLogRotatePrefix='5'
      phpLibPrefix='5'
    when: php_version|default('5.5') != '7'

  - name: "Install logrotate script"
    template:
      src=etc-logrotate-php
      dest=/etc/logrotate.d/php{{ phpLogRotatePrefix }}-fpm
      owner=root
      group=root
      mode='644'
  tags: 'logrotate'
