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
  FrontPageFrontPage
  UpgradingUpgrading
  Third party extensionsThird party extensions
  PortabilityPortability
  Reporting bugsReporting bugs
  AppendixAppendix
 
Pike scripts

Pike scripts are an easy and quick way of doing scripting in Challenger. Since Pike is also the language that Challenger uses internally, Pike scripts are efficient, and easy to handle.

Support for Pike scripts in Roxen Challenger is provided by two different modules, the general Pike script support module, and the Restricted Pike script support module. The difference is mainly that while the former gives the scripts access to the whole server, the latter runs each user's scripts in a separate server process running with that user's access privileges, greatly reducing the potential security problems that might result from faulty scripts.

As with Pike modules, error messages are reported complete with a Pike backtrace. This makes development fast since it is simple to pinpoint the problem.

Pike scripts are usually persistent. That means they will be compiled only once, and invoked repeatedly. This makes them fast and efficient.

Pike script support

Extensions
The extensions of Pike scripts.

Fork execution
Whether to invoke Pike scripts by forking or handle them internally. Forking is slower and uses more resources but is also more secure since the forked script will run as the user who owns the script and cannot take control over the server.
Fork execution does not work with threading.