Patchwork gnu: Add php-hello-world.

login
register
mail settings
Submitter Hartmut Goebel
Date Dec. 8, 2016, 5:45 p.m.
Message ID <1481219132-27353-1-git-send-email-h.goebel@crazy-compilers.com>
Download mbox | patch
Permalink /patch/18295/
State New
Headers show

Comments

Hartmut Goebel - Dec. 8, 2016, 5:45 p.m.
* gnu/packages/php.scm (php-hello-world): New variable.
---
 gnu/packages/php.scm | 37 +++++++++++++++++++++++++++++++++++++
 1 file changed, 37 insertions(+)
Hartmut Goebel - Dec. 8, 2016, 5:47 p.m.
Am 08.12.2016 um 18:45 schrieb Hartmut Goebel:
> * gnu/packages/php.scm (php-hello-world): New variable.

This is useful for testing setups and providing examples.
Hartmut Goebel - Dec. 8, 2016, 5:52 p.m.
This is a draft for a PHP FastCGI service behind nginx.

There are some issues I could not solve:

In the service definition:

* Configuration requires two files. How can I pass both to php-fpm-activation?

* How to refer to the systems timezone settings in a configuration?
  (see php-ini -> date.timezone)

* How to make a configuration parameter default to the value passed to another
  parameter (e.g. upload-max-filesize should default to the value given for
  post-max-size).

In the sample system configuration:

* How to pass the nginx and php package directories to "string-append"
  (see http://lists.gnu.org/archive/html/help-guix/2016-12/msg00023.html)

Hartmut Goebel (3):
  services: Add php-fpm service.
  gnu: Add "PHP FPM" OS config example.

Patch

diff --git a/gnu/packages/php.scm b/gnu/packages/php.scm
index 9ccbede..f860f88 100644
--- a/gnu/packages/php.scm
+++ b/gnu/packages/php.scm
@@ -1,6 +1,7 @@ 
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2016 Julien Lepiller <julien@lepiller.eu>
 ;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -48,6 +49,7 @@ 
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system trivial)
   #:use-module ((guix licenses) #:prefix license:))
 
 ;; This fixes PHP bugs 73155 and 73159. Remove when gd
@@ -332,3 +334,38 @@  systems, web content management systems and web frameworks." )
               license:lgpl2.1+                              ; ext/bcmath/libbcmath
               license:bsd-2                                 ; ext/fileinfo/libmagic
               license:expat))))                             ; ext/date/lib
+
+(define-public php-hello-world
+  (package
+    (name "php-hello-world")
+    (version "0.1")
+    (source #f)
+    (build-system trivial-build-system)
+    (arguments
+     `(#:modules ((guix build utils))
+       #:builder
+       (begin
+         (use-modules (guix build utils))
+         (let* ((out       (assoc-ref %outputs "out"))
+                (php       (assoc-ref %build-inputs "php"))
+                (index.php (string-append out "/index.php")))
+           (mkdir-p out)
+           (call-with-output-file index.php
+             (lambda (p)
+               (format p "<html>
+ <head><title>PHP test page: Hello, Guix!</title></head>
+ <body>
+ <?php echo '<h1>Hello, Guix!</h1>'; ?>
+ <p>Today is: <?php echo date('Y-m-d'); ?></p>
+ </body>
+</html>~%")))
+           (chmod index.php #o555)))))
+    (inputs
+     `(("php" ,php)))
+    (synopsis "Hello, PHP world: An example PHP package")
+    (description
+     "PHP Hello World creates a simple HTML page saying \"Hello, Guix!\" and
+the current date.  It serves as an example to be used in Guix PHP packages or
+services.")
+    (home-page "http://php.net/manual/en/tutorial.firstpage.php")
+    (license license:gpl3+)))