NAME
Test::Instance::Apache::Modules - Apache module management for T::I::A
SYNOPSIS
use FindBin qw/ $Bin /;
use Test::Instance::Apache::Modules;
my $modules = Test::Instance::Apache::Modules->new(
server_root => "$Bin/conf",
modules => [ qw/ mpm_prefork authz_core mome / ],
);
# get include paths for config
my $paths = $modules->include_modules;
DESCRIPTION
Test::Instance::Apache::Modules sets up the required modules for Apache according to an array of module names. This functions similarly to a2enmod which comes as part of the Apache distribution, however is much more simplified to only do what is necessary for T::I::A.
The module creates a mods-available and mods-enabled folder inside the "server_root" directory, and then copies the contents of /etc/apache2/mods-available into the new mods-available folder. Then, symlinks are created across to the mods-enabled folder, ready for Apache to include from the "include_modules" list.
Attributes
These are the available attributes on Test::Instance::Apache::Modules
modules
The arrayref of modules to symlink into mods-enabled folder. This is required. Note that any modules specified here will need to be installed on your local machine, and you will have to specify ALL modules required - there are no assumptions made for modules to include.
server_root
The root directory of the server config. This directory is where mods-available and mods-enabled directories will be created. This attribute is required.
include_modules
This creates the include paths for the conf and load files as required by Apache.
Methods
These are the methods available on Test::Instance::Apache::Modules.
load_modules
This function performs the main part of this module. This copies all the current mods from /etc/apache2/mods-available to the mods-available directory, and then symlinks all the required modules across to the mods-enabled folder.
make_server_dir
Utility function to create a new directory in the "server_root".
AUTHOR
Tom Bloor <t.bloor@shadowcat.co.uk>
COPYRIGHT
Copyright 2016 Tom Bloor
LICENCE
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.