Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Issue with PHP Common and PHP Cli #704

Open
OAuthority opened this issue Nov 9, 2023 · 2 comments
Open

Issue with PHP Common and PHP Cli #704

OAuthority opened this issue Nov 9, 2023 · 2 comments
Labels

Comments

@OAuthority
Copy link

OAuthority commented Nov 9, 2023

Affected Puppet, Ruby, OS and module versions/distributions

  • Puppet: 7.26.0
  • Distribution: Ubuntu 22.04
  • Module version: 10.0

How to reproduce (e.g Puppet code you use)

class mediawiki::php {
  $php_version = '7.4'
  $package_prefix = "php${php_version}-"

  # First, include the php::globals class and set global defaults
  class { 'php::globals':
    php_version => $php_version,
    config_root => "/etc/php/${php_version}",
  }

  # Ensure the PHP packages are installed before managing the PHP-FPM pool
  class { 'php::packages':
    ensure => present,
    manage_repos => true,
  }

  # Include and configure the PHP-FPM service
  class { 'php::fpm':
    user                        => 'www-data',
    group                       => 'www-data',
    service_ensure              => 'running',
    service_enable              => true,
    service_name                => "php${php_version}-fpm",
    package                     => "php${php_version}-fpm",
    inifile                     => "/etc/php/${php_version}/fpm/php.ini",
    pools                       => { 'www' => { 'listen' => "/var/run/php/php${php_version}-fpm.sock" } },
    log_owner                   => 'www-data',
    global_pool_settings        => {},
    log_group                   => 'www-data',
    pool_purge                  => false,
    reload_fpm_on_config_changes => true,
    settings                    => {
      'PHP/max_execution_time'  => '90',
      'PHP/max_input_time'      => '300',
      'PHP/memory_limit'        => '128M',
      'PHP/post_max_size'       => '32M',
      'PHP/upload_max_filesize' => '32M',
      'Date/date.timezone'      => 'UTC',
    },
    require => Class['php::packages'], # Ensure php::fpm is applied after php::packages
  }

  # Manage the PHP-FPM pool for MediaWiki
  php::fpm::pool { 'mediawiki':
    listen                  => "/var/run/php/php${php_version}-fpm-mediawiki.sock",
    pm                      => 'dynamic',
    pm_max_children         => 5,
    pm_start_servers        => 2,
    pm_min_spare_servers    => 2,
    pm_max_spare_servers    => 6,
    pm_max_requests         => 100,
  }

  # Install required PHP extensions for MediaWiki
  $extensions = [
    'gd',
    'curl',
    'intl',
    'mbstring',
    'mysqli',
    'xml',
    'zip',
  ]

  # Ensure each PHP extension is installed
  $extensions.each |String $extension| {
    package { "${package_prefix}${extension}":
      ensure => present,
    }
  }
}

What are you seeing

When running the agent, it installs the majority of the extensions defined, but fails at PHP Common and PHP Cli; no php.ini is generated.

What behaviour did you expect instead

PPH Common and PHP Cli should install, version 7.4, I believe.

Output log

Error: Execution of '/usr/bin/apt-get -q -y -o DPkg::Options::=--force-confold install cli' returned 100: Reading package lists...
Building dependency tree...
Reading state information...
E: Unable to locate package cli
Error: /Stage[main]/Php::Packages/Package[cli]/ensure: change from 'purged' to 'present' failed: Execution of '/usr/bin/apt-get -q -y -o DPkg::Options::=--force-confold install cli' returned 100: Reading package lists...
Building dependency tree...
Reading state information...
E: Unable to locate package cli
Debug: Executing: '/usr/bin/dpkg-query -W --showformat '${Status} ${Package} ${Version}\n' common'
Debug: Executing: '/usr/bin/apt-get -q -y -o DPkg::Options::=--force-confold install common'
Error: Execution of '/usr/bin/apt-get -q -y -o DPkg::Options::=--force-confold install common' returned 100: Reading package lists...
Building dependency tree...
Reading state information...
E: Unable to locate package common
Error: /Stage[main]/Php::Packages/Package[common]/ensure: change from 'purged' to 'present' failed: Execution of '/usr/bin/apt-get -q -y -o DPkg::Options::=--force-confold install common' returned 100: Reading package lists...
Building dependency tree...
Reading state information...
E: Unable to locate package common

Any additional information you'd like to impart

This is potentially me misconfiguring something, but I'm not sure. Also, I had to manually add the repository for php7.4, ppa:ondrej/php, which is what manage_repos should do, if I'm correct?

@OAuthority
Copy link
Author

OAuthority commented Nov 9, 2023

Perhaps I'm doing something wrong, here, but if I add:

class { '::php':
  ensure       => latest,
  manage_repos => true,
  fpm          => true,
  dev          => true,
  composer     => true,
  pear         => true,
  phpunit      => false,
}

I get an error that the php class isn't found; which I thought was weird, so I checked in /modules/php/manifests and It does not match the GitHub repo, the init.pp was missing? I manually created this, but this is obviously not ideal.

@kenyon
Copy link
Member

kenyon commented Nov 9, 2023

Your module installation is broken if init.pp is missing.

You shouldn't be declaring the php::fpm and php::packages classes, they are private.

@kenyon kenyon added the question label Nov 9, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants