From 31e1486ca8c266292721e0749b549713b4f028af Mon Sep 17 00:00:00 2001 From: jurgenhaas <juergen@paragon-es.de> Date: Tue, 26 Nov 2019 09:52:04 +0100 Subject: [PATCH] Installl oci8 for PHP 7.2 --- tasks/oci-7.0.yml | 2 +- tasks/oci-7.2.yml | 97 +++++++++++++++++++++++++++++++++++++++++ templates/etc-ld-oracle | 1 + 3 files changed, 99 insertions(+), 1 deletion(-) create mode 100644 tasks/oci-7.2.yml create mode 100644 templates/etc-ld-oracle diff --git a/tasks/oci-7.0.yml b/tasks/oci-7.0.yml index 2fd349b..0f58e37 100644 --- a/tasks/oci-7.0.yml +++ b/tasks/oci-7.0.yml @@ -1,5 +1,5 @@ --- -# file: roles/php/tasks/oci-7.yml +# file: roles/php/tasks/oci-7.0.yml - name: Check OCI Requirement stat: diff --git a/tasks/oci-7.2.yml b/tasks/oci-7.2.yml new file mode 100644 index 0000000..383d406 --- /dev/null +++ b/tasks/oci-7.2.yml @@ -0,0 +1,97 @@ +--- +# file: roles/php/tasks/oci-7.2.yml +# +# https://gist.github.com/Yukibashiri/cebaeaccbe531665a5704b1b34a3498e + +- name: Check OCI Requirement + stat: + path: /usr/lib/php/20170718/oci8.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: 0644 + with_items: + - oci8 + + - name: Remove possible components in /tmp + file: + path: /tmp/{{ item }} + state: absent + with_items: + - instantclient_18_5 + - oracle_x64_18_5_0_0_0_oci8_so_php_7 + + - name: Make available Oracle InstantClient + command: scp -r {{ repository }}{{ item }} /tmp/ + become: no + with_items: + - instantclient_18_5 + - oracle_x64_18_5_0_0_0_oci8_so_php_7 + + - name: Remove /opt/oracle/instantclient_18_5 + file: + path: /opt/oracle/instantclient_18_5 + state: absent + + - name: Move Oracle InstantClient to /opt/oracle + command: mv /tmp/instantclient_18_5 /opt/oracle + + - name: Move oci8 to /usr/lib/php + command: mv /tmp/oracle_x64_18_5_0_0_0_oci8_so_php_7 /usr/lib/php/20170718/oci8.so + + - name: Change ownership for Oracle InstantClient + file: + path: '{{ item }}' + owner: root + group: root + recurse: yes + follow: no + with_items: + - /opt/oracle/instantclient_18_5 + + - name: Ensure log directories + file: + path: /opt/oracle/instantclient_18_5/log/diag/clients + owner: www-data + group: root + state: directory + mode: 0775 + follow: no + + - name: Set permissions in log directories + file: + path: /opt/oracle/instantclient_18_5/log + owner: www-data + group: root + mode: 0775 + recurse: yes + follow: no + + - name: Create symlinks + file: + src: /opt/oracle/instantclient_18_5/{{ item }}.so.18.1 + dest: /opt/oracle/instantclient_18_5/{{ item }}.so + state: link + with_items: + - libclntsh + - libocci + + - name: Configure libraries + template: + src: etc-ld-oracle + dest: /etc/ld.so.conf.d/oracle-instantclient.conf + owner: root + group: root + mode: 0644 + + - name: Update libraries + command: ldconfig + + when: not oci_file.stat.exists diff --git a/templates/etc-ld-oracle b/templates/etc-ld-oracle new file mode 100644 index 0000000..87ad758 --- /dev/null +++ b/templates/etc-ld-oracle @@ -0,0 +1 @@ +/opt/oracle/instantclient_18_5 -- GitLab