mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-24 05:18:07 -05:00
services: php-fpm: Add 'timezone' configuration.
* gnu/services/web.scm: (<php-fpm-configuration>)[timezone]: New record field. (default-php-fpm-config, php-fpm-shepherd-service, php-fpm-activation): Use this. * doc/guix.texi (Web Services): Document this.
This commit is contained in:
parent
6106d7cae4
commit
e517161d6b
2 changed files with 30 additions and 20 deletions
|
@ -17658,6 +17658,8 @@ Determines whether php errors and warning should be sent to clients
|
|||
and displayed in their browsers.
|
||||
This is useful for local php development, but a security risk for public sites,
|
||||
as error messages can reveal passwords and personal data.
|
||||
@item @code{timezone} (default @code{#f})
|
||||
Specifies @code{php_admin_value[date.timezone]} parameter.
|
||||
@item @code{workers-logfile} (default @code{(string-append "/var/log/php" (version-major (package-version php)) "-fpm.www.log")})
|
||||
This file will log the @code{stderr} outputs of php worker processes.
|
||||
Can be set to @code{#f} to disable logging.
|
||||
|
|
|
@ -142,6 +142,7 @@ (define-module (gnu services web)
|
|||
php-fpm-configuration-log-file
|
||||
php-fpm-configuration-process-manager
|
||||
php-fpm-configuration-display-errors
|
||||
php-fpm-configuration-timezone
|
||||
php-fpm-configuration-workers-log-file
|
||||
php-fpm-configuration-file
|
||||
|
||||
|
@ -773,6 +774,8 @@ (define-record-type* <php-fpm-configuration> php-fpm-configuration
|
|||
(default (php-fpm-dynamic-process-manager-configuration)))
|
||||
(display-errors php-fpm-configuration-display-errors
|
||||
(default #f))
|
||||
(timezone php-fpm-configuration-timezone
|
||||
(default #f))
|
||||
(workers-log-file php-fpm-configuration-workers-log-file
|
||||
(default (string-append "/var/log/php"
|
||||
(version-major (package-version php))
|
||||
|
@ -827,7 +830,7 @@ (define php-fpm-accounts
|
|||
(shell (file-append shadow "/sbin/nologin")))))))
|
||||
|
||||
(define (default-php-fpm-config socket user group socket-user socket-group
|
||||
pid-file log-file pm display-errors workers-log-file)
|
||||
pid-file log-file pm display-errors timezone workers-log-file)
|
||||
(apply mixed-text-file "php-fpm.conf"
|
||||
(flatten
|
||||
"[global]\n"
|
||||
|
@ -840,6 +843,10 @@ (define (default-php-fpm-config socket user group socket-user socket-group
|
|||
"listen.owner =" socket-user "\n"
|
||||
"listen.group =" socket-group "\n"
|
||||
|
||||
(if timezone
|
||||
(string-append "php_admin_value[date.timezone] = \"" timezone "\"\n")
|
||||
"")
|
||||
|
||||
(match pm
|
||||
(($ <php-fpm-dynamic-process-manager-configuration>
|
||||
pm.max-children
|
||||
|
@ -879,7 +886,8 @@ (define (default-php-fpm-config socket user group socket-user socket-group
|
|||
(define php-fpm-shepherd-service
|
||||
(match-lambda
|
||||
(($ <php-fpm-configuration> php socket user group socket-user socket-group
|
||||
pid-file log-file pm display-errors workers-log-file file)
|
||||
pid-file log-file pm display-errors
|
||||
timezone workers-log-file file)
|
||||
(list (shepherd-service
|
||||
(provision '(php-fpm))
|
||||
(documentation "Run the php-fpm daemon.")
|
||||
|
@ -890,27 +898,27 @@ (define php-fpm-shepherd-service
|
|||
#$(or file
|
||||
(default-php-fpm-config socket user group
|
||||
socket-user socket-group pid-file log-file
|
||||
pm display-errors workers-log-file)))
|
||||
pm display-errors timezone workers-log-file)))
|
||||
#:pid-file #$pid-file))
|
||||
(stop #~(make-kill-destructor)))))))
|
||||
|
||||
(define php-fpm-activation
|
||||
(match-lambda
|
||||
(($ <php-fpm-configuration> _ _ user _ _ _ _ log-file _ _ workers-log-file _)
|
||||
#~(begin
|
||||
(use-modules (guix build utils))
|
||||
(let* ((user (getpwnam #$user))
|
||||
(touch (lambda (file-name)
|
||||
(call-with-output-file file-name (const #t))))
|
||||
(init-log-file
|
||||
(lambda (file-name)
|
||||
(when #$workers-log-file
|
||||
(when (not (file-exists? file-name))
|
||||
(touch file-name))
|
||||
(chown file-name (passwd:uid user) (passwd:gid user))
|
||||
(chmod file-name #o660)))))
|
||||
(init-log-file #$log-file)
|
||||
(init-log-file #$workers-log-file))))))
|
||||
(define (php-fpm-activation config)
|
||||
#~(begin
|
||||
(use-modules (guix build utils))
|
||||
(let* ((user (getpwnam #$(php-fpm-configuration-user config)))
|
||||
(touch (lambda (file-name)
|
||||
(call-with-output-file file-name (const #t))))
|
||||
(workers-log-file
|
||||
#$(php-fpm-configuration-workers-log-file config))
|
||||
(init-log-file
|
||||
(lambda (file-name)
|
||||
(when workers-log-file
|
||||
(when (not (file-exists? file-name))
|
||||
(touch file-name))
|
||||
(chown file-name (passwd:uid user) (passwd:gid user))
|
||||
(chmod file-name #o660)))))
|
||||
(init-log-file #$(php-fpm-configuration-log-file config))
|
||||
(init-log-file workers-log-file))))
|
||||
|
||||
|
||||
(define php-fpm-service-type
|
||||
|
|
Loading…
Reference in a new issue