IntroductionIntroduction
  InstallingInstalling
  HandlingHandling
  Virtual serversVirtual servers
  ModulesModules
  FilesystemsFilesystems
  RXML tagsRXML tags
  GraphicsGraphics
  ProxyProxy
  Miscellaneous modulesMiscellaneous modules
  Security considerationsSecurity considerations
  ScriptingScripting
    <Pike modules>Pike modules<Pike modules>Pike modules
    <Pike scripts>Pike scripts<Pike scripts>Pike scripts
    <Pike tag>Pike tag<Pike tag>Pike tag
    <CGI>CGI<CGI>CGI
    <SSI>SSI<SSI>SSI
    <FastCGI>FastCGI<FastCGI>FastCGI
    <Servlets>Servlets<Servlets>Servlets
  DatabasesDatabases
  LDAPLDAP
  IntraSeekIntraSeek
  LogViewLogView
  FrontPageFrontPage
  UpgradingUpgrading
  Third party extensionsThird party extensions
  PortabilityPortability
  Reporting bugsReporting bugs
  AppendixAppendix
 
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.