The HTTPD CNB provides the Apache HTTP Server binary distribution.
The buildpack installs the HTTPD binary distribution onto the $PATH which makes it available for
subsequent buildpacks, and sets up the start command which signals httpd to start.
A usage example can be found in the
samples repository under the httpd directory.
- Paketo Jammy
docker.io/paketobuildpacks/builder-jammy-basedocker.io/paketobuildpacks/builder-jammy-full
- Paketo Noble
docker.io/paketobuildpacks/ubuntu-noble-builder
To package this buildpack for consumption:
$ ./scripts/package.sh -v <version>
Specifying the HTTP Server version through buildpack.yml configuration
will be deprecated in Apache HTTP Server Buildpack v1.0.0.
To migrate from using buildpack.yml please set the following environment
variables at build time either directly (ex. pack build my-app --env BP_ENVIRONMENT_VARIABLE=some-value) or through a project.toml
file
The BP_HTTPD_VERSION variable allows you to specify the version of Apache HTTP Server that is installed.
BP_HTTPD_VERSION=2.4.43This will replace the following structure in buildpack.yml:
httpd:
# this allows you to specify a version constraint for the httpd dependency
# any valid semver constraints (e.g. 2.* and 2.4.*) are also acceptable
version: "2.4.43"The Apache HTTPD Server Buildpack now supports the ability for a user to just
provide a static application without having a httpd.conf and the buildpack
will now generate a default httpd.conf. In order to activate this workflow
the BP_WEB_SERVER environment variable must be set to httpd.
BP_WEB_SERVER=httpdWhile this will provide a default configuration there are a few modifications
that can be made to this httpd.conf by setting the following environment
variables and service bindings.
The BP_WEB_SERVER_ROOT variable allows you to modify the location of the static files
served by the web server by assigning the BP_WEB_SERVER_ROOT variable with an
absolute file path or a file path relative to /workspace. For example,
setting BP_WEB_SERVER_ROOT=my-build-directory would change the file path of
served files to /workspace/my-build-directory.
BP_WEB_SERVER_ROOT=htdocsThe BP_WEB_SERVER_ENABLE_PUSH_STATE variable to enable push state routing functionality.
BP_WEB_SERVER_ENABLE_PUSH_STATE=trueThe BP_WEB_SERVE_FORCE_HTTPS variable allows to enforce HTTPS for server connnections.
BP_WEB_SERVER_FORCE_HTTPS=trueYou are able to provide basic authentication credentials via an htpasswd type
service binding specifying the contents of a .htpasswd file. The service
binding will have the following directory structure.
binding
├── type
└── .htpasswd
The Apache HTTPD CNB provides httpd as a dependency. Downstream buildpacks, like php-web can require the httpd dependency by generating a Build Plan TOML file that looks like the following:
[[requires]]
# The name of the Apache HTTPD dependency is "httpd". This value is considered
# part of the public API for the buildpack and will not change without a plan
# for deprecation.
name = "httpd"
# The version of the Apache HTTPD dependency is not required. In the case it
# is not specified, the buildpack will provide the newest version, which can
# be seen in the buildpack.toml file.
# If you wish to request a specific version, the buildpack supports
# specifying a semver constraint in the form of "2.*", "2.4.*", or even
# "2.4.43".
version = "2.4.43"
# The Apache HTTPD buildpack supports some non-required metadata options.
[requires.metadata]
# Setting the launch flag to true will ensure that the Apache HTTPD
# dependency is available on the $PATH for the running application. If you
# are writing an application that needs to run Apache HTTPD at runtime, this
# flag should be set to true.
launch = true