Загрузите и вставьте строку соли в WordPress wp-config.php с помощью Bash - PullRequest
12 голосов
/ 04 июня 2011

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

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

Ответы [ 8 ]

15 голосов
/ 04 июня 2011

Я не эксперт в разборе текстовых файлов в 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/

5 голосов
/ 06 мая 2013

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

#!/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
1 голос
/ 26 февраля 2017

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

WP-Соль-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 файла на вашем сервере или ПК.

1 голос
/ 02 ноября 2015

Если у вас есть 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
1 голос
/ 24 января 2013

Я думаю, что получил это! это скрипт bash, использующий только команды, обычно доступные в командной строке, и он выполняет -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 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
1 голос
/ 04 июня 2011

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

cat wp-config.php | sed 's/old_string/new_string/g' > wp-config.php
0 голосов
/ 13 октября 2017

Это скрипт bash, который я создал и который работает на моем сервере Ubuntu.Я изменил приведенные выше примеры.

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

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
0 голосов
/ 10 января 2017

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

#!/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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...