# Apache-specific Functions

## Introduction

These functions are only available when running PHP as an Apache module.

> Note: As of PHP 4.3.2, PATH_TRANSLATED is no longer set implicitly under the Apache 2 SAPI in contrast to the situation in Apache 1, where it's set to the same value as the SCRIPT_FILENAME server variable when it's not populated by Apache. This change was made to comply with the CGI specification that PATH_TRANSLATED should only exist if PATH_INFO is defined. Apache 2 users may use AcceptPathInfo = On inside httpd.conf to define PATH_INFO.

## Installation

For PHP installation on Apache see the installation chapter.

## Runtime Configuration

The behaviour of the Apache PHP module is affected by settings in php.ini. Configuration settings from php.ini may be overridden by php_flag settings in the server configuration file or local .htaccess files.

Example#1 Turning off PHP parsing for a directory using .htaccess

    php_flag engine off

Apache configuration options
Name | Default | Changeable | Changelog
--- | --- | --- | ---
engine | "1" | PHP_INI_ALL | Available since PHP 4.0.5.
child_terminate | "0" | PHP_INI_ALL | Available since PHP 4.0.5.
last_modified | "0" | PHP_INI_ALL | Available since PHP 4.0.5.
xbithack | "0" | PHP_INI_ALL | Available since PHP 4.0.5.

For further details and definitions of the PHP_INI_* constants, see the php.ini directives.

Here's a short explanation of the configuration directives.

`engine` boolean

  Turns PHP parsing on or off. This directive is really only useful in the Apache module version of PHP. It is used by sites that would like to turn PHP parsing on and off on a per-directory or per-virtual server basis. By putting `engine off` in the appropriate places in the httpd.conf file, PHP can be enabled or disabled.

`child_terminate` boolean

  Specify whether PHP scripts may request child process termination on end of request, see also apache_child_terminate().

`last_modified` boolean

  Send PHP scripts modification date as Last-Modified: header for this request.

`xbithack` boolean

  Parse files with executable bit set as PHP regardless of their file ending.

## Resource Types

This extension has no resource types defined.

## Predefined Constants

This extension has no constants defined.

## Table of Contents

- apache_child_terminate — Terminate apache process after this request
- apache_get_modules — Get a list of loaded Apache modules
- apache_get_version — Fetch Apache version
- apache_getenv — Get an Apache subprocess_env variable
- apache_lookup_uri — Perform a partial request for the specified URI and return all info about it
- apache_note — Get and set apache request notes
- apache_request_headers — Fetch all HTTP request headers
- apache_reset_timeout — Reset the Apache write timer
- apache_response_headers — Fetch all HTTP response headers
- apache_setenv — Set an Apache subprocess_env variable
- ascii2ebcdic — Translate string from ASCII to EBCDIC
- ebcdic2ascii — Translate string from EBCDIC to ASCII
- getallheaders — Fetch all HTTP request headers
- virtual — Perform an Apache sub-request