Introduction
  Installing
  Handling
  Virtual servers
  Modules
  Filesystems
  RXML tags
  Graphics
  Proxy
  Miscellaneous modules
  Security considerations
  Scripting
    Pike modules
    Pike scripts
    Pike tag
    CGI
    SSI
    FastCGI
    Servlets
  Databases
  LDAP
  FrontPage
  Upgrading
  Third party extensions
  Portability
  Reporting bugs
  Appendix
 
Pike modules

Pike modules are, strictly speaking, not scripts in the same sense as the other script types. Rather, they are a way of extending the server's functionality. Most of Challenger's functions are implemented as Pike modules. However, since Pike modules are often a convenient way of doing things that might otherwise have been done with regular scripts, Pike modules belong in this overview.

Pike modules can be used to implement new RXML tags, support new communication protocols, and numerous other things that would be impossible or difficult with other script types. Pike modules are also persistent entities in the server, as opposed to ordinary CGI scripts, which are executed in a single-shot fashion, starting anew each time they are invoked. FastCGI scripts are somewhat persistent.

From a security viewpoint, Pike modules must be treated with utmost care. Pike modules have access to the whole server. Thus, only trusted users should be able to write their own Pike module, and Pike modules should only be downloaded from reputable web sites. Apart from the security considerations, Pike modules that take a long time executing can also cause performance degradation and other service disruptions, especially if the server isn't running with enough threads.

Challenger is an excellent tool for developing Pike modules. Compile time and run time error messages will be reported, with a Pike backtrace so the problem can be pinpointed. All such error messages will be reported on the Event Log tab and in the debug log. They will also be reported on the web page where the error occurred, unless the Global Variables/Show the internals variable is disabled.