Class PhpUserDataBuilder

java.lang.Object
com.cloudforgeci.api.core.PhpUserDataBuilder

public final class PhpUserDataBuilder extends Object
UserData builder extension for PHP applications on EC2.

Provides helper methods for installing and configuring PHP, NGINX, and CMS platforms on Amazon Linux 2023 EC2 instances.

Usage Example:

public void configureUserData(UserDataBuilder builder, Ec2Context context) {
    builder.addSystemUpdate();

    PhpRuntimeConfig config = PhpRuntimeConfig.forWordPress();
    PhpUserDataBuilder.installPhp(builder, config);
    PhpUserDataBuilder.installNginx(builder);
    PhpUserDataBuilder.installWordPress(builder, "/var/www/html");

    // Mount storage
    if (context.hasEfs()) {
        builder.mountEfs(...);
    }
}
Since:
3.1.0
  • Method Details

    • installPhp

      public static void installPhp(UserDataBuilder builder, PhpRuntimeConfig config)
      Install PHP and required extensions on Amazon Linux 2023.
      Parameters:
      builder - the UserDataBuilder
      config - the PHP runtime configuration
    • configurePhpIni

      public static void configurePhpIni(UserDataBuilder builder, PhpRuntimeConfig config)
      Configure PHP memory limits, execution time, and other settings.
      Parameters:
      builder - the UserDataBuilder
      config - the PHP runtime configuration
    • configurePhpFpm

      public static void configurePhpFpm(UserDataBuilder builder, PhpRuntimeConfig config)
      Configure PHP-FPM pool settings.
      Parameters:
      builder - the UserDataBuilder
      config - the PHP runtime configuration
    • installNginx

      public static void installNginx(UserDataBuilder builder)
      Install NGINX web server.
      Parameters:
      builder - the UserDataBuilder
    • configureNginx

      public static void configureNginx(UserDataBuilder builder, String nginxConfig)
      Configure NGINX with a provided configuration.
      Parameters:
      builder - the UserDataBuilder
      nginxConfig - the NGINX configuration content
    • installWpCli

      public static void installWpCli(UserDataBuilder builder)
      Install WP-CLI for WordPress management.
      Parameters:
      builder - the UserDataBuilder
    • installWordPress

      public static void installWordPress(UserDataBuilder builder, String installPath)
      Download and install WordPress.
      Parameters:
      builder - the UserDataBuilder
      installPath - the installation directory
    • installComposer

      public static void installComposer(UserDataBuilder builder)
      Install Composer for PHP dependency management.
      Parameters:
      builder - the UserDataBuilder
    • installDrush

      public static void installDrush(UserDataBuilder builder)
      Install Drush for Drupal management.
      Parameters:
      builder - the UserDataBuilder
    • installMagentoDependencies

      public static void installMagentoDependencies(UserDataBuilder builder)
      Install Magento CLI dependencies.
      Parameters:
      builder - the UserDataBuilder
    • configureCron

      public static void configureCron(UserDataBuilder builder, CmsSpec spec, String siteUrl)
      Configure system cron for CMS scheduled tasks.
      Parameters:
      builder - the UserDataBuilder
      spec - the CMS specification
      siteUrl - the site URL
    • configureRedisCache

      public static void configureRedisCache(UserDataBuilder builder, String redisHost, int redisPort)
      Install Redis PHP extension and configure for object caching.
      Parameters:
      builder - the UserDataBuilder
      redisHost - Redis server hostname
      redisPort - Redis server port
    • installCloudWatchAgent

      public static void installCloudWatchAgent(UserDataBuilder builder, String logGroupName, CmsSpec spec)
      Install and configure CloudWatch Agent for PHP logs.
      Parameters:
      builder - the UserDataBuilder
      logGroupName - CloudWatch log group name
      spec - the CMS specification
    • setFilePermissions

      public static void setFilePermissions(UserDataBuilder builder, String documentRoot, String webUser, String webGroup)
      Set up file permissions for CMS directory.
      Parameters:
      builder - the UserDataBuilder
      documentRoot - document root path
      webUser - web server user (e.g., "nginx", "www-data")
      webGroup - web server group
    • configureSELinux

      public static void configureSELinux(UserDataBuilder builder, String documentRoot)
      Configure SELinux for PHP/NGINX (if enabled).
      Parameters:
      builder - the UserDataBuilder
      documentRoot - document root path
    • completeInstallation

      public static void completeInstallation(UserDataBuilder builder, CmsSpec spec, PhpRuntimeConfig config, String documentRoot)
      Complete CMS installation with all standard components.
      Parameters:
      builder - the UserDataBuilder
      spec - the CMS specification
      config - the PHP runtime configuration
      documentRoot - document root path