Fix doc_root and add php-wrapper

This commit is contained in:
Léo Berry
2025-10-28 16:04:35 +01:00
parent 78da6b2994
commit a513b74874
5 changed files with 31 additions and 5 deletions

View File

@@ -97,7 +97,7 @@ Manages a single isolated PHP application.
**Parameters:** **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. * `user` (String): The username to create for this application.
* `listen_port` (String): The local port the application will listen on (e.g., '9010'). * `listen_port` (String): The local port the application will listen on (e.g., '9010').
* `group` (String): The group for the user (default: `$user`). * `group` (String): The group for the user (default: `$user`).

3
files/php-wrapper.sh Normal file
View File

@@ -0,0 +1,3 @@
#!/bin/sh
exec /usr/bin/frankenphp php-cli "$@"

View File

@@ -1,10 +1,10 @@
# modules/frankenphp/manifests/app.pp # modules/frankenphp/manifests/app.pp
define frankenphp::app ( define frankenphp::app (
Stdlib::Absolutepath $root_dir,
String $user, String $user,
String $listen_port, String $listen_port,
String $group = $user, String $group = $user,
String $root_dir = 'www',
Stdlib::Absolutepath $docs_root = '/var/www', Stdlib::Absolutepath $docs_root = '/var/www',
String $app_caddyfile_dir = '/etc/frankenphp/sites.d', String $app_caddyfile_dir = '/etc/frankenphp/sites.d',
String $supervisor_conf_dir = '/etc/supervisor/conf.d', String $supervisor_conf_dir = '/etc/supervisor/conf.d',
@@ -15,11 +15,13 @@ define frankenphp::app (
$app_name = $title $app_name = $title
$app_caddyfile = "${app_caddyfile_dir}/${app_name}.Caddyfile" $app_caddyfile = "${app_caddyfile_dir}/${app_name}.Caddyfile"
$supervisor_conf = "${supervisor_conf_dir}/frankenphp-${app_name}.conf" $supervisor_conf = "${supervisor_conf_dir}/frankenphp-${app_name}.conf"
$full_root_dir = "${docs_root}/${user}/${root_dir}"
exec { "refresh-frankenphp-${app_name}": exec { "refresh-frankenphp-${app_name}":
command => "supervisorctl restart frankenphp-${app_name}", command => "supervisorctl restart frankenphp-${app_name}",
path => ['/usr/bin', '/bin'], path => ['/usr/bin', '/bin'],
refreshonly => true, refreshonly => true,
require => Supervisord::Program["frankenphp-${app_name}"],
} }
if $ensure == 'present' { if $ensure == 'present' {
@@ -36,8 +38,17 @@ define frankenphp::app (
# Directories # Directories
ensure_resource('file', $app_caddyfile_dir, { ensure => 'directory' }) 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', ensure => 'directory',
owner => $user, owner => $user,
group => $group, group => $group,
@@ -49,7 +60,7 @@ define frankenphp::app (
# Caddyfile # Caddyfile
$caddy_content = epp('frankenphp/app_caddyfile.epp', { $caddy_content = epp('frankenphp/app_caddyfile.epp', {
listen_port => $listen_port, listen_port => $listen_port,
root_dir => $root_dir, root_dir => $full_root_dir,
}) })
file { $app_caddyfile: file { $app_caddyfile:

View File

@@ -3,6 +3,7 @@
class frankenphp::config ( class frankenphp::config (
$caddyfile_path = $frankenphp::params::caddyfile_path, $caddyfile_path = $frankenphp::params::caddyfile_path,
$service_name = $frankenphp::params::service_name, $service_name = $frankenphp::params::service_name,
$php_wrapper = $frankenphp::params::php_wrapper,
) inherits frankenphp::params { ) inherits frankenphp::params {
$caddyfile_dir = dirname($caddyfile_path) $caddyfile_dir = dirname($caddyfile_path)
@@ -33,4 +34,14 @@ class frankenphp::config (
EOT 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',
}
}
} }

View File

@@ -6,6 +6,7 @@ class frankenphp::params {
$service_name = 'frankenphp' $service_name = 'frankenphp'
$caddyfile_path = '/etc/frankenphp/Caddyfile' $caddyfile_path = '/etc/frankenphp/Caddyfile'
$download_dir = '/tmp' $download_dir = '/tmp'
$php_wrapper = true
$arch = $facts['architecture'] $arch = $facts['architecture']
$deb_filename = "frankenphp_${version}-1_${arch}.deb" $deb_filename = "frankenphp_${version}-1_${arch}.deb"
$local_deb_path = "${download_dir}/${deb_filename}" $local_deb_path = "${download_dir}/${deb_filename}"