From 53745a9baa7af586d84e579e42474f31a3965b2e Mon Sep 17 00:00:00 2001
From: jurgenhaas <juergen@paragon-es.de>
Date: Thu, 18 Jan 2018 15:47:17 +0100
Subject: [PATCH] Optionally run PHP FPM over a socket

---
 defaults/main.yml                            |  2 ++
 tasks/php.yml                                | 19 +++++++++++++++++++
 templates/etc-apache2-conf-available-php-fpm | 10 ++++++++++
 templates/php_pool.conf                      |  4 ++++
 4 files changed, 35 insertions(+)
 create mode 100644 templates/etc-apache2-conf-available-php-fpm

diff --git a/defaults/main.yml b/defaults/main.yml
index 892ccdf..6603667 100644
--- a/defaults/main.yml
+++ b/defaults/main.yml
@@ -1,6 +1,8 @@
 php_version: '7.0'
 php_version_main: '7'
 
+php_fpm_socket: false
+
 php_install_redis: true
 php_hold_version: false
 php_repositories: []
diff --git a/tasks/php.yml b/tasks/php.yml
index 57de4ca..21d5c75 100644
--- a/tasks/php.yml
+++ b/tasks/php.yml
@@ -127,6 +127,25 @@
     group=root
     mode='644'
 
+- block:
+
+  - name: "PHP | Apache FPM Socket Configuration"
+    template:
+      src='etc-apache2-conf-available-php-fpm'
+      dest='/etc/apache2/{{ apache_conf_dir }}/php{{ php_version_main }}-fpm.conf'
+      owner='root'
+      group='root'
+      mode='644'
+    notify:
+      - "Apache | Restart Apache"
+
+  - name: "PHP | Enable Apache PHP FPM Configuration"
+    command: a2enconf php{{ php_version_main }}-fpm creates=/etc/apache2/conf-enabled/php{{ php_version_main }}-fpm{{ apache_conf_ext }}
+    notify:
+      - "Apache | Restart Apache"
+
+  when: php_fpm_socket
+
 - name: "PHP | FPM Default Pool Configuration"
   template:
     src=php_pool.conf
diff --git a/templates/etc-apache2-conf-available-php-fpm b/templates/etc-apache2-conf-available-php-fpm
new file mode 100644
index 0000000..495e4c2
--- /dev/null
+++ b/templates/etc-apache2-conf-available-php-fpm
@@ -0,0 +1,10 @@
+<IfModule mod_fastcgi.c>
+  AddHandler php{{ php_version_main }}-fcgi .php
+  Action php{{ php_version_main }}-fcgi /php{{ php_version_main }}-fcgi
+  Alias /php{{ php_version_main }}-fcgi /usr/lib/cgi-bin/php{{ php_version_main }}-fcgi
+  FastCgiExternalServer /usr/lib/cgi-bin/php{{ php_version_main }}-fcgi -socket /var/run/php{{ php_version_main }}-fpm.sock -pass-header Authorization
+
+  <Directory /usr/lib/cgi-bin>
+    Include /etc/apache2/{{ apache_conf_dir }}/global-deny.conf
+  </Directory>
+</IfModule>
diff --git a/templates/php_pool.conf b/templates/php_pool.conf
index 6bf0674..36563fa 100644
--- a/templates/php_pool.conf
+++ b/templates/php_pool.conf
@@ -3,7 +3,11 @@ user = www-data
 group = www-data
 ;chroot = /var/www{{apache_server_default_root|default('')}}
 chdir = /
+{% if php_fpm_socket %}
+listen = /var/run/php{{ php_version_main }}-fpm.sock
+{% else %}
 listen = 127.0.0.1:9000
+{% endif %}
 
 ; Process manager
 pm = dynamic
-- 
GitLab