Плагин WordPress IP2Location – Невозможно установить локальную Lite BIN базу данных на бизнес-плане хостинга Hostinger

Вопрос или проблема

Я перенес свой веб-сайт с тарифного плана WP Startup от Hostpapa на тарифный план Business от Hostinger. Миграцию выполнила поддержка Hostinger, используя zip-резервные копии моей базы данных и файлов. В админке сайта я получаю сообщение: “IP2Location Country Blocker требует для работы BIN базу данных IP2Location. Настройте свою базу данных сейчас.”

Каждый раз, когда я пытаюсь установить BIN базу данных плагина IP2Location Country Blocker (версия Local Query — около 2.5 МБ на нашем предыдущем хосте), я получаю следующее сообщение об ошибке:

ошибка: Нет разрешения на запись в файловую систему

Я проверил (по совету разработчика плагина), что папка wp-content/uploads/ip2location пуста и права доступа к папке установлены на 755.

Я попытался (по совету поддержки Hostinger) восстановить права собственности на файлы в hPanel до значений по умолчанию.

Я полностью удалил плагин, включая все файлы и папки, и установил его заново.

Я также попытался использовать плагин IP Location Block вместо IP2Location Country Blocker, но первый “не мог быть активирован, потому что вызвал фатальную ошибку.”

Я ожидал, что сотрудники поддержки Hostinger смогут диагностировать или на самом деле исправить проблему с IP2Location Country Blocker. Их последнее предложение было в том, чтобы я задал вопрос здесь. Никто там не может разобраться. На Hostpapa на общедоступном сервере с меньшими доступными ресурсами всё работало нормально.

Любые идеи приветствуются. Спасибо.

Ответ или решение

Конечно, давайте разберемся с этой проблемой более детально. Вы столкнулись с проблемой установки локальной версии BIN базы данных IP2Location на вашем сайте, размещенном на тарифе "Business" от Hostinger после миграции с Hostpapa. Основная проблема заключается в невозможности записи в файловую систему, о чем свидетельствует ошибка "No permission to write into file system". Рассмотрим эту ситуацию с теоретической точки зрения, приведем примеры и предложим конкретные шаги для решения проблемы.

Теория

Прежде всего, давайте определим, что может быть причиной ошибки, связанной с правами доступа. Веб-приложения, такие как WordPress, требуют определенных прав на запись в файловую систему, чтобы иметь возможность загружать и сохранять файлы. Когда говорится о правах доступа в файловой системе, подразумевается уровень доступа, который установлены к файлам и директориям. Стандартные права доступа в UNIX-системах задаются числовыми значениями: 755 для директорий и 644 для файлов, где первая цифра означает права пользователя, вторая – группы, и третья – всех остальных.

Проблема с правами может возникать по нескольким причинам:

  1. Права и собственность файлов: Несмотря на то, что вы изменили права доступа для директории wp-content/uploads/ip2location на 755, существует вероятность, что пользователь, от имени которого работает ваш веб-сервер, не имеет права записи в эту директорию.

  2. Selinux или другие ограничения системы: На некоторых серверах могут быть включены дополнительные уровни безопасности, такие как Selinux, AppArmor и другие, которые могут ограничивать запись в определенные директории, даже если права доступа установлены корректно.

  3. Неправильная конфигурация PHP: Настройки PHP, такие как open_basedir, могут ограничивать доступ к определенной части файловой системы.

Пример

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

Применение

Для решения проблемы выполните следующие шаги:

  1. Проверка пользователя, от которого выполняется веб-сервер:

    • Откройте файл wp-config.php и добавьте следующий код для определения пользователя, от имени которого работает PHP:

      echo '<pre>';
      echo 'Current PHP user: ';
      system('whoami');
      echo '</pre>';
    • Посмотрите, какой пользователь выведется на экран. Далее убедитесь, что этот пользователь имеет права на запись в директорию wp-content/uploads/ip2location.

  2. Изменение прав на директорию:

    • Через SSH или панель управления хостингом измените владельца директории на пользователя, от имени которого работает веб-сервер (например, с помощью команды chown -R <username>:<groupname> wp-content/uploads/ip2location).
  3. Selinux и другие настройки безопасности:

    • Убедитесь, что Selinux (если он включен) настроен таким образом, чтобы разрешить запись в нужные директории. Это может потребовать вмешательства технической поддержки Hostinger.
  4. PHP и Apache/Nginx конфигурации:

    • Проверьте настройки PHP, особенно значения директивы open_basedir. Убедитесь, что путь /wp-content/uploads/ip2location включен в разрешенные.
  5. Обратитесь в службу поддержки:

    • Если самостоятельно не удается устранить проблему, депонировать ваш план к службе поддержки с четким указанием того, что требуется корректировка прав файловой системы или конфигурации PHP.
  6. Альтернативные решения:

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

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

Оцените материал
Добавить комментарий

Капча загружается...