TechBlogSD - Все для WordPress и WEB разработки
WEB и WordPress инструкции, новости, обзоры тем и плагинов

Используйте командную строку поиска и замены для WordPress SQL БД в Search Replace DB

418

Возможно, вы слышали, как я упоминал этот скрипт в моих предыдущих статьях, поскольку я искренне рекомендую его для изменения тех надоедливых ссылок, которые все еще указывают на старые URL-адреса . Я понятия не имею, как люди перемещают или копируют свой сайт WordPress без инструмента Search Replace DB. Его сила заключается в замене сериализованных значений глубоко в базе данных. Кроме того, он не зависит от WordPress, хотя работает с ним (и даже официально рекомендуется). Эта статья посвящена версии командной строки Search Replace DB, которая более надежна и менее подвержена ошибкам.

GUI может потерпеть неудачу!

Я использовал графический интерфейс только до того дня, когда он мне показался неудачным (с ошибкой AJAX). Проблема возникла из-за перемещения сайта WordPress, который я не создавал. Был плагин под названием Duplicator, который использовал BLOB, тип данных двоичного объекта в базе данных, который, я признаю, я никогда не видел раньше. Мне пришлось копаться в журналах сервера на Amazon RDS , не увидев ничего на веб-сервере. Единственное, что я нашел, было «Прерванное соединение» (ошибка чтения пакетов связи). Короче говоря, я решил дать команду Search Replace DB попробовать, и я счастлив, что попробовал.

Чем отличается командная строка Search Replace DB?

Операция фактического поиска и замены выполняется намного быстрее, не то чтобы это имело большое значение, так как я делаю это не каждый день. Но казалось, что красивый интерфейс, который работает с кучей вызовов AJAX, является непроизводительным. Этот инструмент использует PHP CLI, который полностью отличается от того, что обслуживает ваши страницы. Это может быть даже не та же версия!

Единственная громоздкая вещь, которую я заметил, это то, что она не загружает учетные данные автоматически wp-config.php. Я должен был указать все напрямую. Тем не менее, я наконец смог увидеть ошибку PHP: Класс __PHP_Incomplete_Class не имеет десериализатора . После этого я обратился к сообществу проекта на GitHub за подходящим пул-запросом, который быстро решил мою проблему.

Почему это более безопасно?

Я думаю, это прекрасно, что вам не нужно помещать инструмент в общедоступную папку под каким-то неясным именем, чтобы использовать его (из браузера). Если вы случайно оставите там версию с графическим интерфейсом, злоумышленникам удастся найти инструмент. Напротив, вы можете разместить командную строку Search Replace DB в любом месте на вашем сервере! Вы взаимодействуете с ним по SSH , и вам даже не нужно удалять его после завершения.

Как использовать CLI?

Ридй очень подробно, поэтому я предпочел бы не повторить его здесь. Линия, которую я с большим успехом использовал для смены хоста сайта:

php srdb.cli.php -h example.rds.amazonaws.com -n database_name -u user_name -p your_password -s old.example.com -r example.com -v true -z

(Очевидно, вам необходимо указать свои данные.) Как видите, для этого требуется имя хоста и базы данных / user / pass. Это -sпоиск и -rзначение, которым вы его заменяете. Мой совет: включите подробный режим, -v trueчтобы увидеть, что происходит. Очень важно: сначала используйте сухой режим с -zопцией. Когда вы будете уверены, удалите его, чтобы включить его, и повторите команду. Например, это выглядит так:

results: The dry-run option was selected. No replacements will be made. wp_commentmeta: replacing old.example.com with example.com wp_commentmeta: 0 rows, 0 changes found, 0 updates made in 0.00045514 seconds wp_comments: replacing old.example.com with example.com wp_comments: 1 rows, 0 changes found, 0 updates made in 0.00049305 seconds wp_links: replacing old.example.com with example.com wp_links: 0 rows, 0 changes found, 0 updates made in 0.00015807 seconds wp_options: replacing old.example.com with example.com wp_options: 125 rows, 3 changes found, 0 updates made in 0.00367403 seconds wp_postmeta: replacing old.example.com with example.com wp_postmeta: 6 rows, 0 changes found, 0 updates made in 0.00053310 seconds wp_posts: replacing old.example.com with example.com wp_posts: 4 rows, 6 changes found, 0 updates made in 0.00090098 seconds wp_term_relationships: replacing old.example.com with example.com wp_term_relationships: 1 rows, 0 changes found, 0 updates made in 0.00029993 s... wp_term_taxonomy: replacing old.example.com with example.com wp_term_taxonomy: 1 rows, 0 changes found, 0 updates made in 0.00040007 seconds wp_termmeta: replacing old.example.com with example.com wp_termmeta: 0 rows, 0 changes found, 0 updates made in 0.00014710 seconds wp_terms: replacing old.example.com with example.com wp_terms: 1 rows, 0 changes found, 0 updates made in 0.00082612 seconds wp_usermeta: replacing old.example.com with example.com wp_usermeta: 48 rows, 0 changes found, 0 updates made in 0.00122905 seconds wp_users: replacing old.example.com with example.com wp_users: 3 rows, 0 changes found, 0 updates made in 0.00074220 seconds Replacing old.example.com with example.com on 12 tables with 190 rows 9 changes would have been made 0 updates were actually made It took 0.02472520 seconds And we're done!

Источник записи: https://letswp.io

Этот веб-сайт использует файлы cookie для улучшения вашего опыта. Мы предполагаем, что вы согласны с этим, но вы можете отказаться, если хотите. Принимаю Подробнее