Skip to contentSkip to conversation

lighttpd: install fastcgi config for php

PATCH New Ryan Coe 3 participants 5 messages Dec 2, 2014 – Dec 8, 2014

lore
Share & tools
lore

Ryan Coe

author
#0 lore raw

PATCH 1/1 lighttpd: install fastcgi config for php

---
 package/lighttpd/fastcgi.conf |  7 +++++++
 package/lighttpd/lighttpd.mk  | 11 +++++++++++
 2 files changed, 18 insertions(+)
 create mode 100644 package/lighttpd/fastcgi.conf
package/lighttpd/fastcgi.conf new file +7 -0
new file mode 100644
index 0000000..2ed8bea
@@ -0,0 +1,7 @@
+server.modules += ( "mod_fastcgi" )
+
+fastcgi.server = ( ".php" => ((
+                     "bin-path" => "/usr/bin/php-cgi",
+                     "socket" => "/tmp/php.socket"
+                 )))
+
package/lighttpd/lighttpd.mk +11 -0
index 8f34561..e4a3020 100644
@@ -78,6 +78,17 @@ endef
 
 LIGHTTPD_POST_INSTALL_TARGET_HOOKS += LIGHTTPD_INSTALL_CONFIG
 
+define LIGHTTPD_INSTALL_PHP_CONFIG
+	$(INSTALL) -D -m 0644 package/lighttpd/fastcgi.conf \
+		$(TARGET_DIR)/etc/lighttpd/conf.d/fastcgi.conf
+	$(SED) 's/#include \"conf.d\/fastcgi.conf\"/include \"conf.d\/fastcgi.conf\"/' \
+		$(TARGET_DIR)/etc/lighttpd/modules.conf
+endef
+
+ifeq ($(BR2_PACKAGE_PHP_SAPI_CLI_CGI)$(BR2_PACKAGE_PHP_SAPI_CGI),y)
+	LIGHTTPD_POST_INSTALL_TARGET_HOOKS += LIGHTTPD_INSTALL_PHP_CONFIG
+endif
+
 define LIGHTTPD_INSTALL_INIT_SYSV
 	$(INSTALL) -D -m 0755 package/lighttpd/S50lighttpd \
 		$(TARGET_DIR)/etc/init.d/S50lighttpd
Signature · 1 line
2.2.0
#1 lore raw

PATCH 1/1 lighttpd: install fastcgi config for php

Quoted 28 lines · Ryan Coe
---
  package/lighttpd/fastcgi.conf |  7 +++++++
  package/lighttpd/lighttpd.mk  | 11 +++++++++++
  2 files changed, 18 insertions(+)

create mode 100644 package/lighttpd/fastcgi.conf

package/lighttpd/fastcgi.conf new file +7 -0
new file mode 100644
index 0000000..2ed8bea
@@ -0,0 +1,7 @@
+server.modules += ( "mod_fastcgi" )
+
+fastcgi.server = ( ".php" => ((
+                     "bin-path" => "/usr/bin/php-cgi",
+                     "socket" => "/tmp/php.socket"
+                 )))
+
package/lighttpd/lighttpd.mk +0 -0
index 8f34561..e4a3020 100644
@@ -78,6 +78,17 @@ endef
 
  LIGHTTPD_POST_INSTALL_TARGET_HOOKS += LIGHTTPD_INSTALL_CONFIG
 

package/lighttpd/lighttpd.mk endef · line 90

Quoted 10 lines
package/lighttpd/lighttpd.mk +10 -0
+define LIGHTTPD_INSTALL_PHP_CONFIG
+	$(INSTALL) -D -m 0644 package/lighttpd/fastcgi.conf \
+		$(TARGET_DIR)/etc/lighttpd/conf.d/fastcgi.conf
+	$(SED) 's/#include \"conf.d\/fastcgi.conf\"/include \"conf.d\/fastcgi.conf\"/' \
+		$(TARGET_DIR)/etc/lighttpd/modules.conf
+endef
+
+ifeq ($(BR2_PACKAGE_PHP_SAPI_CLI_CGI)$(BR2_PACKAGE_PHP_SAPI_CGI),y)
+	LIGHTTPD_POST_INSTALL_TARGET_HOOKS += LIGHTTPD_INSTALL_PHP_CONFIG
+endif

You are making the assumption here that if someone selects the CGI SAPI, he wants to use the FastCGI interface.
Personally I would prefer plain old regular CGI above FastCGI.

Problem with the FastCGI implementation is that it creates a fixed number of PHP processes.
Consumes memory even when the webserver isn't executing any PHP script. And doesn't work too well with PHP scripts that perform blocking operations or depend on any external server. If all PHP processes are occupied executing a script, the webserver cannot process any additional requests until a process becomes available again.

Yours sincerely,

Floris Bos

#2 lore raw

PATCH 1/1 lighttpd: install fastcgi config for php

In reply to Ryan Coe

Dear Ryan Coe,

Quoted 6 lines · Ryan Coe
---
 package/lighttpd/fastcgi.conf |  7 +++++++
 package/lighttpd/lighttpd.mk  | 11 +++++++++++
 2 files changed, 18 insertions(+)
 create mode 100644 package/lighttpd/fastcgi.conf

Seeing the feedback from Floris Bos on this patch, I marked your patch as 'Rejected' in our patch tracking system. Please work with Floris on a variant of your patch that takes into account also his use case (maybe by making the fastcgi installation optional?).

Thanks!

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
author
#3 lore raw

PATCH 1/1 lighttpd: install fastcgi config for php

Thomas, Floris, All,

Quoted 9 lines · Thomas Petazzoni

Dear Ryan Coe,

Quoted 6 lines · Ryan Coe
---
  package/lighttpd/fastcgi.conf |  7 +++++++
  package/lighttpd/lighttpd.mk  | 11 +++++++++++
  2 files changed, 18 insertions(+)

create mode 100644 package/lighttpd/fastcgi.conf

Quoted 8 lines

Seeing the feedback from Floris Bos on this patch, I marked your patch as 'Rejected' in our patch tracking system. Please work with Floris on a variant of your patch that takes into account also his use case (maybe by making the fastcgi installation optional?).

Thanks!

Thomas

Yes, of course. This makes sense.

#4 lore raw

PATCH 1/1 lighttpd: install fastcgi config for php

In reply to Thomas Petazzoni
Quoted 9 lines · Thomas Petazzoni

Dear Ryan Coe,

Quoted 6 lines · Ryan Coe
---
  package/lighttpd/fastcgi.conf |  7 +++++++
  package/lighttpd/lighttpd.mk  | 11 +++++++++++
  2 files changed, 18 insertions(+)

create mode 100644 package/lighttpd/fastcgi.conf

Quoted 4 lines

Seeing the feedback from Floris Bos on this patch, I marked your patch as 'Rejected' in our patch tracking system. Please work with Floris on a variant of your patch that takes into account also his use case (maybe by making the fastcgi installation optional?).

Yes, a config option under the lighttpd package to optionally install and configure PHP/FastCGI support might be nicer, instead of making the assumption based on the selection of the PHP CGI SAPI.

You might also want to consider using PHP-FPM
That does allow using FastCGI while spawning/killing PHP processes on-demand (instead of having a static number), so shouldn't suffer from the problems I mentioned earlier.
But haven't tested it myself.

Another point of attention is that lighttpd currently runs as root. Might want to add a less privileged user to the system to run lighttpd/php under.

Yours sincerely,

Floris Bos