Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
howto:php [2010/03/16 22:32] digitalmanhowto:php [2023/02/05 19:33] (current) – [Configure Web Server For PHP-FPM] Forgot the "unix:" prefix in the UDS example digital man
Line 1: Line 1:
 ====== Use PHP with the Synchronet Web Server ====== ====== Use PHP with the Synchronet Web Server ======
-Dynamic [[http://php.net/|PHP]] content may be served by the Synchronet Web Server using //PHP-CGI//.+Dynamic [[http://php.net/|PHP]] content may be served by the Synchronet Web Server using //PHP-CGI// or, for 3.17a builds newer than November 1st, 20015, using //PHP-FPM// PHP-CGI is slower and less efficient than PHP-FPM, so PHP-FPM is recommended when available.
  
 PHP applications //will not// magically have access to your Synchronet content (e.g. users, messages, files). PHP applications //will not// magically have access to your Synchronet content (e.g. users, messages, files).
Line 6: Line 6:
 ===== Install PHP ===== ===== Install PHP =====
  
-Make sure you get PHP-CGI support. On *nix platforms, this is achieved by excluding the ''--with-apxs2'' option from the ''configure'' command-line during the installation process.+Make sure you get PHP-CGI or PHP-FPM support as needed. On *nix platforms, this is achieved for PHP-CGI by excluding the ''--with-apxs2'' option from the ''configure'' command-line during the installation process.
  
 ===== Install PHP Content ===== ===== Install PHP Content =====
Line 14: Line 14:
 :!: Note: many PHP web applications require 3rd party database support (e.g. MySQL), which may need to be installed as well. :!: Note: many PHP web applications require 3rd party database support (e.g. MySQL), which may need to be installed as well.
  
-===== Configure Web Server =====+===== Configure Web Server For PHP-CGI =====
  
 Edit your ''[[dir:ctrl]]/[[config:sbbs.ini]]'' file, ensuring: Edit your ''[[dir:ctrl]]/[[config:sbbs.ini]]'' file, ensuring:
Line 35: Line 35:
 Edit your ''[[dir:ctrl]]/[[config:web_handler.ini]]'' file. Edit your ''[[dir:ctrl]]/[[config:web_handler.ini]]'' file.
  
-If you're using Synchronet for Windows, edit the ''[CGI.Win32]'' section, otherwise, edit the ''[CGI]'' section:+If you're using Synchronet for Windows v3.15 (Web Server Revision 1.525 or later), edit the ''[CGI.Win32]'' section, otherwise, edit the ''[CGI]'' section:
  
 Ensure the ''php'' key value points to the correct path (location) of your ''php-cgi'' (or ''php-cgi.exe'') file.  Ensure the ''php'' key value points to the correct path (location) of your ''php-cgi'' (or ''php-cgi.exe'') file. 
Line 58: Line 58:
 value=200 value=200
 </file> </file>
 +
 +:!: If you see the PHP error ''This PHP CGI binary was compiled with force-redirect enabled.'', that indicates that your ''[[dir:ctrl]]/[[config:cgi_env.ini]]'' file is missing this key.
 +
 +===== Configure Web Server For PHP-FPM =====
 +
 +Edit your ''[[dir:ctrl]]/[[config:sbbs.ini]]'' file, ensuring:
 +  - The Web Server is enabled (''AutoStart=true'')
 +  - If your application has an ''index.php'' file, that that file is included in the ''IndexFileNames'' value (comma separated list)
 +  - The ''MaxCgiInactivity'' value is set to something sane (default: 120 seconds)
 +  - The ''Options'' key value **does not** include the ''NO_CGI'' option (bit 5)
 +   
 +Example:
 +<file>
 +[Web]
 +AutoStart=true
 +IndexFileNames=index.html,index.ssjs,index.php
 +MaxCgiInactivity=120
 +Options=NO_HOST_LOOKUP
 +</file>
 +
 +Edit the [[server:web#webctrl.ini per-directory configuration file|webctrl.ini file]] at the root of your PHP application and configure it to use FastCGI.
 +
 +Example (using a TCP socket):
 +<file>
 +[*.php]
 +FastCGISocket=127.0.0.1:9000
 +</file>
 +
 +Example (using a UNIX Domain socket):
 +<file>
 +[*.php]
 +FastCGISocket=unix:/run/php/php-fpm.sock
 +</file>
 +
 +
 +Make sure that php-fpm is running and that the listener socket is the same as in the FastCGISocket line.
 +
 +:!: If you see the PHP error ''This PHP CGI binary was compiled with force-redirect enabled.'', that indicates that your ''[[dir:ctrl]]/[[config:cgi_env.ini]]'' file is missing this key.
  
 ===== See Also ===== ===== See Also =====
howto/php.1268803965.txt · Last modified: 2010/03/16 22:32 by digitalman
Back to top
CC Attribution 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0