HEX
Server: nginx/1.29.3
System: Linux 11979.bigscoots-wpo.com 6.8.0-88-generic #89-Ubuntu SMP PREEMPT_DYNAMIC Sat Oct 11 01:02:46 UTC 2025 x86_64
User: nginx (1068)
PHP: 7.4.33
Disabled: exec,system,passthru,shell_exec,proc_open,proc_close,popen,show_source,cmd# Do not modify this line # 1684243876
Upload Files
File: //bigscoots/wpo_json.sh
#!/bin/bash

PATH=/usr/lib64/ccache:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin

source /bigscoots/includes/common.sh

BSPATH=/root/.bigscoots
WPCLIFLAGS="--allow-root --skip-plugins --skip-themes --require=/bigscoots/includes/err_report.php"

function SLACK() {
  local message="$1"
  bash /bigscoots/general/slack.sh "#wpo-alerts" ":warning: *WPO JSON*\n*Hostname:* $(hostname)\n *Server IP:* ${serverip}\n *Message:* ${message}"
}

function REINSTALL_PHPMYADMIN {
  rm -rf /usr/local/nginx/html/*_mysqladmin*
  rm -rf /root/tools/phpmyadmin_update.sh
  rm -rf /usr/local/nginx/conf/conf.d/phpmyadmin_ssl.conf
  rm -rf /usr/local/nginx/conf/php_*_mysqladmin*.conf
  rm -rf /usr/local/nginx/conf/phpfpmd/phpfpm_myadmin.conf
  rm -rf /usr/local/nginx/conf/htpassphpmyadmin
  rm -rf /usr/local/nginx/conf/phpmyadmin_https.conf
  rm -rf /usr/local/nginx/conf/phpmyadmin.conf
  rm -rf /usr/local/nginx/conf/phpmyadmin_check
  rm -rf /root/centminlogs/centminmod_phpmyadmin_install_*.log
  sed -i '/include \/usr\/local\/nginx\/conf\/phpmyadmin.conf;'/d /usr/local/nginx/conf/conf.d/virtual.conf
  bash /bigscoots/wpo/extras/phpmyadmin.sh install
  check_nginx_and_update_http2
}


{

if [ ! -d "${BSPATH}" ]
then
  mkdir -p "$BSPATH"
  touch "$BSPATH"/backupinfo
fi

if [ -f /proc/vz/veinfo ]
then
  if grep -q bkuser= "${BSPATH}"/backupinfo
  then
    BKUSER=$(grep bkuser= "${BSPATH}"/backupinfo | sed 's/=/ /g' | awk '{print $2}')
  else
    BKUSER=wpo$(awk '{print $1}' /proc/vz/veinfo)
  fi
elif [[ ${HOSTNAME} =~ bigscoots-wpo.com ]]
then
  BKUSER=wpo$(hostname -s)
else
  BKUSER=wpo"${HOSTNAME//./}"
fi

if ! grep -q bkuser= "${BSPATH}"/backupinfo
then
  echo bkuser="${BKUSER}" >> "${BSPATH}"/backupinfo
fi

PHPMYADMINLOGS=$(ls -1 /root/centminlogs/centminmod_phpmyadmin_install_*.log 2>/dev/null| wc -l)
PHPMYADMININSTALLS=$(ls -1 /usr/local/nginx/html/ 2>/dev/null |grep mysqladmin | wc -l)

if [ "$PHPMYADMINLOGS" == 0 ] || [ "$PHPMYADMINLOGS" -gt 1 ] || [ "$PHPMYADMININSTALLS" == 0 ] || [ "$PHPMYADMININSTALLS" -gt 1 ]
then
  rm -rf /usr/local/nginx/html/*mysqladmin* /usr/local/nginx/conf/phpmyadmin_check /root/centminlogs/centminmod_phpmyadmin_*.log /usr/local/nginx/conf/conf.d/phpmyadmin_ssl.conf
  /bigscoots/wpo/extras/phpmyadmin.sh install
  sed -i 's/#include \/usr\/local\/nginx\/conf\/php.conf/include \/usr\/local\/nginx\/conf\/php.conf/g' /usr/local/nginx/conf/conf.d/phpmyadmin_ssl.conf
  check_nginx_and_update_http2
fi < /dev/null > /dev/null 2>&1


if grep -q wpo-template.bigscoots-wpo.com /usr/local/nginx/conf/conf.d/virtual.conf ; then
  sed -i "s/wpo-template.bigscoots-wpo.com/${HOSTNAME}/g" /usr/local/nginx/conf/conf.d/virtual.conf
  nginx -t > /dev/null 2>&1
  if [ $? -eq 0 ]; then
    npreload > /dev/null 2>&1
  else
    nginx -t 2>&1 | mail -s "WPO URGENT - Nginx conf fail during updating /usr/local/nginx/conf/conf.d/virtual.conf to replace hostname -  $HOSTNAME" [email protected]
  fi
fi < /dev/null > /dev/null 2>&1

json_output="["

if [ -n "$1" ]
then
  domain=$1
  domains=("$domain")
else
  domains=($(find /home/nginx/domains/ -maxdepth 1 -mindepth 1 -type d ! -name ".*" -name "*.*" -printf '%f\n'))
fi

for domain in "${domains[@]}"
do
  if [ -f /root/.bigscoots/creds/phpmyadmin.creds ] && [[ $(grep -c phpmyadmin_ /root/.bigscoots/creds/phpmyadmin.creds) -eq 3 ]]
  then
      pmacreds=/root/.bigscoots/creds/phpmyadmin.creds

      pma_url=https://"$HOSTNAME"/$(awk -F': ' '/phpmyadmin_dirname/{print $2}' "$pmacreds")
      pma_user=$(awk -F': ' '/phpmyadmin_username/{print $2}' "$pmacreds")
      pma_pass=$(awk -F': ' '/phpmyadmin_password/{print $2}' "$pmacreds")
  else
      pma_path=$(echo /usr/local/nginx/html/*mysqladmin* | sed 's/\/usr\/local\/nginx\/html\///g' | head -1)
      if ! [ -n "$pma_path" ] || ! grep -q "$pma_path" /root/centminlogs/centminmod_phpmyadmin_install_*.log
      then
        # Unable to find the phpMyAdmin path, reinstall and try again
        REINSTALL_PHPMYADMIN > /dev/null 2>&1
        pma_path=$(echo /usr/local/nginx/html/*mysqladmin* | sed 's/\/usr\/local\/nginx\/html\///g' | head -1)
        if ! [ -n "$pma_path" ] || ! grep -q "$pma_path" /root/centminlogs/centminmod_phpmyadmin_install_*.log
        then
          # Failed to reinstall phpMyAdmin, send a Slack message and exit
          SLACK "\`/bigscoots/wpo_json.sh\` failed even after trying to reinstall, please check manually."
          exit
        fi
      fi

      # Generate JSON with the updated $pma_path variable

      pma_url="https://$HOSTNAME/$pma_path/"
      pma_user=$(grep Username: $(grep -rl "$pma_path" /root/centminlogs/centminmod_phpmyadmin_install_*.log) | awk '{print $2}')
      pma_pass=$(grep Password: $(grep -rl "$pma_path" /root/centminlogs/centminmod_phpmyadmin_install_*.log) | awk '{print $2}')
  fi
      pmadb_user=$(wp ${WPCLIFLAGS} config get DB_USER --path="/home/nginx/domains/$domain/public/")
      pmadb_pass=$(wp ${WPCLIFLAGS} config get DB_PASSWORD --path="/home/nginx/domains/$domain/public/")

      # Build JSON for domain
      domain_json=$(cat <<EOF
{
    "domain": "$domain",
    "backupUser": "$bkuser",
    "serverIP": "$serverip",
    "phpMyAdmin": {
        "url": "$pma_url",
        "popupUsername": "$pma_user",
        "popupPassword": "$pma_pass",
        "username": "$pmadb_user",
        "password": "$pmadb_pass"
    }
}
EOF
)

  # Add domain JSON to output
  json_output+="$(echo "$domain_json" | tr -d '\n'),"

done

# Remove trailing comma and close JSON array
json_output="${json_output%,}]"

# Output JSON
if [ -n "$1" ]
then
  echo "$json_output" | sed 's/\[//g ; s/\]//g'
else
  echo "$json_output"
fi

} 2> /dev/nul