Полностью замените основные файлы WordPress на SSH (в 10 раз быстрее, чем FTP).

Два дня назад мойWordPressСайт внезапно перестал работать во время обновления программы.

Бэкенд полностью пуст, а фронтенд выдает ошибку 500, при этом логи полны фатальных ошибок PHP.

В тот момент у меня в голове была только одна мысль: О нет, основные файлы повреждены.

Честно говоря, первая реакция большинства людей на это — паника. Особенно это касается блогов, которые существуют уже много лет, имеют более десятка установленных плагинов и сильно модифицированные темы оформления. Можно подумать: «Если я всё переустановлю, останется ли всё моё содержимое на месте?»

Не паникуйте. Если у вас по-прежнему есть возможность подключения по SSH, проблема решится за пять минут.

Причины повреждения основных файлов WordPress

Для начала немного предыстории: механизм обновления WordPress на самом деле довольно ненадежный. Во время онлайн-обновления он заменяет основные файлы один за другим. Если права доступа неверны, диск заполнен или процесс прерывается, файлы будут повреждены. В результате этого повреждения ваш сайт выйдет из строя, и вы не сможете получить доступ ни к внешнему, ни к внутреннему интерфейсу.

Однако важно понимать один ключевой момент: основные файлы WordPress и ваш контент полностью разделены. Ваша тема, плагины и загруженные изображения находятся в каталоге `wp-content`, а информация о конфигурации — в `wp-config.php`. Основные файлы, с другой стороны, представляют собой папки, такие как `wp-admin` и `wp-includes`, которые по сути являются набором PHP-программ.

Таким образом, замена основных файлов с помощью SSH по сути сводится к одному: установке новой копии неисправной программы. Это как сбой компьютера с синим экраном: если вы переустановите систему, останутся ли файлы на диске D на месте? Принцип тот же.

Полностью замените основные файлы WordPress на SSH (в 10 раз быстрее, чем FTP).

Полная пошаговая инструкция по замене основных файлов WordPress с помощью SSH.

История такова: я подключился через SSH, зашёл в каталог сайта и первым делом проверил текущий статус.

cd /var/www/html   # 根据你的实际路径

Затем скачайте последнюю версию WordPress.

wget https://wordpress.org/latest.tar.gz
tar -xf latest.tar.gz

На этом этапе необходимо загрузить последнюю версию сжатого файла WordPress и распаковать его. После этого в текущем каталоге появится новая папка с именем "wordpress".

Следующий шаг — самый важный: обработка основных файлов.

cp -rf wordpress/* .

Эта команда предназначена для принудительного копирования всего содержимого папки WordPress в текущий каталог.

Вот что вам нужно понять: эта операция не удалит ваши файлы wp-content и wp-config.php. Эти файлы не находятся в папке WordPress; они уникальны для вашего сайта. Поэтому этот шаг безопасен; он перезапишет только основные файлы программы.

После выполнения этой команды я все еще немного волновался. А вдруг я что-то неправильно перезапишу?

Затем я приступил к очистке установочного пакета.

rm -rf wordpress latest.tar.gz

Чистота и эффективность, не оставляющие следов.

После выполнения этих шагов вам необходимо войти в панель администратора и выполнить обновление базы данных. Путь к файлу: /wp-admin/upgrade.php. Этот шаг важен, поскольку в более новых версиях WordPress может быть обновлена ​​структура базы данных.

Честно говоря, весь процесс занял меньше пяти минут. Я подумал про себя: если бы я нажал кнопку обновления в фоновом режиме, кто знает, сколько бы мне пришлось ждать, и, возможно, всё бы снова зависло.

Перед началом работы необходимо выполнить резервное копирование.

Но я должен напомнить вам, что сначала нужно сделать резервную копию. Хотя бы сделайте резервную копию файла wp-config.php и базы данных. Это привычка, которую вы должны выработать, независимо от того, насколько безопасным вы считаете свой бизнес. Я сам сталкивался с потерей данных, и эту боль вам нужно пережить всего один раз.

Как исправить права доступа к каталогам после замены SSH

Есть ещё один момент: после замены вы можете столкнуться с новой проблемой — правами доступа к каталогам.

После завершения замены я зашел в админку, чтобы установить плагин, но возникла ошибка, поскольку некоторые файлы не удалось скопировать, и обновление не было установлено.

Что это значит? Это значит, что когда вы подключаетесь по SSH для замены файла, владельцем файла может быть root или другой пользователь, а ваш веб-сервер, например Apache, использует пользователя www-data, у которого нет прав на запись. Поэтому механизм обновления бэкэнда WordPress выдает ошибку.

Решение несложное.

cd /home/你的用户名/web/你的域名文件夹/public_html/wp-content/
chmod -R 755 plugins/
chmod -R 755 themes/
chmod -R 755 uploads/
chmod -R 755 upgrade/

Установка прав доступа для этих каталогов на уровне 755 означает, что только владелец имеет право на запись, а остальные могут только читать.

Если вы используетеГестияCPСуществует ещё более простой способ использования этой панели.

chown -R 你的用户名:你的用户名 /home/你的用户名/web/你的域名文件夹/public_html/*

Это можно сделать одним предложением.

Возвращаясь к теме разрешений, если все разрешения файлов на вашем сайте некорректны, вы можете использовать команду find для их пакетного изменения.

find /home/你的用户名/web/你的域名文件夹/public_html -type d -print0 | xargs -0 chmod 755
find /home/你的用户名/web/你的域名文件夹/public_html -type f -print0 | xargs -0 chmod 644

Каталогу присвоен код 755, а файлу — код 644.LinuxСтандартная конфигурация прав доступа для веб-сервисов в этой среде.

Пакетное обновление плагинов и тем с помощью WP-CLI

Кроме того, если вы привыкли использовать WP-CLI, вы также можете одновременно обновлять плагины и темы в пакетном режиме.

wp plugin update --all
wp theme update --all

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

Вернувшись на неработающий сайт после всех этих действий, я обновил страницу, и всё заработало. Лицевая сторона загрузилась нормально, в административной панели можно было войти, и ни одна из тем или плагинов не была потеряна.

Как бы это сказать? Это как если бы пять минут, потраченных на использование SSH, сэкономили вам целый день хлопот.

Думаю, многие владельцы сайтов, вероятно, испытывают похожие опасения: они паникуют, когда при обновлении WordPress возникают проблемы, и задаются вопросом, нужно ли переустанавливать всё. На самом деле, как только вы поймете файловую структуру WordPress, основные файлы окажутся просто пакетами; вы можете просто заменить их. Всё, что действительно принадлежит вам, находится в wp-content.

И последнее: выработайте привычку регулярно создавать резервные копии. Неважно, используете ли вы плагин для автоматического резервного копирования или создаете резервные копии вручную через SSH. Главное — не ждите, пока что-то пойдет не так, чтобы вспомнить о резервном копировании.

В конце концов, если данные потеряны, их уже не вернуть; но если программа сломается, её можно будет заменить.

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

Спасибо за прочтение моей статьи. До встречи в следующий раз.

Блог Хоуп Чен Вейлян ( https://www.chenweiliang.com/ Статья "Полностью замените основные файлы WordPress на SSH (в 10 раз быстрее, чем FTP)", размещенная здесь, может оказаться вам полезной.

Добро пожаловать, чтобы поделиться ссылкой на эту статью:https://www.chenweiliang.com/cwl-34329.html

Чтобы раскрыть еще больше скрытых трюков🔑, присоединяйтесь к нашему каналу в Telegram!

Поделитесь и поставьте лайк, если вам понравилось! Ваши репосты и лайки — наша постоянная мотивация!

 

发表 评论

Ваш адрес электронной почты не будет опубликован. 必填 项 已 用 * 标注

Каталог статей
Наверх