From ad75b14ad4a3f882f4dede7de2ea4ec04f0f6bbf Mon Sep 17 00:00:00 2001 From: root Date: Sat, 25 Dec 2021 11:33:37 -0500 Subject: [PATCH 1/5] Simplify www_base/tasks/php-stem.yml for stem-armhf-7.4.so on RasPiOS 11 --- roles/www_base/tasks/main.yml | 4 +- roles/www_base/tasks/php-stem.yml | 148 +++++++++++++++++++++--------- 2 files changed, 107 insertions(+), 45 deletions(-) diff --git a/roles/www_base/tasks/main.yml b/roles/www_base/tasks/main.yml index 5963997a7..eaf0fe4b6 100644 --- a/roles/www_base/tasks/main.yml +++ b/roles/www_base/tasks/main.yml @@ -25,8 +25,10 @@ - name: Using html.yml include_tasks: html.yml -- name: Using php-stem.yml +- name: "Using php-stem.yml, when: php_version == 7.4" include_tasks: php-stem.yml + when: php_version == 7.4 # or php_version == 8.0 or php_version == 8.1 (IIAB MIGHT SUPPORT THESE LATER IN 2022) + # or php_version == 7.2 or php_version == 7.3 (PROBABLY WORK, AT YOUR OWN RISK!) - name: Create dir {{ doc_root }}/home -- if you customized var iiab_home_url e.g. in /etc/iiab/local_vars.yml, that dir is created later -- by www_options/tasks/main.yml file: diff --git a/roles/www_base/tasks/php-stem.yml b/roles/www_base/tasks/php-stem.yml index d5579ecf7..6aba1c472 100644 --- a/roles/www_base/tasks/php-stem.yml +++ b/roles/www_base/tasks/php-stem.yml @@ -1,59 +1,119 @@ -# Fixes search @ http://box/modules/es-wikihow (popular with Spanish youth) -# Source code: http://download.iiab.io/packages/php-stem.src.tar +# Fixes search @ http://box/modules/es-wikihow (for young Spanish speakers) + +# README & Code: https://github.com/iiab/php-stem + +# Source Code also here: http://download.iiab.io/packages/php-stem.src.tar # June 2018 debugging & compilation thanks to Tim Moody & George Hunt # Original bug: https://github.com/iiab/iiab/issues/829 -- name: Set fact stem available php 7.2 - includes x86_64 only - set_fact: - stem_available: True - when: ansible_machine == "x86_64" and php_version == 7.2 -- name: Set fact stem available php 7.3 - excludes i386 - set_fact: - stem_available: True - when: not ansible_machine == "i386" and php_version == 7.3 +- set_fact: + php_extensions: # Dictionary keys (left side) are always strings, e.g. "7.2" + 7.2: 20170718 # Dictionary values (right side) can be of type int here, as it's auto-cast to string just below. Strings would also work e.g. 7.2: "20170718" + 7.3: 20180731 + 7.4: 20190902 + 8.0: 20200930 + 8.1: 20210902 -- name: Set fact stem available php 7.4 - set_fact: - stem_available: True - when: php_version == 7.4 and (ansible_machine == "aarch64" or ansible_machine == "x86_64") +- set_fact: + php_extension: "{{ php_extensions[php_version] }}" -- name: Unarchive http://download.iiab.io/packages/php{{ php_version }}-stem.rpi.tar to / (rpi) - unarchive: - src: http://download.iiab.io/packages/php{{ php_version }}-stem.rpi.tar - dest: / - owner: root - group: root - #mode: ???? - remote_src: yes - when: (ansible_machine == "armv7l" or ansible_machine == "armv6l") and stem_available is defined +# Auto-lookup would also work... +# php -i | grep 'PHP Extension =>' | cut -d' ' -f4 +# +# Or... +# ls -d /usr/lib/php/20?????? | cut -d/ -f5 +# +# (Or in PHP code...) +# phpinfo() -- name: Unarchive http://download.iiab.io/packages/php{{ php_version }}-stem.aarch64.tar to / (rpi) - unarchive: - src: http://download.iiab.io/packages/php{{ php_version }}-stem.aarch64.tar - dest: / - owner: root - group: root - #mode: ???? - remote_src: yes - when: ansible_machine == "aarch64" and stem_available is defined -- name: Unarchive http://download.iiab.io/packages/php{{ php_version }}-stem.x64.tar to / (x64) - unarchive: - src: http://download.iiab.io/packages/php{{ php_version }}-stem.x64.tar - dest: / - owner: root - group: root - #mode: ???? - remote_src: yes - when: ansible_machine == "x86_64" and stem_available is defined +- name: Download https://github.com/iiab/php-stem/raw/main/so/stem-armhf-{{ php_version }}.so to /usr/lib/php/{{ php_extension }}/stem.so (armv6l or armv7l) + get_url: + url: https://github.com/iiab/php-stem/raw/main/so/stem-armhf-{{ php_version }}.so + dest: /usr/lib/php/{{ php_extension }}/stem.so + when: ansible_machine == "armv6l" or ansible_machine == "armv7l" + +- name: Download https://github.com/iiab/php-stem/raw/main/so/stem-aarch64-{{ php_version }}.so to /usr/lib/php/{{ php_extension }}/stem.so (aarch64) + get_url: + url: https://github.com/iiab/php-stem/raw/main/so/stem-aarch64-{{ php_version }}.so + dest: /usr/lib/php/{{ php_extension }}/stem.so + when: ansible_machine == "aarch64" + +- name: Download https://github.com/iiab/php-stem/raw/main/so/stem-x64-{{ php_version }}.so to /usr/lib/php/{{ php_extension }}/stem.so (x86_64) + get_url: + url: https://github.com/iiab/php-stem/raw/main/so/stem-x64-{{ php_version }}.so + dest: /usr/lib/php/{{ php_extension }}/stem.so + when: ansible_machine == "x86_64" + + +- name: Install /etc/php/{{ php_version }}/mods-available/stem.ini + shell: | + cat > /etc/php/{{ php_version }}/mods-available/stem.ini << EOF + ; configuration for php common module + ; priority=20 + extension=stem.so + EOF - name: Symlink /etc/php/{{ php_version }}/fpm/conf.d/20-stem.ini -> /etc/php/{{ php_version }}/mods-available/stem.ini file: - src: "/etc/php/{{ php_version }}/mods-available/stem.ini" - path: "/etc/php/{{ php_version }}/fpm/conf.d/20-stem.ini" + src: /etc/php/{{ php_version }}/mods-available/stem.ini + path: /etc/php/{{ php_version }}/fpm/conf.d/20-stem.ini state: link - when: stem_available is defined + + +# - name: Set fact stem available php 7.2 - includes x86_64 only +# set_fact: +# stem_available: True +# when: ansible_machine == "x86_64" and php_version == 7.2 + +# - name: Set fact stem available php 7.3 - excludes i386 +# set_fact: +# stem_available: True +# when: not ansible_machine == "i386" and php_version == 7.3 + +# - name: Set fact stem available php 7.4 +# set_fact: +# stem_available: True +# when: php_version == 7.4 and (ansible_machine == "aarch64" or ansible_machine == "x86_64") + +# - name: Unarchive http://download.iiab.io/packages/php{{ php_version }}-stem.rpi.tar to / (rpi) +# unarchive: +# src: http://download.iiab.io/packages/php{{ php_version }}-stem.rpi.tar +# dest: / +# owner: root +# group: root +# #mode: ???? +# remote_src: yes +# when: (ansible_machine == "armv7l" or ansible_machine == "armv6l") and stem_available is defined + +# - name: Unarchive http://download.iiab.io/packages/php{{ php_version }}-stem.aarch64.tar to / (rpi) +# unarchive: +# src: http://download.iiab.io/packages/php{{ php_version }}-stem.aarch64.tar +# dest: / +# owner: root +# group: root +# #mode: ???? +# remote_src: yes +# when: ansible_machine == "aarch64" and stem_available is defined + +# - name: Unarchive http://download.iiab.io/packages/php{{ php_version }}-stem.x64.tar to / (x64) +# unarchive: +# src: http://download.iiab.io/packages/php{{ php_version }}-stem.x64.tar +# dest: / +# owner: root +# group: root +# #mode: ???? +# remote_src: yes +# when: ansible_machine == "x86_64" and stem_available is defined + +# - name: Symlink /etc/php/{{ php_version }}/fpm/conf.d/20-stem.ini -> /etc/php/{{ php_version }}/mods-available/stem.ini +# file: +# src: "/etc/php/{{ php_version }}/mods-available/stem.ini" +# path: "/etc/php/{{ php_version }}/fpm/conf.d/20-stem.ini" +# state: link +# when: stem_available is defined + # Not sure what to do for apache, so do nothing for now From 81d676f26e9d37dd8047b4330e236589944f35af Mon Sep 17 00:00:00 2001 From: root Date: Sat, 25 Dec 2021 17:07:42 -0500 Subject: [PATCH 2/5] www_base/tasks/php-stem.yml: 'systemctl restart php7.4-fpm' warning --- roles/www_base/tasks/php-stem.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/roles/www_base/tasks/php-stem.yml b/roles/www_base/tasks/php-stem.yml index 6aba1c472..8cef338b8 100644 --- a/roles/www_base/tasks/php-stem.yml +++ b/roles/www_base/tasks/php-stem.yml @@ -61,6 +61,9 @@ path: /etc/php/{{ php_version }}/fpm/conf.d/20-stem.ini state: link +- name: YOU MAY NEED TO 'systemctl restart php{{ php_version }}-fpm' -- whereas during an IIAB install, roles/www_options does that for you + meta: noop: + # - name: Set fact stem available php 7.2 - includes x86_64 only # set_fact: From 62e193d2e18911d5637f224e918506687510b0e1 Mon Sep 17 00:00:00 2001 From: root Date: Sat, 25 Dec 2021 17:22:27 -0500 Subject: [PATCH 3/5] www_base/tasks/php-stem.yml: Fix 'systemctl restart php7.4-fpm' warning --- roles/www_base/tasks/php-stem.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/roles/www_base/tasks/php-stem.yml b/roles/www_base/tasks/php-stem.yml index 8cef338b8..817ff556a 100644 --- a/roles/www_base/tasks/php-stem.yml +++ b/roles/www_base/tasks/php-stem.yml @@ -61,8 +61,8 @@ path: /etc/php/{{ php_version }}/fpm/conf.d/20-stem.ini state: link -- name: YOU MAY NEED TO 'systemctl restart php{{ php_version }}-fpm' -- whereas during an IIAB install, roles/www_options does that for you - meta: noop: +- debug: + msg: YOU MAY NEED TO 'systemctl restart php{{ php_version }}-fpm' -- whereas during an IIAB install, roles/www_options does that for you # - name: Set fact stem available php 7.2 - includes x86_64 only From a0fe5b706ce3cbe9c149ef9580bbff102f86f53b Mon Sep 17 00:00:00 2001 From: A Holt Date: Sat, 25 Dec 2021 18:15:57 -0500 Subject: [PATCH 4/5] php-stem.yml: Mention iiab/php-stem#2 fixed location idea --- roles/www_base/tasks/php-stem.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/roles/www_base/tasks/php-stem.yml b/roles/www_base/tasks/php-stem.yml index 817ff556a..5ef6002ad 100644 --- a/roles/www_base/tasks/php-stem.yml +++ b/roles/www_base/tasks/php-stem.yml @@ -27,6 +27,11 @@ # (Or in PHP code...) # phpinfo() +# Or consider https://github.com/iiab/php-stem/issues/2 in future? +# "Current practice is to put the stem.so file in a different place for each php version. +# Would it be better to create a directory /usr/local/lib/php-stem and always put it there. +# Then put that location in stem.ini" + - name: Download https://github.com/iiab/php-stem/raw/main/so/stem-armhf-{{ php_version }}.so to /usr/lib/php/{{ php_extension }}/stem.so (armv6l or armv7l) get_url: From acf76155f405891f26a808c82dd5e1540d811b9a Mon Sep 17 00:00:00 2001 From: A Holt Date: Sat, 25 Dec 2021 18:22:43 -0500 Subject: [PATCH 5/5] Clarify php-stem.yml: 'systemctl reload phpX.Y-fpm' suffices --- roles/www_base/tasks/php-stem.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/www_base/tasks/php-stem.yml b/roles/www_base/tasks/php-stem.yml index 5ef6002ad..a8661063f 100644 --- a/roles/www_base/tasks/php-stem.yml +++ b/roles/www_base/tasks/php-stem.yml @@ -67,7 +67,7 @@ state: link - debug: - msg: YOU MAY NEED TO 'systemctl restart php{{ php_version }}-fpm' -- whereas during an IIAB install, roles/www_options does that for you + msg: YOU MAY NEED TO 'systemctl reload php{{ php_version }}-fpm' -- whereas during an IIAB install, roles/www_options restarts it for you # - name: Set fact stem available php 7.2 - includes x86_64 only