-
-
Notifications
You must be signed in to change notification settings - Fork 441
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Select PHP version on RedHat #414
Comments
+1 this would be a good addition to the role. In my circumstance I needed to install php8.1 which required an extra step to add in the remi repo - name: Install remi repository
ansible.builtin.include_role:
name: geerlingguy.repo-remi
- name: Enable php:remi-8.1
command: "dnf module enable -y php:remi-8.1"
|
This issue has been marked 'stale' due to lack of recent activity. If there is no further activity, the issue will be closed in another 30 days. Thank you for your contribution! Please read this blog post to see the reasons why I mark issues as stale. |
@benoistlaurent and @brendon-stephens, Here's an example for a FPM deployment on a Rocky 9 system, using remi repo and with the php version in a variable. - name: "Ensure PHP is deployed"
hosts: "target"
become: true
vars:
php_version: '8.3'
php_packages_extra:
- "php{{ php_version | replace('.', '') }}-php-imap"
- "php{{ php_version | replace('.', '') }}-php-imagick"
- "php{{ php_version | replace('.', '') }}-php-xml"
- "php{{ php_version | replace('.', '') }}-php-zip"
- "php{{ php_version | replace('.', '') }}-php-mbstring"
roles:
- role: geerlingguy.repo-remi
when: ansible_os_family == 'RedHat'
- role: geerlingguy.php-versions
vars:
php_version: "{{ php_version }}"
- role: geerlingguy.php
vars:
php_fpm_pools: "{{ php_fpm_pools }}"
php_packages: "{{ __php_packages | map('regex_replace', '^', 'php' + php_version | replace('.', '') + '-') | list }}"
php_packages_extra: "{{ php_packages_extra }}"
php_enable_webserver: false
php_enable_php_fpm: true
php_conf_paths:
- "/etc/opt/remi/php{{ php_version | replace('.', '') }}"
php_extension_conf_paths: "/etc/opt/remi/php{{ php_version | replace('.', '') }}/mods-available"
php_fpm_daemon: "php{{ php_version | replace('.', '') }}-php-fpm"
php_fpm_conf_path: "/etc/opt/remi/php{{ php_version | replace('.', '') }}/php-fpm.conf"
php_fpm_pool_conf_path: /etc/opt/remi/php{{ php_version | replace('.', '') }}/php-fpm.d/www.conf
php_fpm_handler_state: "reloaded" The extra vars on geerlingguy.php allows me to set the conf paths so I can have multiple versions of PHP on the same host. Hope it helped. |
Description
If I'm not mistaken, one cannot select the PHP version to install on RedHat.
Why is it important?
This is critically important to me because I am developing this role that installs a website that requires PHP >= 7.4 (namely dokuwiki).
Now, in my opinion, my
ansible-role-dokuwiki
is totally responsible for installing the PHP version it requires.Right now, this is done by selecting the appropriate module before running the php role:
ansible-role-dokuwiki/tasks/main.yml
:Also, my role defines
geerlingguy.php
as a dependency inmeta/main.yml
.Problem
As ansible runs the dependencies before the current role tasks, it results in a bug due to RedHat's (rightful) refusal to select a different PHP version after installing certain packages.
Proposed solution
php_default_version_redhat
indefaults/main.yml
tasks/main.yml
Workaround
The workaround would be to select the appropriate PHP module in the playbook that runs
ansible-role-dokuwiki
:server-setup.yml
:This is not acceptable for me, as, again, to me,
ansible-role-dokuwiki
is suppose to install the adequate version of PHP, depending on the dokuwiki version the user is ultimately installing.The text was updated successfully, but these errors were encountered: