From a451e14d43e8bc2a11779c8775ae9a4235b1a0b6 Mon Sep 17 00:00:00 2001 From: jurgenhaas <juergen@paragon-es.de> Date: Mon, 7 Mar 2022 16:21:09 +0100 Subject: [PATCH] Provide OCI8 for PHP 7.4 --- tasks/oci-7.4.yml | 102 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 tasks/oci-7.4.yml diff --git a/tasks/oci-7.4.yml b/tasks/oci-7.4.yml new file mode 100644 index 0000000..d4f5285 --- /dev/null +++ b/tasks/oci-7.4.yml @@ -0,0 +1,102 @@ +--- +# file: roles/php/tasks/oci-7.4.yml +# +# https://gist.github.com/Yukibashiri/cebaeaccbe531665a5704b1b34a3498e + +- name: Check OCI Requirement + stat: + path: /usr/lib/php/20190902/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_4 + + - name: Remove /opt/oracle/instantclient_18_5 + file: + path: /opt/oracle/instantclient_18_5 + state: absent + + - name: Ensure directory /opt/oracle + file: + path: /opt/oracle + state: directory + + - name: Move Oracle InstantClient to /opt/oracle + command: mv /tmp/instantclient_18_5 /opt/oracle/instantclient_18_5 + + - name: Move oci8 to /usr/lib/php + command: mv /tmp/oracle_x64_18_5_0_0_0_oci8_so_php_7_4 /usr/lib/php/20190902/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 -- GitLab