From a513b74874f7d9972e0c694c2eb743fc701e183c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9o=20Berry?= Date: Tue, 28 Oct 2025 16:04:35 +0100 Subject: [PATCH] Fix doc_root and add php-wrapper --- README.md | 2 +- files/php-wrapper.sh | 3 +++ manifests/app.pp | 19 +++++++++++++++---- manifests/config.pp | 11 +++++++++++ manifests/params.pp | 1 + 5 files changed, 31 insertions(+), 5 deletions(-) create mode 100644 files/php-wrapper.sh diff --git a/README.md b/README.md index 2d5f05f..57a5c91 100644 --- a/README.md +++ b/README.md @@ -97,7 +97,7 @@ Manages a single isolated PHP application. **Parameters:** - * `root_dir` (Stdlib::Absolutepath): The application's document root. + * `root_dir` (String): The application's document root under `/var/www/${user}/` * `user` (String): The username to create for this application. * `listen_port` (String): The local port the application will listen on (e.g., '9010'). * `group` (String): The group for the user (default: `$user`). diff --git a/files/php-wrapper.sh b/files/php-wrapper.sh new file mode 100644 index 0000000..8d10c55 --- /dev/null +++ b/files/php-wrapper.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +exec /usr/bin/frankenphp php-cli "$@" diff --git a/manifests/app.pp b/manifests/app.pp index 12f7c18..7a93d4b 100644 --- a/manifests/app.pp +++ b/manifests/app.pp @@ -1,10 +1,10 @@ # modules/frankenphp/manifests/app.pp define frankenphp::app ( - Stdlib::Absolutepath $root_dir, String $user, String $listen_port, String $group = $user, + String $root_dir = 'www', Stdlib::Absolutepath $docs_root = '/var/www', String $app_caddyfile_dir = '/etc/frankenphp/sites.d', String $supervisor_conf_dir = '/etc/supervisor/conf.d', @@ -15,11 +15,13 @@ define frankenphp::app ( $app_name = $title $app_caddyfile = "${app_caddyfile_dir}/${app_name}.Caddyfile" $supervisor_conf = "${supervisor_conf_dir}/frankenphp-${app_name}.conf" + $full_root_dir = "${docs_root}/${user}/${root_dir}" exec { "refresh-frankenphp-${app_name}": command => "supervisorctl restart frankenphp-${app_name}", path => ['/usr/bin', '/bin'], refreshonly => true, + require => Supervisord::Program["frankenphp-${app_name}"], } if $ensure == 'present' { @@ -36,8 +38,17 @@ define frankenphp::app ( # Directories ensure_resource('file', $app_caddyfile_dir, { ensure => 'directory' }) - if ! $managed_root_dir { - ensure_resource('file', $root_dir, { + + ensure_resource('file', "${docs_root}/${user}", { + ensure => 'directory', + owner => $user, + group => $group, + mode => '0755', + require => User[$user], + }) + + if $managed_root_dir { + ensure_resource('file', $full_root_dir, { ensure => 'directory', owner => $user, group => $group, @@ -49,7 +60,7 @@ define frankenphp::app ( # Caddyfile $caddy_content = epp('frankenphp/app_caddyfile.epp', { listen_port => $listen_port, - root_dir => $root_dir, + root_dir => $full_root_dir, }) file { $app_caddyfile: diff --git a/manifests/config.pp b/manifests/config.pp index e2bf826..b12f0db 100644 --- a/manifests/config.pp +++ b/manifests/config.pp @@ -3,6 +3,7 @@ class frankenphp::config ( $caddyfile_path = $frankenphp::params::caddyfile_path, $service_name = $frankenphp::params::service_name, + $php_wrapper = $frankenphp::params::php_wrapper, ) inherits frankenphp::params { $caddyfile_dir = dirname($caddyfile_path) @@ -33,4 +34,14 @@ class frankenphp::config ( EOT } + + # Install php wrapper + if $php_wrapper { + file { '/usr/local/bin/php': + owner => 'root', + group => 'root', + mode => '0755', + source => 'puppet:///modules/frankenphp/php-wrapper.sh', + } + } } diff --git a/manifests/params.pp b/manifests/params.pp index 9514474..ecce2a3 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -6,6 +6,7 @@ class frankenphp::params { $service_name = 'frankenphp' $caddyfile_path = '/etc/frankenphp/Caddyfile' $download_dir = '/tmp' + $php_wrapper = true $arch = $facts['architecture'] $deb_filename = "frankenphp_${version}-1_${arch}.deb" $local_deb_path = "${download_dir}/${deb_filename}"