GitHub puppet-php
Generic Puppet module to manage PHP on many platforms

Repo Checks ( 16 of 28 successfull )
Metadata Valid
No translation
passed
Correct Puppet Version Range
Supported Puppet version range is %{PUPPET_SUPPORT_RANGE}
passed
With Puppet Version Range
Puppet version range is present in requirements in metadata.json
passed
With Operatingsystem Support
No translation
passed
Operatingsystems
No translation
passed
Supports Only Current Ubuntu
No translation
passed
Supports Latest Ubuntu
No translation
failed
Supports Only Current Debian
No translation
passed
Supports Latest Debian
No translation
passed
Supports Only Current Redhat
No translation
passed
Supports Latest Redhat
No translation
failed
Supports Only Current Centos
No translation
passed
Supports Latest Centos
No translation
failed
Supports Only Current Freebsd
No translation
failed
Supports Latest Freebsd
No translation
failed
Supports Only Current Sles
No translation
passed
Supports Latest Sles
No translation
failed
Supports Only Current Opensuse
No translation
failed
Supports Latest Opensuse
No translation
failed
Supports Only Current Archlinux
No translation
failed
Supports Latest Archlinux
No translation
failed
In Modulesync Repo
Is listed as a module managed using modulesync_config
passed
Synced
Has a .msync.yml file
passed
Latest Modulesync
Has been synchronized with the latest tagged version of modulesync_config
failed
Has Modulesync
Is present in voxpupuli/modulesync_config/managed_modules.yml
passed
Released
Is in modulesync_config and in forge releases.
passed
Valid Sync File
If a (optional) sync file is present, it must not contain a `.travis.yml` entry.
failed
Reference Dot Md
The repository has a REFERENCE.md. It needs to be generated / puppet-strings documentation is missing.
passed

Open Pull Requests

WIP Is ctype extension idempotent ?
merge-conflicts
tests-fail

Pull Request (PR) description

Identify whether PHP extension ctype installation is idempotent

This Pull Request (PR) fixes the following issues

548

Open PR in GitHub
WIP Is iconv extension idempotent ?
merge-conflicts
tests-fail

Pull Request (PR) description

Identify whether PHP extension iconv installation is idempotent

This Pull Request (PR) fixes the following issues

548

Open PR in GitHub
WIP Is xmlreader extension idempotent ?
merge-conflicts
tests-fail

Pull Request (PR) description

Identify whether PHP extension xmlreader installation is idempotent

This Pull Request (PR) fixes the following issues

548

Open PR in GitHub
WIP Is posix extension idempotent ?
merge-conflicts
tests-fail

Pull Request (PR) description

Identify whether PHP extension posix installation is idempotent

This Pull Request (PR) fixes the following issues

548

Open PR in GitHub
WIP Is dom extension idempotent ?
merge-conflicts
tests-fail

Pull Request (PR) description

Identify whether PHP extension dom installation is idempotent

This Pull Request (PR) fixes the following issues

548

Open PR in GitHub
WIP Is xmlwriter extension idempotent ?
merge-conflicts
tests-fail

Pull Request (PR) description

Identify whether PHP extension xmlwriter installation is idempotent

This Pull Request (PR) fixes the following issues

548

Open PR in GitHub
WIP Is imagick extension idempotent ?
merge-conflicts
tests-fail

Pull Request (PR) description

Identify whether PHP extension imagick installation is idempotent

This Pull Request (PR) fixes the following issues

548

Open PR in GitHub
Harden default php settings
backwards-incompatible
needs-tests
needs-work
tests-fail

Following https://github.com/puppetlabs/puppetlabs-apache/pull/1749#issuecomment-358125758, I adapted to puppet-php.
For now it is just part of settings, not sure if it should be differentiated.
Risk: users silently overwriting it vs potential post-adaption needed

Potentially more settings to add.

Open PR in GitHub
Support other versions of remi repo on redhat
merge-conflicts
enhancement
needs-tests
Added option to notify httpd service for mod_php
enhancement
merge-conflicts
needs-tests

Pull Request (PR) description

If php::settings are changed and Apaches mod_php is used the Apache httpd must be restarted to re-read the config files.

This PR adds an option to identify the name of the Puppet Service resource to enable a restart of Apache httpd.

Open PR in GitHub
WIP: Debian repo handling refactoring
backwards-incompatible
merge-conflicts
needs-feedback
needs-work
tests-fail

<!--
Thank you for contributing to this project!

-->

Open PR in GitHub
WIP: Purge ext conf
merge-conflicts

Pull Request (PR) description

Allow configuration files to be purged.

This Pull Request (PR) fixes the following issues

Not directly releated but similar to https://github.com/voxpupuli/puppet-php/issues/237
No existing issue was created, we had a need for this functionality so we added it to our fork. Looking to contribute it back.

Open PR in GitHub
WIP:Debian Mysql Extension Fix
bug
merge-conflicts
needs-rebase
needs-tests
needs-work
tests-fail
Adding the option to set process.dumpable
needs-tests
merge-conflicts

Pull Request (PR) description

Adding the option to set process.dumpable

This Pull Request (PR) fixes the following issues

If process.dumpable is disabled core dumps cannot be captured on segfaults even if rlimit_core is set because of the following change to PHP:

https://github.com/php/php-src/commit/276d19feaa43e6f77eeac59fc9e2639bee4d116b#diff-10cc4db817271640849c40a7fc1f0569

Open PR in GitHub
Change datatype of `listen.?` parameters from `String[1]` to `Array[String[1]]`

Follow-up on #611 implementing listen.? parameters as arrays instead of strings.

Open PR in GitHub
Composer
backwards-incompatible
enhancement

Pull Request (PR) description

By default, when the module install composer, it use https://getcomposer.org/composer.phar
It install the latest preview from nighty build of the dev main repository.

I have set a case that allow to download the right version of composer depending from the channel selected. By default, it use the latest stable.

This Pull Request (PR) fixes the following issues

No issue

Open PR in GitHub
Allow sury repo for PHP >= 7.1.
merge-conflicts
needs-rebase

<!--
Thank you for contributing to this project!

-->

Pull Request (PR) description

Allow sury repo for PHP >= 7.1.

This Pull Request (PR) fixes the following issues

<!--
Replace this comment with the list of issues or n/a.
Use format:
Fixes #123
Fixes #124
-->

Open PR in GitHub
Support other versions of remi repo on redhat
enhancement
backwards-incompatible

Currently the class php::repo::redhat is hardcoded to create only the remi56 repo. This request removes that static value and creates based on $yumrepo. This allows for other versions such as remiphp72, etc..

Open PR in GitHub
Enhance acceptance tests
merge-conflicts

Pull Request (PR) description

Enhance acceptance tests

This Pull Request (PR) fixes the following issues

(TODO)

Open PR in GitHub
Prevent creation of pid file directory
bug
merge-conflicts
needs-feedback
needs-tests
tests-fail

Pull Request (PR) description

This PR prevents the creation of the hardcoded pid file directory if it is not used.

This Pull Request (PR) fixes the following issues

Fixes #501

Open PR in GitHub
Update docs to reflect changes from the last 3 years
tests-fail

I wanted to contribute back the info I got from #586 and I think this should do it :)

Pull Request (PR) description

Update readme with more info on using the Ondřej PPAs.

This Pull Request (PR) fixes the following issues

N/A

Open PR in GitHub
Rhel repo update
enhancement
merge-conflicts
needs-tests

<!--
Thank you for contributing to this project!

-->

Pull Request (PR) description

<!--
Adding php 7 support for RHEL variants via remi repositories.

PHP version can now be defined using the global php_version variable for RHEL variants.

Support for PHP 7.0, 7.1 and 7.2 added.

-->

This Pull Request (PR) fixes the following issues

<!--
Replace this comment with the list of issues or n/a.
Use format:
Fixes #123
Fixes #124
-->

Open PR in GitHub
Download stable version of composer as opposed to snapshot
needs-feedback

<!--
Thank you for contributing to this project!

-->

Pull Request (PR) description

<!--
Replace this comment with a description of your pull request.
-->
Download stable version of composer as opposed to snapshot

This Pull Request (PR) fixes the following issues

<!--
Replace this comment with the list of issues or n/a.
Use format:
Fixes #123
Fixes #124
-->
Fixes #575

Open PR in GitHub
(#607) add 'listen.acl_users' to defined type
merge-conflicts
enhancement

Pull Request (PR) description

enable configuring 'listen.aclusers' and 'listen.aclgroups' by adding that option to pool template

This Pull Request (PR) fixes the following issues

Fixes #607

Open PR in GitHub
Add option to disable management of rundir

I am using php7.4 from sury on debian 10.
After every server reboot, this module creates the /var/run/php-fpm directory (which is not used by php-fpm) and triggers a reload, which resets all open connections to the php-fpm daemon.

This PR added an option to disable the managing of the /var/run/php-fpm directory

Open PR in GitHub
Allow environment variables when configuring FPM pools

Pull Request (PR) description

Allows for PHP FPM pool settings to be configured as environment variables (pm_max_children => '${PM_MAX_CHILDREN}') in addition to their existing typed formats.

I debated about the best way to add this, and ended up adding Variant types, along with a single custom type. I did this because there were varying types (Integer[0], Integer[1], Php::Duration) that I didn't want to have to duplicate.

The env based configuration applies to every setting, but for right now I've added it to the most common ones where due to the stricter validation, it would previously fail.

This Pull Request (PR) fixes the following issues

Fixes #649

Open PR in GitHub
Fix version handling for remi repo
bug
merge-conflicts

Pull Request (PR) description

  • Cleans up and fixes version handling when installing PHP using the remi repo on CentOS/RHEL. Tested on CentOS 7.
  • Also adds beaker-vagrant to gemfile (see details in commit message for why)

Note: This changes the default version string of $php::globals::globals_php_version from 5.x to 5.6 on non-Debian/Ubuntu because we really should use sane version strings in such variables so we can re-use them elsewhere (like in php::repo::redhat for remi repo). I anticipate the versioning in php::globals will be cleaned up eventually. (I'll volunteer too.) It doesn't look like this change will have any adverse effects.

If merged, this PR obsoletes the following PRs: (Sorry, I'm impatient and they don't look like they're going anywhere)
- https://github.com/voxpupuli/puppet-php/pull/495
- https://github.com/voxpupuli/puppet-php/pull/509

This Pull Request (PR) fixes the following issues

Fixes #480

Open PR in GitHub
Install packages with stdlib ensure_packages

See https://github.com/voxpupuli/puppet-php/issues/581

In short, replaces all explicit definitions of a Puppet Package resource
with an instance of puppetlabs-stdlib's ensure_packages.

<!--
Thank you for contributing to this project!

-->

Pull Request (PR) description

Use the puppetlabs-stdlib ensure_packages function instead of Puppet package {} resources directly to avoid conflicting with other definitions of the package.

This Pull Request (PR) fixes the following issues

Fixes #581

Open PR in GitHub
ZendPHP support
enhancement

Description

This PR adds support for ZendPHP on its supported platforms.

This is accomplished by adding two parameters to php::globals:

  • Optional[Enum['community', 'zend']] $flavor
  • Optional[Hash] $zend_creds

Usage examples

puppet
class { '::php::globals':
php_version => '8.1',
flavor => 'zend',
}->
class { '::php':
fpm => true,
fpm_pools => {
www => {
listen => "127.0.0.1:9000",
},
}
}

puppet
class { '::php::globals':
php_version => '5.6',
flavor => 'zend',
zend_creds => {
'username' => '<USERNAME>',
'password' => '<PASSWORD>',
},
}->
class { '::php':
fpm => true,
fpm_pools => {
www => {
listen => "127.0.0.1:9000",
},
}
}

Open PR in GitHub
WIP Is apcu extension idempotent ?
merge-conflicts
tests-fail

Pull Request (PR) description

Identify whether PHP extension apcu installation is idempotent

This Pull Request (PR) fixes the following issues

548

Open PR in GitHub
Porting functions to the modern Puppet 4.x API
tests-fail

We noticed that your Puppet module includes Puppet 3.x function(s) and created
this pull request to help you get started porting them to the new API.

The Puppet function API has a long history and many people in the ecosystem,
including you, took advantage of this API to extend Puppet to do some really
cool things. Unfortunately the original function API had many critical
limitations, and so Puppet introduced a new and improved API with Puppet 4.x.

Each modern Puppet 4.x function is just a little faster and just a little safer
to use, meaning that as we all port our functions over, compilation times across
the ecosystem will get more and more performant. Modern Puppet 4.x functions
have improved thread safety, memory management, and load time. Even more
importantly, they’re isolated to the environment they’re loaded from.

And as a developer, you'll see benefits like namespaced function signatures,
automatic data type checking, multiple dispatches allowing you to easily handle
different kinds of function invocations, and vastly improved code reuse.


This pull request was autogenerated and the ported functions do not yet take
advantage of the data type checking or multiple dispatches. You will want to
finish the port by making those changes and adding any documentation updates.
See this tutorial for more information.

While you're at it, double check to see if there are any functions that couldn't
be automatically ported and update them yourself.

To be extra cautious about losing data, this pull request did NOT delete the
legacy function files, so when you're satisfied with the new functions, don't
forget to delete the legacy code!

If this repo is a fork, when you're all done, you might consider contributing
your work upstream.


If you have any questions, feel free to ping me in this PR, or stop by the
Puppet Community Slack to chat. And thanks so much
for being part of our vibrant community of developers!

Open PR in GitHub
Add validation of fpm and fpm-pools configuration files
enhancement
merge-conflicts
needs-work
tests-fail

Pull Request (PR) description

This PR adds validation check for fpm and fpm pools configuration file before applying changes.

Having introduced a misconfiguration on php-fpm that avoid the service to start normally (pm.start_servers > pm.max_spare_servers), catalog application was successfull but service failed to restart.


[13-Feb-2020 20:48:24] ALERT: [pool www] pm.start_servers(80) must not be less than pm.min_spare_servers(24) and not greater than pm.max_spare_servers(64)
[13-Feb-2020 20:48:24] ERROR: failed to post process the configuration

Open PR in GitHub
modulesync 5.4.0
modulesync

modulesync 5.4.0

Open PR in GitHub
fpm: manage runtime- and log directory based on params

instead of hardcoding the paths for the log- and runtime directory, calculate them based on the errorlog and pidfile params respectively. the directories will not be managed if they are shared system locations like /var/log or /run (this is checked by ensuring the directories have php in their name, signalling that those are paths dedicated to PHP)

<!--
Thank you for contributing to this project!

-->

Pull Request (PR) description

<!--
Replace this comment with a description of your pull request.
-->

This Pull Request (PR) fixes the following issues

<!--
Replace this comment with the list of issues or n/a.
Use format:
Fixes #123
Fixes #124
-->

Open PR in GitHub
require pear in pecl file
needs-rebase

This fixes the pecl provider autoloading the pear provider. On Puppet 4.9.4, I get the following error:

Puppet::Error:
Could not autoload puppet/type/package: Could not autoload puppet/provider/package/pecl: cannot load such file -- puppet/provider/pear

It doesn't seem to happen on Puppet 3. This is fixed by requiring pear explicitly in the pecl provider code.

Open PR in GitHub
Fix behavior of php::packages::names_to_prefix

Pull Request (PR) description

The documentation for php::packages::names_to_prefix suggests that the module will add php::package_prefix to the beginning of the listed package names. However, since the prefix() function is in the parameter default, the prefix is only applied to the default value (php::params::common_package_suffixes) rather than to user-defined php::packages::names_to_prefix. This commit fixes that behavior, so that either the default or user-defined php::packages::names_to_prefix will have prefixes added by the module.

This Pull Request (PR) fixes the following issues

n/a

Open PR in GitHub
add some fact checks to not add php5.6 repo to new alma/redhat system…

Pull Request (PR) description

current redhat.pp will add wrong .repo files to new redhat and almalinux (8 and 9) systems. You run into a 404 by default with this redhat.pp

This Pull Request (PR) fixes the following issues

Now we check the releaseversion, and if you run a AlmaLinux or Redhat System in version 8 or 9, you will not receive the remi-php56.repo file, because there is no existing repo url.

Cheers
Christian

Open PR in GitHub
Add support for Ubuntu 24.04

Pull Request (PR) description

Add support for Ubuntu 24.04

This Pull Request (PR) fixes the following issues

Will add support for Ubuntu 24.04 with PHP 8.3

Open PR in GitHub