Synchronet v3.19b-Win32 (install) has been released (Jan-2022).

You can donate to the Synchronet project using PayPal.

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, 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).

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:

  1. The Web Server is enabled (AutoStart=true)
  2. If your application has an index.php file, that that file is included in the IndexFileNames value (comma separated list)
  3. The MaxCgiInactivity value is set to something sane (default: 120 seconds)
  4. The CGIExtensions key value includes .php (comma separated list)
  5. The Options key value does not include the NO_CGI option (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:

  1. The Web Server is enabled (AutoStart=true)
  2. If your application has an index.php file, that that file is included in the IndexFileNames value (comma separated list)
  3. The MaxCgiInactivity value is set to something sane (default: 120 seconds)
  4. The Options key value does not include the NO_CGI option (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.

See Also