Подтвердить что ты не робот

Загрузите и вставьте сольную строку в wordpress wp-config.php с Bash

Как вставить содержимое переменной $SALT в определенную точку (строку или строку) файла, такого как wp-contet.php, из wordpress с помощью Bash script?

SALT=$(curl -L https://api.wordpress.org/secret-key/1.1/salt/)
4b9b3361

Ответ 1

Я не эксперт по разбору текстовых файлов в bash, но вы должны удалить строки, которые определяют вещи, которые вы загружаете из солида Wordpress, а затем вставляете переменную в конец... что-то вроде:

#!/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

ОК, теперь он исправлен... он должен искать, где соль должна идти, и она заменит его информацией, полученной из https://api.wordpress.org/secret-key/1.1/salt/

Ответ 2

Эта версия определяет новые ключи, если их нет, а также заменяет существующие ключи:

#!/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

Ответ 3

Как насчет использования sed?

cat wp-config.php | sed 's/old_string/new_string/g' > wp-config.php

Ответ 4

Я думаю, что получил этот! его bash script, используя только команды, обычно доступные в командной строке, и это делает -everything- (предполагая, что httpd является вашим веб-пользователем), кроме создания баз данных. здесь вы идете.

#!/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 [email protected]
# ( 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

Ответ 5

Я построил простой CLI для этого. Попробуйте. Он называется [WP-Salts-Update-CLI][1].

WP-Salts-Update-CLI

WPSUCLI загружает новые соли из WP API и заменяет их теми, что содержатся в вашем файле wp-config.php для каждого сайта вашего сервера.

⚡️ Установка

Откройте терминал командной строки (я предпочитаю iTerm2) и выполните следующую команду.

bash sudo wget -qO wpsucli https://git.io/vykgu && sudo chmod +x ./wpsucli && sudo install ./wpsucli /usr/local/bin/wpsucli

Эта команда выполнит следующие действия:

  • Использовать разрешения sudo
  • Используйте wget для загрузки WPSUCLI и переименуйте его в WPSUCLI
  • Сделайте исполняемый файл WPSUCLI
  • Установите WPSUCLI внутри /usr/local/bin/folder.

🙌 Использование

Просто запустите WPSUCLI, и он обновит соли для каждого файла wp-config.php на вашем сервере или ПК.

Ответ 6

Если у вас есть csplit, вы можете разбить исходный файл wp-config.php с каждой стороны определений солей, загрузить новый соли, затем кошка вместе. Это держит операторы PHP define() в том же месте в wp-config.php вместо того, чтобы перемещать их в другое место в файле:

# 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

Ответ 7

Мне поставили под сомнение тот же вопрос. Вот script Я написал, чтобы заменить соли и ключи от загружаемых из WordPress. Вы можете использовать его в любое время, чтобы заменить их, если это необходимо. Я запускаю его как sudo, и script тесты для этого. Если вы используете учетную запись, которая может загружаться в каталог и делать обновления в файле wp-config.php, вы можете удалить эту часть 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

Ответ 8

Это bash script, с которым я столкнулся, что работает на моем сервере Ubuntu. Я изменил примеры сверху.

Немного грубой силы в том, что он заменит только 8 ключей, которые в настоящее время требуются, и ожидает, что сервер будет каждый раз возвращать точно такой же ключ длины. script хорошо работает для моего использования, поэтому я решил поделиться им.

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