jpsType: update id: wordpress-core-installation name: WordPress Core Installation description: WordPress Core Installation mixins: - /scripts/common.yml # Ensure this mixin does not introduce 'fields' # Removed vers.yaml to prevent overriding 'beforeInit.js' settings globals: WP_ADMIN_PASS: "${settings.wp_admin_pass}" WP_TITLE: "${settings.wp_title}" WP_ADMIN_USER: "${settings.wp_admin_user:admin}" WP_ADMIN_EMAIL: "${settings.wp_admin_email:admin@example.com}" DB_HOST: "${settings.db_host}" DB_NAME: "wp_${fn.random}" DB_USER: "${settings.db_user}" DB_PASS: "${settings.db_pass}" REDIS_HOST: "${settings.redis_host:/var/run/redis/redis.sock}" REDIS_PORT: "${settings.redis_port:0}" REDIS_USER: "${settings.redis_user:}" REDIS_PSWD: "${settings.redis_pswd:}" WP_URL: "${settings.wp_url}" BASE_URL: "${globals.BASE_URL}" VERSION_WORDPRESS: "${settings.version_wordpress:6.3.1}" version_lscache: "${settings.version_lscache:5.6.4}" TARGET_NODE_ID: "${settings.targetNodeID}" SERVER_WEBROOT: "/var/www/webroot/ROOT" # Optional for consistency onInstall: - deployWordPress - installScripts - installWordpress - setupWordPress - installPlugins - setupPlugins actions: deployWordPress: - cmd[${globals.TARGET_NODE_ID}]: |- echo "Deploying WordPress Version ${globals.VERSION_WORDPRESS}" >> /var/log/deploy_wordpress.log; wget -qO /tmp/wordpress.tar.gz 'https://wordpress.org/wordpress-${globals.VERSION_WORDPRESS}.tar.gz'; [ -d /tmp/wordpress/ ] && rm -rf /tmp/wordpress; tar -xzf /tmp/wordpress.tar.gz -C /tmp/; rsync -a /tmp/wordpress/ ${globals.SERVER_WEBROOT}/ >> /var/log/deploy_wordpress.log 2>&1; - addContext [cp]: name: ROOT fileName: WordPress type: ARCHIVE installWordpress: - cmd[${globals.TARGET_NODE_ID}]: |- echo "Creating Database ${globals.DB_NAME}" >> /var/log/install_wordpress.log; mysql -u${globals.DB_USER} -p${globals.DB_PASS} -h ${globals.DB_HOST} -e "CREATE DATABASE IF NOT EXISTS ${globals.DB_NAME};" >> /var/log/install_wordpress.log 2>&1; echo "Configuring wp-config.php" >> /var/log/install_wordpress.log; cd ${globals.SERVER_WEBROOT} && wp core config --dbhost=${globals.DB_HOST} --dbname=${globals.DB_NAME} --dbuser=${globals.DB_USER} --dbpass=${globals.DB_PASS} --path=${globals.SERVER_WEBROOT} >> /var/log/install_wordpress.log 2>&1; echo "Installing WordPress Core" >> /var/log/install_wordpress.log; cd ${globals.SERVER_WEBROOT} && wp core install --title="${globals.WP_TITLE}" --admin_user=${globals.WP_ADMIN_USER} --admin_password=${globals.WP_ADMIN_PASS} --url=${globals.WP_URL} --admin_email=${globals.WP_ADMIN_EMAIL} --skip-email --path=${globals.SERVER_WEBROOT} >> /var/log/install_wordpress.log 2>&1; echo "Downloading favicon.ico" >> /var/www/webroot/ROOT/favicon.ico; wget ${globals.BASE_URL}/images/favicon.ico -O ${globals.SERVER_WEBROOT}/favicon.ico >> /var/log/install_wordpress.log 2>&1; installScripts: - cmd[cp]: |- echo "Installing WP-CLI" >> /var/log/install_scripts.log; [ ! -d $HOME/bin ] && mkdir $HOME/bin; curl -o $HOME/bin/wp https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar && chmod +x $HOME/bin/wp; echo "Configuring WP-CLI" >> /var/log/install_scripts.log; echo "apache_modules:" > $HOME/bin/wp-cli.yml; echo " - mod_rewrite" >> $HOME/bin/wp-cli.yml; echo "export PATH=\$PATH:\$HOME/bin/" >> $HOME/.bash_profile; echo "Downloading setupWP.sh" >> /var/log/install_scripts.log; wget ${globals.BASE_URL}/scripts/setupWP.sh?_r=${fn.random} -O $HOME/bin/setupWP.sh &>> /var/log/install_scripts.log; - cmd[cp]: echo "Updating redeploy.conf and installing jq" >> /var/log/install_scripts.log; echo ${response.out} >> /etc/jelastic/redeploy.conf; yum install jq -y &>> /var/log/install_scripts.log; user: root setupWordPress: - cmd[${globals.TARGET_NODE_ID}]: |- echo "Disabling WP Auto Update Core" >> /var/log/setup_wordpress.log; grep -qE "(WP_AUTO_UPDATE_CORE)" ${globals.SERVER_WEBROOT}/wp-config.php || sed -i "/^\$table_prefix.*/a define( 'WP_AUTO_UPDATE_CORE', false );" ${globals.SERVER_WEBROOT}/wp-config.php; echo "Updating Permalink Structure" >> /var/log/setup_wordpress.log; wp option update permalink_structure '/%postname%/' --path=${globals.SERVER_WEBROOT} >> /var/log/setup_wordpress.log 2>&1; echo "Setting Rewrite Structure" >> /var/log/setup_wordpress.log; wp rewrite structure '/%postname%/' --hard --path=${globals.SERVER_WEBROOT} >> /var/log/setup_wordpress.log 2>&1; installPlugins: - cmd[${globals.TARGET_NODE_ID}]: |- echo "Installing LiteSpeed Cache Plugin Version ${globals.version_lscache}" >> /var/log/install_plugins.log; wp plugin install litespeed-cache --version=${globals.version_lscache} --activate --path=${globals.SERVER_WEBROOT} &>> /var/log/install_plugins.log; echo "Flushing WordPress Cache" >> /var/log/install_plugins.log; wp cache flush --path=${globals.SERVER_WEBROOT} &>> /var/log/install_plugins.log; setupPlugins: - cmd[${globals.TARGET_NODE_ID}]: |- echo "Running setupWP.sh with Redis Configuration" >> /var/log/setup_plugins.log; bash $HOME/bin/setupWP.sh --pgcache true --objectcache true --REDIS_HOST ${globals.REDIS_HOST} --REDIS_PORT ${globals.REDIS_PORT} --REDIS_USER ${globals.REDIS_USER} --REDIS_PSWD ${globals.REDIS_PSWD} >> /var/log/setup_plugins.log 2>&1;