Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # Look for wp-config.php in the current directory and if it exists, read db-name value
- if [ -f "wp-config.php" ]; then
- # Read db-name value from wp-config.php
- db_name=$(grep -oP "(?<=DB_NAME',\s').*(?=')" wp-config.php)
- # Abort execution with an error message if DB_NAME is empty
- if [ -z "$db_name" ]; then
- echo "Error: WordPress instance seems misconfigured. DB_NAME is not defined in wp-config.php."
- exit 1
- fi
- # Check if /etc/redis/redis.conf exists and abort execution with an error message if it does not
- if [ ! -f "/etc/redis/redis.conf" ]; then
- echo "Error: redis.conf could not be located."
- exit 1
- fi
- # Read bind IP, port number and password from /etc/redis/redis.conf
- bind_ip=$(grep -oP '^bind\s+\K\S+' /etc/redis/redis.conf)
- port=$(grep -oP '^port\s+\K\S+' /etc/redis/redis.conf)
- password=$(grep -oP '^requirepass\s+\K\S+' /etc/redis/redis.conf)
- # Create a random 16-character string derived from the db-name value
- salt=$(echo -n "$db_name" | md5sum | cut -c -16)
- # Determine the Redis host name or IP based on the bind IP
- if [ "$bind_ip" == "127.0.0.1" ] || [ "$bind_ip" == "::1" ]; then
- redis_host="localhost"
- else
- redis_host=$bind_ip
- fi
- # Check if any Redis constants are already defined in wp-config.php, and exit with a warning if they are
- if grep -qE "define\(['\"]?(WP_REDIS_HOST|WP_REDIS_PORT|WP_REDIS_PASSWORD|WP_CACHE_KEY_SALT)['\"]?\s*,\s*['\"]" wp-config.php; then
- echo "Warning: Some or all Redis constants may already be defined in wp-config.php. Exiting without writing anything."
- exit
- fi
- # Write the new Redis constants inside wp-config.php before the "That's all, stop editing! Happy publishing." line
- sed -i "s#/\* That's all, stop editing! Happy publishing\. \*/#define( 'WP_REDIS_HOST', '$redis_host' );\\
- define( 'WP_REDIS_PORT', '$port' );\\
- define( 'WP_REDIS_PASSWORD', '$password' );\\
- define( 'WP_CACHE_KEY_SALT', '$salt' );\\
- \\
- /\* That's all, stop editing! Happy publishing. \*/#" wp-config.php
- echo "New Redis constants added to wp-config.php"
- else
- echo "Error: wp-config.php not found"
- exit 1
- fi
Advertisement
Advertisement