From 813d40446749845781db7a13fe008bfe5482e4a3 Mon Sep 17 00:00:00 2001 From: jurgenhaas <juergen@paragon-es.de> Date: Fri, 7 Apr 2017 10:03:30 +0200 Subject: [PATCH] Rework OCI installation for various PHP versions --- tasks/oci-5.3.yml | 74 +++++++++++++++++++++++++++++++++++++++++++++++ tasks/oci-5.5.yml | 4 +++ tasks/oci-7.yml | 63 ++++++++++++++++++++++++++++++++++++++++ tasks/oci.yml | 61 -------------------------------------- tasks/php.yml | 13 ++------- 5 files changed, 143 insertions(+), 72 deletions(-) create mode 100644 tasks/oci-5.3.yml create mode 100644 tasks/oci-5.5.yml create mode 100644 tasks/oci-7.yml delete mode 100644 tasks/oci.yml diff --git a/tasks/oci-5.3.yml b/tasks/oci-5.3.yml new file mode 100644 index 0000000..968a312 --- /dev/null +++ b/tasks/oci-5.3.yml @@ -0,0 +1,74 @@ +--- +# file: roles/php/tasks/oci-5.3.yml +# +# @see OCI8 Install: https://help.ubuntu.com/community/PHPOracle +# Better: +# @see PDO_OCI Install: https://drupal.org/comment/5572626#comment-5572626 + +- name: "PHP | Check OCI Requirement" + stat: + path: '/usr/lib/php5/20090626/pdo_oci.so' + register: oci_file + +- block: + + - name: "PHP | OCI | Enable OCI for PHP" + copy: + content: 'extension={{ item }}.so' + dest: '/etc/{{ php_base_dir }}/{{ php_conf_dir }}/{{ item }}.ini' + owner: 'root' + group: 'root' + mode: '644' + with_items: + - 'oci8' + - 'pdo_oci' + + - name: "PHP | OCI | Remove possible components in /tmp" + file: + path: '/tmp/{{ item }}' + state: 'absent' + with_items: + - 'instantclient_11_2' + - 'oracle_x64_11_2_0_3_0_oci8_so' + - 'oracle_x64_11_2_0_3_0_pdo_oci_so' + + - name: "PHP | OCI | Make available Oracle InstantClient" + command: scp -r {{ repository }}{{ item }} /tmp/ + become: no + with_items: + - 'instantclient_11_2' + - 'oracle_x64_11_2_0_3_0_oci8_so' + - 'oracle_x64_11_2_0_3_0_pdo_oci_so' + + - name: "PHP | OCI | Remove /usr/local/lib/instantclient_11_2" + file: + path: '/usr/local/lib/instantclient_11_2' + state: 'absent' + + - name: "PHP | OCI | Move Oracle InstantClient to /usr/local/lib" + command: mv /tmp/instantclient_11_2 /usr/local/lib/ + + - name: "PHP | OCI | Move oci8 to /usr/lib/php5" + command: mv /tmp/oracle_x64_11_2_0_3_0_oci8_so /usr/lib/php5/20090626/oci8.so + + - name: "PHP | OCI | Move pdo_oci to /usr/lib/php5" + command: mv /tmp/oracle_x64_11_2_0_3_0_pdo_oci_so /usr/lib/php5/20090626/pdo_oci.so + + - name: "PHP | OCI | Change ownership for Oracle InstantClient" + file: + path: '{{ item }}' + owner: 'root' + group: 'root' + recurse: yes + with_items: + - '/usr/local/lib/instantclient_11_2' + - '/usr/lib/php5/20090626/oci8.so' + - '/usr/lib/php5/20090626/pdo_oci.so' + + - name: "PHP | OCI | Make available libclntsh.so" + file: + src: '/usr/local/lib/instantclient_11_2/libclntsh.so.11.1' + dest: '/usr/local/lib/instantclient_11_2/libclntsh.so' + state: 'link' + + when: not oci_file.stat.exists diff --git a/tasks/oci-5.5.yml b/tasks/oci-5.5.yml new file mode 100644 index 0000000..61ead19 --- /dev/null +++ b/tasks/oci-5.5.yml @@ -0,0 +1,4 @@ +--- +# file: roles/php/tasks/oci-5.5.yml + +- debug: msg="OCI8 for PHP 5.5 not implemented ywt" diff --git a/tasks/oci-7.yml b/tasks/oci-7.yml new file mode 100644 index 0000000..0aa8835 --- /dev/null +++ b/tasks/oci-7.yml @@ -0,0 +1,63 @@ +--- +# file: roles/php/tasks/oci-7.yml + +- name: "Check OCI Requirement" + stat: + path: '/usr/lib/php/20151012/oci.so' + register: oci_file + +- block: + + - name: "Enable OCI for PHP" + copy: + content: 'extension={{ item }}.so' + dest: '/etc/{{ php_base_dir }}/{{ php_conf_dir }}/{{ item }}.ini' + owner: 'root' + group: 'root' + mode: '644' + with_items: + - 'oci8' + + - name: "Remove possible components in /tmp" + file: + path: '/tmp/{{ item }}' + state: 'absent' + with_items: + - 'instantclient_11_2' + - 'oracle_x64_11_2_0_3_0_oci8_so_php_7' + + - name: "Make available Oracle InstantClient" + command: scp -r {{ repository }}{{ item }} /tmp/ + become: no + with_items: + - 'instantclient_11_2' + - 'oracle_x64_11_2_0_3_0_oci8_so_php_7' + + - name: "Remove /usr/local/lib/instantclient_11_2" + file: + path: '/usr/local/lib/instantclient_11_2' + state: 'absent' + + - name: "Move Oracle InstantClient to /usr/local/lib" + command: mv /tmp/instantclient_11_2 /usr/local/lib/ + + - name: "Move oci8 to /usr/lib/php" + command: mv /tmp/oracle_x64_11_2_0_3_0_oci8_so_php_7 /usr/lib/php/20151012/oci8.so + + - name: "Change ownership for Oracle InstantClient" + file: + path: '{{ item }}' + owner: 'root' + group: 'root' + recurse: yes + with_items: + - '/usr/local/lib/instantclient_11_2' + - '/usr/lib/php/20151012/oci8.so' + + - name: "Make available libclntsh.so" + file: + src: '/usr/local/lib/instantclient_11_2/libclntsh.so.11.1' + dest: '/usr/local/lib/instantclient_11_2/libclntsh.so' + state: 'link' + + when: not oci_file.stat.exists diff --git a/tasks/oci.yml b/tasks/oci.yml deleted file mode 100644 index 171aa52..0000000 --- a/tasks/oci.yml +++ /dev/null @@ -1,61 +0,0 @@ ---- -# file: roles/php/tasks/oci.yml -# -# @see OCI8 Install: https://help.ubuntu.com/community/PHPOracle -# Better: -# @see PDO_OCI Install: https://drupal.org/comment/5572626#comment-5572626 - -- name: "PHP | OCI | Enable OCI for PHP" - copy: - content='extension={{ item }}.so' - dest=/etc/{{ php_base_dir }}/{{ php_conf_dir }}/{{ item }}.ini - owner=root - group=root - mode='644' - with_items: - - oci8 - - pdo_oci - -- name: "PHP | OCI | Remove possible components in /tmp" - command: rm -Rf /tmp/{{ item }} - with_items: - - instantclient_11_2 - - oracle_x64_11_2_0_3_0_oci8_so - - oracle_x64_11_2_0_3_0_pdo_oci_so - -- name: "PHP | OCI | Make available Oracle InstantClient" - command: scp -r {{ repository }}{{ item }} /tmp/ - become: no - with_items: - - instantclient_11_2 - - oracle_x64_11_2_0_3_0_oci8_so - - oracle_x64_11_2_0_3_0_pdo_oci_so - -- name: "PHP | OCI | Remove /usr/local/lib/instantclient_11_2" - command: rm -Rf /usr/local/lib/instantclient_11_2 - -- name: "PHP | OCI | Move Oracle InstantClient to /usr/local/lib" - command: mv /tmp/instantclient_11_2 /usr/local/lib/ - -- name: "PHP | OCI | Move oci8 to /usr/lib/php5" - command: mv /tmp/oracle_x64_11_2_0_3_0_oci8_so /usr/lib/php5/20090626/oci8.so - -- name: "PHP | OCI | Move pdo_oci to /usr/lib/php5" - command: mv /tmp/oracle_x64_11_2_0_3_0_pdo_oci_so /usr/lib/php5/20090626/pdo_oci.so - -- name: "PHP | OCI | Change ownership for Oracle InstantClient" - file: - path="{{ item }}" - owner="root" - group="root" - recurse=yes - with_items: - - /usr/local/lib/instantclient_11_2 - - /usr/lib/php5/20090626/oci8.so - - /usr/lib/php5/20090626/pdo_oci.so - -- name: "PHP | OCI | Make available libclntsh.so" - file: - src=/usr/local/lib/instantclient_11_2/libclntsh.so.11.1 - dest=/usr/local/lib/instantclient_11_2/libclntsh.so - state=link diff --git a/tasks/php.yml b/tasks/php.yml index 568adb4..5f4b50e 100644 --- a/tasks/php.yml +++ b/tasks/php.yml @@ -114,17 +114,8 @@ owner=www-data group=www-data -- name: "PHP | Check OCI Requirement" - shell: ls /usr/lib/php5/20090626/pdo_oci.so - register: oci_available - when: php_needs_oci8 - ignore_errors: yes - changed_when: oci_available.stdout != '/usr/lib/php5/20090626/pdo_oci.so' - notify: - - "Apache | Restart Apache" - -- include: oci.yml - when: repository is defined and php_needs_oci8 and oci_available.stdout != '/usr/lib/php5/20090626/pdo_oci.so' +- include: oci-{{ php_version|default('5.5') }}.yml + when: repository is defined and php_needs_oci8 - name: "PHP | Ensure ImageMagick config directory" file: -- GitLab