wordpress - seguido - wp-config.php location
Descargue e inserte salt string dentro de wordpress wp-config.php con Bash (8)
¿Qué hay de usar sed?
cat wp-config.php | sed ''s/old_string/new_string/g'' > wp-config.php
¿Cómo puedo insertar el contenido de la variable $ SALT en un punto específico (línea o cadena) de un archivo como wp-contet.php de wordpress usando el script Bash?
SALT=$(curl -L https://api.wordpress.org/secret-key/1.1/salt/)
No soy un experto en analizar archivos de texto en bash, pero debe eliminar las líneas que definen las cosas que está descargando de la sal de wordpress y luego insertar la variable al final ... algo así como:
#!/bin/sh
SALT=$(curl -L https://api.wordpress.org/secret-key/1.1/salt/)
STRING=''put your unique phrase here''
printf ''%s/n'' "g/$STRING/d" a "$SALT" . w | ed -s wp-config.php
Bien, ahora está arreglado ... debería buscar dónde se supone que se va la sal y lo reemplazará con la información que se obtiene de https://api.wordpress.org/secret-key/1.1/salt/
¡Creo que tengo este! es un script bash que utiliza solo comandos normalmente disponibles en el símbolo del sistema y lo hace -everything- (suponiendo que httpd es su usuario web) excepto que crea las bases de datos. aqui tienes.
#!/bin/bash
# wordpress latest auto-install script, by alienation 24 jan 2013. run as root.
# usage: ~/wp-install alien /hsphere/local/home/alien/nettrip.org alien_wpdbname alien_wpdbusername p@sSw0rd
# ( wp-install shell-user folder db-name db-user-name db-user-pw )
# download wordpress to temporary area
cd /tmp
rm -rf tmpwp
mkdir tmpwp
cd tmpwp
wget http://wordpress.org/latest.tar.gz
tar -xvzpf latest.tar.gz
# copy wordpress to where it will live, and go there, removing index placeholder if there is one
mv wordpress/* $2
cd $2
rm index.html
# create config from sample, replacing salt example lines with a real salt from online generator
grep -A 1 -B 50 ''since 2.6.0'' wp-config-sample.php > wp-config.php
wget -O - https://api.wordpress.org/secret-key/1.1/salt/ >> wp-config.php
grep -A 50 -B 3 ''Table prefix'' wp-config-sample.php >> wp-config.php
# put the appropriate db info in place of placeholders in our new config file
replace ''database_name_here'' $3 -- wp-config.php
replace ''username_here'' $4 -- wp-config.php
replace ''password_here'' $5 -- wp-config.php
# change file ownership and permissions according to ideal at http://codex.wordpress.org/Hardening_WordPress#File_Permissions
touch .htaccess
chown $1:httpd .htaccess
chown -R $1:httpd *
find . -type d -exec chmod 755 {} /;
find . -type f -exec chmod 644 {} /;
chmod -R 770 wp-content
chmod -R g-w wp-admin wp-includes wp-content/plugins
chmod g+w .htaccess
# thats it!
echo ALL DONE
Esta versión define nuevas claves si ninguna existe, y también reemplaza las claves existentes:
#!/bin/bash
find . -name wp-config.php -print | while read line
do
curl http://api.wordpress.org/secret-key/1.1/salt/ > wp_keys.txt
sed -i.bak -e ''/put your unique phrase here/d'' -e /
''/AUTH_KEY/d'' -e ''/SECURE_AUTH_KEY/d'' -e ''/LOGGED_IN_KEY/d'' -e ''/NONCE_KEY/d'' -e /
''/AUTH_SALT/d'' -e ''/SECURE_AUTH_SALT/d'' -e ''/LOGGED_IN_SALT/d'' -e ''/NONCE_SALT/d'' $line
cat wp_keys.txt >> $line
rm wp_keys.txt
done
Si tiene csplit
disponible, puede dividir el archivo wp-config.php original a cada lado de las definiciones de sal, descargar nuevas sales, y luego volver a conectar. Esto mantiene las instrucciones PHP define()
en la misma ubicación en wp-config.php en lugar de moverlas a una ubicación diferente dentro del archivo:
# Download new salts
curl "https://api.wordpress.org/secret-key/1.1/salt/" -o salts
# Split wp-config.php into 3 on the first and last definition statements
csplit wp-config.php ''/AUTH_KEY/'' ''/NONCE_SALT/+1''
# Recombine the first part, the new salts and the last part
cat xx00 salts xx02 > wp-config.php
# Tidy up
rm salts xx00 xx01 xx02
Me desafiaron con el mismo problema. Aquí está el script que escribí para reemplazar las sales y las claves de las descargadas de WordPress. Puede usarlo en cualquier momento para reemplazarlos si es necesario. Lo ejecuto como sudo, y el script lo prueba. Si usa una cuenta que puede descargar al directorio y realizar actualizaciones en el archivo wp-config.php, puede eliminar esa parte del script.
#!/bin/sh
# update-WordPress-Salts: Updates WordPress Salts
# written by Wayne Woodward 2017
if [ $# -lt 1 ]; then
echo "Usage: update-WordPress-Salts directory"
exit
fi
if [ "$(whoami)" != "root" ]; then
echo "Please run as root (sudo)"
exit
fi
WPPATH=$1
# Update the salts in the config file
# Download salts from WordPress and save them locally
curl http://api.wordpress.org/secret-key/1.1/salt/ > /var/www/$WPPATH/wp-keys.txt
# Iterate through each "Saltname" and append 1 to it
# For a couple names that may match twice like "AUTH_KEY" adds extra 1s to the end
# But that is OK as when this deletes the lines, it uses the same matching pattern
# (Smarter people may fix this)
for SALTNAME in AUTH_KEY SECURE_AUTH_KEY LOGGED_IN_KEY NONCE_KEY AUTH_SALT SECURE_AUTH_SALT LOGGED_IN_SALT NONCE_SALT
do
sed -i -e "s/$SALTNAME/${SALTNAME}1/g" /var/www/$WPPATH/wp-config.php
done
# Find the line that has the updated AUTH_KEY1 name
# This is so we can insert the file in the same area
line=$(sed -n ''/AUTH_KEY1/{=;q}'' /var/www/$WPPATH/wp-config.php)
# Insert the file from the WordPress API that we saved into the configuration
sed -i -e "${line}r /var/www/$WPPATH/wp-keys.txt" /var/www/$WPPATH/wp-config.php
# Itererate through the old keys and remove them from the file
for SALTNAME in AUTH_KEY SECURE_AUTH_KEY LOGGED_IN_KEY NONCE_KEY AUTH_SALT SECURE_AUTH_SALT LOGGED_IN_SALT NONCE_SALT
do
sed -i -e "/${SALTNAME}1/d" /var/www/$WPPATH/wp-config.php
done
# Delete the file downloaded from Wordpress
rm /var/www/$WPPATH/wp-keys.txt
Construí una CLI simple para eso. Pruébalo. Se llama [WP-Salts-Update-CLI][1]
.
WP-Sales-Update-CLI
WPSUCLI
descarga nuevas sales de la API de WP y las reemplaza con las de su archivo wp-config.php para cada sitio en su servidor.
⚡️ Instalación
Abra la terminal de línea de comando (prefiero iTerm2) y ejecute el siguiente comando.
bash sudo wget -qO wpsucli https://git.io/vykgu && sudo chmod +x ./wpsucli && sudo install ./wpsucli /usr/local/bin/wpsucli
Este comando realizará las siguientes acciones:
- Use sudo permisos
- Use wget para descargar
WPSUCLI
ywpsucli
awpsucli
- Hacer el ejecutable
wpsucli
- Instala
wpsucli
dentro de lawpsucli
/ usr / local / bin /.
🙌 Uso
Simplemente ejecute wpsucli
y actualizará las sales para cada archivo wp-config.php
en su servidor o PC.
Este es el script bash que se me ocurrió que funciona en mi servidor Ubuntu. Modifiqué los ejemplos de arriba.
Es un poco de fuerza bruta, ya que solo reemplazará las 8 claves que actualmente se requieren y espera que el servidor devuelva exactamente la misma clave de longitud cada vez. El script funciona bien para mi caso de uso, así que pensé que lo compartiría.
CONFIG_FILE=wp-config.php
SALT=$(curl -L https://api.wordpress.org/secret-key/1.1/salt/)
SRC="define(''AUTH_KEY''"; DST=$(echo $SALT|cat|grep -o define/(/'AUTH_KEY/'.//{70//}); sed -i "/$SRC/c$DST" $CONFIG_FILE
SRC="define(''SECURE_AUTH_KEY''"; DST=$(echo $SALT|cat|grep -o define/(/'SECURE_AUTH_KEY/'.//{70//}); sed -i "/$SRC/c$DST" $CONFIG_FILE
SRC="define(''LOGGED_IN_KEY''"; DST=$(echo $SALT|cat|grep -o define/(/'LOGGED_IN_KEY/'.//{70//}); sed -i "/$SRC/c$DST" $CONFIG_FILE
SRC="define(''NONCE_KEY''"; DST=$(echo $SALT|cat|grep -o define/(/'NONCE_KEY/'.//{70//}); sed -i "/$SRC/c$DST" $CONFIG_FILE
SRC="define(''AUTH_SALT''"; DST=$(echo $SALT|cat|grep -o define/(/'AUTH_SALT/'.//{70//}); sed -i "/$SRC/c$DST" $CONFIG_FILE
SRC="define(''SECURE_AUTH_SALT''"; DST=$(echo $SALT|cat|grep -o define/(/'SECURE_AUTH_SALT/'.//{70//}); sed -i "/$SRC/c$DST" $CONFIG_FILE
SRC="define(''LOGGED_IN_SALT''"; DST=$(echo $SALT|cat|grep -o define/(/'LOGGED_IN_SALT/'.//{70//}); sed -i "/$SRC/c$DST" $CONFIG_FILE
SRC="define(''NONCE_SALT''"; DST=$(echo $SALT|cat|grep -o define/(/'NONCE_SALT/'.//{70//}); sed -i "/$SRC/c$DST" $CONFIG_FILE