Beispiel Caddy PHP
Das nachfolgende Beispiel erweitert das Caddy-Beispiel mit PHP
include:
- .init
php8-fpm:
pkg.installed:
- pkgs:
{% if grains.os_family == "Suse"%}
- php8
- php8-fpm
- php8-cli
{% elif grains.os_family == "RedHat"%}
- php-fpm
{% endif %}
{% if grains.os_family == "Suse"%}
php-fpm-conf:
file.copy:
- name: /etc/php8/fpm/php-fpm.conf
- source: /etc/php8/fpm/php-fpm.conf.default
/etc/php8/fpm/php-fpm.d/www.conf:
file.copy:
- source: /etc/php8/fpm/php-fpm.d/www.conf.default
{% endif %}
php-fpm:
service.running:
- enable: true
{% if grains.os_family == "Suse"%}
- watch:
- file: php-fpm-conf
{% endif %}
- require:
- php8-fpm
#
# Change the existing config file.
#
extend:
/etc/caddy/Caddyfile:
file.managed:
- contents: |
:80 {
root * /var/www/
php_fastcgi 127.0.0.1:9000
file_server
}
/var/www/info.php:
file.managed:
- contents: <?php phpinfo(); ?>
- user: caddy
- group: caddy
😯 Probleme:
PHP läuft auf den RedHat-Systemen nicht, weil per Standard ein Socket statt einem TCP Port verwendet wird.
Was passiert, wenn Sie diesen State auf ein Ubuntu oder Debian-System anwenden?
🧩 Aufgaben:
Erweitern Sie den State mit einem If-Else-Block, sodass auf RedHat-Systemen die Datei
/etc/php-fpm.d/www.conf
geändert wird. Ersetzen Sielisten = /run/php-fpm/www.sock
durchlisten = 127.0.0.1:9000
mit dem State-Modul file.replace.Erweitern den State, indem Sie folgenden Check an den Anfang setzen. Der State bricht ab, wenn die nötigen Voraussetzungen nicht gegeben sind.
{% if grains.os_family not in ["Suse","RedHat"]%}
requirement-not-met:
test.fail_without_changes:
- comment: This state is only applicable on Suse and RedHat
- failhard: True
{% endif %}
Last updated