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