Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
howto:php [2010/03/16 22:32] digitalman |
howto:php [2015/11/02 11:24] deuce Initial documentation for PHP-FPM |
||
---|---|---|---|
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: | ||
+ | <file> | ||
+ | [*.php] | ||
+ | FastCGISocket=127.0.0.1:9000 | ||
+ | </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 ===== |