Перенёс WordPress на новый сервер, теперь пытается скачать файл
Начну с того, что я перенёс десятки сайтов с одного сервера на другой без каких-либо проблем.
Недавно я перенёс сайт, и когда посещаешь URL, автоматически скачивается файл с названием "download" без расширения размером всего 1КБ. Я сделал резервные копии всех файлов и выгрузил базы данных четырьмя разными способами, чтобы быть уверенным: BackWPup, BackUpWordPress и вручную путём архивирования файлов и скачивания через FTP.
Оригинальный сайт отлично работает на исходном сервере.
Я использовал метод, который всегда применял при переносе на новый сервер.
На новом сервере:
- Создаю новую БД, пользователя и импортирую базу данных
- Загружаю файлы и распаковываю
- Редактирую wp-config.php с новым именем БД, пользователем и паролем
- Меняю URL сайта, используя метод functions.php из WordPress Codex, здесь - http://codex.wordpress.org/Changing_The_Site_URL
Стоит также отметить, что я загрузил сайт на три разных сервера (включая поддомен на исходном сервере), везде с одинаковым результатом.
В дополнение к упомянутым выше методам, я попробовал следующие способы для устранения проблемы:
- Изменил название папки "plugins", чтобы проверить, не вызывает ли плагин эту ошибку
- Изменил название папки активной темы, чтобы проверить, не является ли тема причиной ошибки
- Изменил WP_DEBUG на "true" в wp-config.php - Но сайт не загружается, поэтому ошибки не отображаются.
В настоящее время проблемный сайт находится по адресу - http://cgdev.webworksplayground.com/
Спасибо за помощь.
Полагаю, вы не смотрели файл, который загружается при скачивании, иначе вы бы увидели следующее:
<?php
/**
* Фронтальный файл WordPress. Этот файл ничего не делает, но загружает
* wp-blog-header.php, который уже выполняет работу и указывает WordPress загрузить тему.
*
* @package WordPress
*/
/**
* Указывает WordPress загрузить тему и вывести её.
*
* @var bool
*/
define('WP_USE_THEMES', true);
/** Загружает окружение и шаблон WordPress */
require( dirname( __FILE__ ) . '/wp-blog-header.php' );
Это легко можно распознать как содержимое файла index.php
в корне вашей установки WordPress.
Что касается возможных причин такого поведения, проверьте, правильно ли выставлены права доступа к файлам, убедитесь, что ваш .htaccess файл корректен. Кроме того, могут быть некорректно настроены параметры хостинга, см. Кодекс: Хостинг для WordPress (хотя информации там немного) или здесь Какие лучшие практики по настройке сервера для сайтов на WordPress?.
Эти рекомендации помогут вам начать. На самом деле мне пришлось делать — в некоторой степени обоснованное — предположение о причинах, так что изучите этот вопрос глубже самостоятельно, но я почти уверен, что корень проблемы лежит в той области, которую я обозначил.

Спасибо за ответ. В файл .htaccess было добавлено следующее: # Use PHP54 Single php.ini as default
AddHandler application/x-httpd-php54s .php
После удаления этой строки все заработало как надо.

Всегда пожалуйста. Это директива для использования PHP 5.4 с патчем Suhosin. Не совсем понятно, почему с ней возникают проблемы. Я использовал подобные директивы и никогда не сталкивался с трудностями. Возможно, стоит уточнить у поддержки вашего хостинга. @TravisPflanz

Привет @something, у меня аналогичная проблема. Я проверил свой файл .htaccess и обнаружил, что моя ситуация похожа на проблему Трэвиса. Я тоже удалил этот дополнительный код из файла, но когда я пытаюсь обновить постоянные ссылки, этот код снова появляется в файле.

@KeyurPatel Возможно, проблема в настройках сервера, посмотрите ссылки в моем ответе для получения дополнительной информации.

Простые шаги
1 - Перейдите в файловый менеджер через cPanel или FTP
2 - Удалите файл .htaccess (убедитесь, что создали резервную копию)
3 - Откройте ваш сайт и настройте постоянные ссылки — это создаст новый файл .htaccess
4 - Готово!
Я просто удалил файл .htaccess, и теперь всё работает идеально :)

Удаление .htaccess работает нормально, и новый .htaccess автоматически создается заново. Спасибо

Да. Технически это работает, но если в файле .htaccess есть что-то еще, необходимое для сайта, все это будет удалено.

mu-plugins добавляет обработчик при сохранении конфигурации
AddHandler application/x-httpd-php71 .php
, из-за чего страница скачивается вместо обработки.
Если просто удалить строку из .htaccess (или удалить файл), строка будет возвращаться при каждом сохранении настроек.
Лучшее решение — изменить через FTP файл wp-content/mu-plugins/endurange-php-edge.php
Просто закомментируйте (добавив "//" перед строкой) строку 20:
// $this->hooks();
