MediaWiki Невозможно создать директорию mwstore://local-backend/local-public/

В этом посте расскажу о проблеме связанной с вики движком MediaWiki, который выдаёт в некоторых случаях может выдавать такую ошибку: Невозможно создать директорию mwstore://local-backend/local-public/.

Краткое объяснение

Следующая ошибка: «Невозможно создать директорию «mwstore://local-backend/local-public/4/45» в CMS MediaWiki возникает из-за не достаточных прав для записи в файловую систему для пользователя от которого запущен сам веб-сервер. В какую именно директорию нужны права, можно посмотреть в логах веб-сервера Apache, где-то тут /var/log/httpd/error_log.
И для этой директории выполняем следующую команду:
chown -R apache:apache /var/www/html/wiki/images/

Если это не поможет то назначить права:
chmod -R 775 /var/www/html/wiki/images/

Долгое объяснение

Такая ошибка может возникнуть например когда вы переносите сайт с одного хостинга на другой. Скажу сразу, что мне пришлось не мало мучиться дабы найти решений этой проблемы. Решение оказалось весьма простым. Всё дело в том, что у вашего пользователя от которого работает сервер Apache, а стало быть и все PHP скрипты, нет прав на запись данных в определённой директории сайта. Точную папку сказать не могу т.к. во всех версиях MediaWiki эта папка не однократно менялась, да и вообще её назначение можно настроить в конфигурационном файле LocalSettings.php. Так вот всё дело именно в правах пользователя от которого совершает работу сервер Apache.

У меня всё это было просто из-за того, что я создавал папки для сайтов от имени root пользователя и естественно права владельца на этих папках были именно у рута. Для других же пользователей разные действия по созданию там новых файлов и директорий были запрещены. Просто надо подходить ответственней к этому делу, ведь в Linux разграничению прав пользователей уделяется большое внимание, именно по этому операционные системы на базе этого ядра считаются весьма безопасными.

Так вот, что же делать в данной ситуации. Я думаю тут и так всё понятно. Надо менять права на папки в которых находится сайт, да и на папки самого сайта желательно бы тоже права поменять дабы всё было разрешено. Я именно так и сделал, просто поставил на всё права доступа 777 командой:

# chmod -R 777 /home/*

Таким образом всё, что внутри папки home стало иметь права доступа 777 (полные права: чтение, запись, выполнения для владельца, группы и вообще всех пользователей системы). Флаг -R указывает, что обойти все директории и файлы надо рекурсивно, пометив все таким образом. Для меня такой вариант был весьма приемлем т.к. только я сам пользуюсь своим сервером. Если же вам надо чётко разграничивать права доступа. То придётся добавлять пользователя сервера Apache в необходимые группы и патом уже настраивать права на файлы именно для этих групп пользователей, но это уже другая история.

Теперь я думаю проблем вида Невозможно создать директорию mwstore://local-backend/local-public/ у вас возникнуть не должно. Помните, всё дело в правах доступа пользователей. Спасибо за внимание.

Поделиться!
Tags: , , , , , , , , ,

49.76MB | MySQL:54 | 0,323sec