Table of Contents
Use PHP with the Synchronet Web Server
Dynamic PHP content may be served by the Synchronet Web Server using PHP-CGI or, for 3.17a builds newer than November 1st, 2015, 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).
Install PHP
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 your PHP application(s) into your [Web] Root directory, as specified in your sbbs.ini file.
Note: many PHP web applications require 3rd party database support (e.g. MySQL), which may need to be installed as well.
Configure Web Server For PHP-CGI
Edit your ctrl/sbbs.ini file, ensuring:
- The Web Server is enabled (
AutoStart=true) - If your application has an
index.phpfile, that that file is included in theIndexFileNamesvalue (comma separated list) - The
MaxCgiInactivityvalue is set to something sane (default: 120 seconds) - The
CGIExtensionskey value includes.php(comma separated list) - The
Optionskey value does not include theNO_CGIoption (bit 5)
Example:
[Web] AutoStart=true IndexFileNames=index.html,index.ssjs,index.php MaxCgiInactivity=120 CGIExtensions=.cgi,.pl,.php Options=NO_HOST_LOOKUP
Edit your ctrl/web_handler.ini file.
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.
Example (*nix):
[CGI] php = /usr/local/bin/php-cgi
Example (Windows):
[CGI.Win32] php = /php/php-cgi.exe
Edit your ctrl/cgi_env.ini file, ensuring it contains the following lines:
[REDIRECT_STATUS] value=200
If you see the PHP error
This PHP CGI binary was compiled with force-redirect enabled., that indicates that your ctrl/cgi_env.ini file is missing this key.
Configure Web Server For PHP-FPM
Edit your ctrl/sbbs.ini file, ensuring:
- The Web Server is enabled (
AutoStart=true) - If your application has an
index.phpfile, that that file is included in theIndexFileNamesvalue (comma separated list) - The
MaxCgiInactivityvalue is set to something sane (default: 120 seconds) - The
Optionskey value does not include theNO_CGIoption (bit 5)
Example:
[Web] AutoStart=true IndexFileNames=index.html,index.ssjs,index.php MaxCgiInactivity=120 Options=NO_HOST_LOOKUP
Edit the webctrl.ini file at the root of your PHP application and configure it to use FastCGI.
Example (using a TCP socket):
[*.php] FastCGISocket=127.0.0.1:9000
Example (using a UNIX Domain socket):
[*.php] FastCGISocket=unix:/run/php/php-fpm.sock
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 ctrl/cgi_env.ini file is missing this key.