Меню

Bitrix создание папки ошибка

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

Первое что необходимо сделать — это проверить права на файлы и папки в нужном каталоге. Права на папку должны быть 755, на файлы 664. Ни в коем случае не выставляйте права 777 на папки или файлы, даже на время. 

В моём случае этот метод не сработал, я стал копать дальше. Нашел такой совет. в файле /bitrix/php_interface/dbconn.php установить такие константы. 

define( "BX_FILE_PERMISSIONS", 0660 );

define( "BX_DIR_PERMISSIONS", 0775 );

@umask( ~BX_DIR_PERMISSIONS );

@ini_set( "memory_limit", "512M" );

Но этого не потребовалось, т.к. эти значения уже были заданы и по идее всё должно было работать. На одном из форумов посоветовали изменить права доступа и владельца к нужной категории через консоль. Но я посчитал, что если всё до этого работало, то не нужно так далеко залазить, проблема явно была в не в этом, для Вас приведу код в котором можно изменить права доступа к каталогам и файлам через консоль. Говорят может помочь. 

find . -type d -exec chmod 775 { } ;

find . -type f -exec chmod 664 { } ;

В моём случае решение оказалось куда проще.  Все сайты лежали в корневой директории, один из них являлся общим ядром. Но по какой-то причине прекратился общий доступ к «главному сайту» и всё что нужно было сделать — это открыть доступ.

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

  1. Зайдите в нужную директорию
  2. В верхней части экрана нажмите на кнопку “Инструменты” -> “Настроить общий доступ к текущей директории”: 
  3. Установите переключатели “Чтение и запись” и “Включая вложенные папки”, нажмите кнопку “Открыть доступ”: 

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

Содержание

  1. Ошибки на стороне веб-сервера
  2. Ошибки при работе с файлами данных
  3. Проблемы авторизации
  4. Ошибки MySQL
  5. Логические ошибки
  6. Диагностика отладки
  7. Отладка обмена на стороне 1С-Битрикс
  8. Модуль отладки обмена от ИНТЕРВОЛГИ
  9. Выводы

Настроить обмен между «1С» и «1С-Битрикс» – не проблема. Эта функция присутствует «из коробки» начиная с ранних версий продуктов «1С:Предприятие», редакция Управление торговлей и «1С-Битрикс: Управление сайтом» в редакциях Малый бизнес и Бизнес.

Даже с учётом имеющейся документации по продукту, у многих разработчиков сайтов возникают сложности в корректной настройке обмена данными между этими системами. Рассмотрим самые частые проблемы, которые возникают у тех кто пытался.

Мы выделили несколько групп ошибок:

  • проблемы авторизации;
  • ошибки на стороне сервера;
  • ошибки при работе с файлами данных;
  • ошибки MySQL;
  • логические ошибки.

Далее мы детально рассмотрим сами ошибки и способы их исправления.

Ошибки на стороне веб-сервера

К этой группе относятся ошибки, возникающие в подсистемах веб-сервера, отвечающих за выполнение PHP-кода. Обычно это: Nginx, Apache и сам интерпретатор языка PHP.

Возможны 2 варианта:

а) Ошибка действительно вызвана неоптимальными настройками Nginx/Apache/PHP. Если Вы чувствуете неуверенность в своем веб-сервере или совсем недавно на него переехали — привлеките администратора для проверки и изменения настроек.

Название ошибки Как исправить
Failed sending data to the peer (no headers, no data)‏.
  1. Увеличить значения параметров max_execution_time и memory_limit . в файле php.ini
  2. Перезагрузить сервер.
  3. Повторить выгрузку.
Получен пустой ответ сервера.
Ошибка нехватки памяти, например выводится сообщение: Fatal error : Allowed memory size of 67108864 bytes exhausted (tried to allocate 102401…)‏. Проверить настройку memory_limit в php.ini. Должно быть указано не менее 512Mb, увеличить значение и перезагрузить сервер. Или не изменяя настройки сервера сделать равным таймаут сервера и таймаут «1С-Битрикс: Управление сайтом» (страница Магазин > Настройки магазина > Интеграция с 1С, поле Интервал одного шага в секундах). Если проблема с нехваткой памяти, данное решение не подойдёт.

б) Подобная ошибка может маскировать либо некорректную настройку объема одной порции загружаемых данных (10К товаров за раз, например), либо логическую ошибку в программном коде (например, пересчет каких-нибудь значений в товарах по событию изменения).

  • уменьшать объем передаваемых за раз данных (проверить на 1 товаре, но лучше выставлять значение поочередно, 1, 100, 1000, 10000 и смотреть, какое значение оптимально для ваших настроек);
  • временно закомментировать обработчики событий в файле /bitrix/php_interface/init.php, может быть они мешают обмену.

Ошибки при работе с файлами данных

Данные ошибки возникают при неверной настройке прав доступа к файлу.

Отображение ошибок звучит следующим образом: «Ошибка открытия файла» и «Ошибка записи файла».

Возможные причины и их решение:

Закончилось место на диске.

Удалить старые бэкапы или увеличить тариф на хостинге.

По ftp файлы загружаются, а через веб-интерфейс административного раздела сайта нет.

Обратиться в техническую поддержку хостинг-провайдера.

Не работает или некорректно работает сжатие данных при обмене.

Для начала можно попробовать выключить сжатие в настройках модуля обмена.

Также можно проверить работу функции zip_open на сервере

Откройте в браузере страницу http:// //bitrix/admin/phpinfo.php (Либо выполните команду

if (exist_function (“zip_open”))

В браузере отобразится таблица:

Для строки ZIP должно стоять «enabled».

Проблемы авторизации

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

Название ошибки Как исправить

«Не удалось получить данные с сервера. Проверьте правильность адреса сервера, порт, имя пользователя и пароль, а также настройки подключения к Интернет».

На сервере 1С установлено ПО, которое блокирует исходящие соединения, в этом случае при попытке обмена выдаётся ошибка. Исправляется добавлением адреса сайта в белый список ПО.

«Авторизация не выполнена.

Не удалось установить соединение с сервером. Проверьте имя пользователя и пароль».

Неверно указаны логин/пароль доступа к сайту.

Надо проверить, получается ли по указанному доступу зайти на сайт.

И проверить наличие редиректов при переходе по ссылке, например на https версию сайта.

http:// адрес сайта /bitrix/admin/1c_exchange.php

появляется сообщение, значит с логином и паролем всё в порядке.

Ошибки MySQL

Ошибки возникают при соединении с базой данных MySQL, настроенной на сайте.

Название ошибки Проблема / как исправить

[Illegal mix of collations (russian_swedish_ci,IMPLICIT) and (cp1251_general_ci,COERCIBLE) for operation ‘=’]

Конфликт кодировок. Причина ошибки — таблицы базы данных в одной кодировке, а сам база в другой. В данном случае база в russian и новые таблицы создаются в не russian. При выгрузке из «1С» создается временная таблица b_xml_tree в «некорректной» кодировке russian.

Логические ошибки

Ошибки пользователей неверно понимающих процесс обмена данными и, соответственно, неверно выполняющих какие-то действия.

Название ошибки Проблема / как исправить

Несовместимые версии модуля обмена и базовой конфигурации 1С.

Проверить на официальном сайте “1С-Битрикс” соответствие версий продуктов.

Если версии не совпадают, переустановить модуль обмена на стороне 1С

«Изменения товаров не зарегистрированы. Выгрузка товаров не произведена».

Неверно настроен отбор товаров в модуле обмена. Надо проверить эти настройки. Скорей всего, выбраны параметры, которые не позволяют правильно отфильтровать параметры для выгрузки.

Также это сообщение выдаётся, если если в настройках Режима обмена данными с WEB-сайтом установлено: Выгружать только измененные объекты с момента последнего обмена. В этом случае это не ошибка, а выгрузки не произошло, потому что данные со стороны 1с не были изменены.

«Не удалось найти вид номенклатуры».

Ошибка появляется, если в «1С» нет видов номенклатуры «Услуга» и «Товар». Эти виды критичны для процесса обмена данными с сайтом. Решение – создать в «1С» указанные виды номенклатуры.

«Поле объекта не обнаружено».

Не указаны соответствия для полей заказа в «1С-Битрикс: Управление сайтом». Проверьте настройки, заданные в закладке Экспорт в «1С:Предприятие» страницы Настройки > Настройки продукта > Настройки модулей > Интернет-магазин. Два поля «Полное Название» и «Название» критичны для 1С. Если их не задать, экспорт выполняться не будет. Настройка соответствий для разных типов плательщиков производится отдельно.

Данные выгружаются на сайт, но не обновляются.

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

Диагностика отладки

Мы применяем два инструмента отладки обмена между 1С и 1С-Битрикс.

Отладка обмена на стороне 1С-Битрикс

При настройке выгрузки необходимо проверить существование папки /upload/1c_catalog/. В эту папку будут загружаться файлы при обмене.

При необходимости, можно удалять из папки файлы последнего обмена, т.к. по завершению обмена файлы последней операции будут храниться именно в этой папке. Выполнение этой задачи возможно сделать автоматически, например запустить «Режим отладки» процесса обмена на сайте. При включенном «режиме отладки» не будут удаляться старые файлы из этого каталога после успешного обмена.

Включить «режим отладки» можно отредактировав файл dbconn.php.
А именно, создать константу такого вида:
define(«BX_CATALOG_IMPORT_1C_PRESERVE», true);

На стороне 1С-Битрикс мы можем увидеть только конечные данные. Если данные приходят корректные, то они попадают в инфоблоки и это видно. Если данные приходят некорректные, то либо неверные данные были выгружены из 1С, либо выставлен неверный тип данных. Например вы пытаетесь передать многострочный список как строку.

Модуль отладки обмена от ИНТЕРВОЛГИ

Для упрощения диагностики мы создали модуль отладки обмена.

Он встраивается между 1С и 1С-Битрикс и пишет логи того, что происходит при обмене. По этим логам можно выяснить, где ошибка и исправить её. Отображение логов происходит в административной части сайта.

Модуль отладки обмена от ИНТЕРВОЛГИ лучше логов со стороны 1С-Битрикс, потому что он:

следит за размером и в результате его работы не закончится место на сайте;

логирует обмен справочников и заказов;

логирует время обмена и время выполнения одного шага.

Выводы

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

Наша компания обладает компетенциями в вопросе отладки обмена. Если у вас возникла подобная проблема, напишите, обсудим.

Недавно была ошибка с .htaccess и на сайте висела ошибка 500 , потом кто-то исправил, но теперь в CMS’ке при создании папки или файла выскакивает ошибка — «Не удалось создать папку «Название»»

Я заметил, что если создать папку в «/»(корень), — единственное место, где хоть что-то создается -, то в значении «Права на доступ сервера» написано 755 apache apache , а во всех других папках это значение другое — 755 vostorg vostorg ( vostorg — название сайта).

Пожалуйста, помогите разобраться.

Нужно проверить, чтобы у файлов был тот же владелец, что и пользователь Apache. Кроме того, выставить необходимые права на папки и файлы.
chown bitrix:bitrix file.php

Для массовой смены владельца можно использовать:
find . -type f -exec chown bitrix:bitrix <> ;

Вот универсальное решение:

/home/bitrix/www — директория где лежит сайт
bitrix:bitrix — пользователь и группа под кем запущен демон httpd
Пользователя и группу можно подсмотреть в phpinfo.

Название ошибки Проблема / как исправить

September 15 2010, 21:07

Category:

  • IT
  • Cancel

Всем привет, есть небольшая проблема на моем хостинге.
Система CentOS 5.5 Apache 2.2.3

Апач запущен от пользователя apache

Использую <VirtualHost>

Файлы с сайтами лежит в домашних папках пользователей по адресу : /www/пользователь/www/htdocs
права да папки:
/www root:root 751
www/пользователь:пользователь 711
www/пользователь/www пользователь:пользователь 711
www/пользователь/www/htdocs пользователь:пользователь 711
папки и файлы с содержимым сайта пользователь:пользователь 755 и 644

Когда запускаю скрипт тестирования совместимости bitrix_server_test.php,
то он выдает:

Файловая система

Место на диске: 12458 Mb Не менее 50 Мб для редакции «Старт» и не менее 150 Мб для редакции «Бизнес» 
Права на текущую папку: 0711 bel-okna bel-okna  
Создание папки: Ошибка Попытка создать тестовую папку 
Создание файла: Ошибка Попытка создать тестовый файл 
Запуск созданного файла: не тестировалось В ряде случаев возникают проблемы при запуске файла, созданного средствами PHP 
Обработка .htaccess: не тестировалось Осуществляется попытка настроить обработку 404-й ошибки во вновь созданной папке 
Время на создание 1000 файлов (сек): не тестировалось Нормальное время — до 2 секунд 
Значение file_uploads: Да  

Я так понимаю, что у апача просто нет прав на запись. Если дать права 777 на папки с сайтом пользователя, и папку htdocs, то все работает.
Как быть?

Однажды, после переноса сайта на 1С Битрикс появилась проблема – файлы перестали загружаться. Сайт переносил хостер так как тогда я не работал с Битриксом. После переноса появилась ошибка «Ошибка! Временная папка не существует» или не создан временный каталог для загрузки Битрикс.

Как решить проблему

Итак, в Битрике как во многих CMS (системах управления контентом) существует временная папка для загрузки файлов – tmp.

Путь к данной папке прописан в файле dbconn.php, сам файл находится в :

имя_сайта/bitrix/php_interface

Открываем файл и видим в самом низу строку

define(«BX_TEMPORARY_FILES_DIRECTORY», «тут будет прописан путь к временной папке»); например /bitrix/tmp

Далее необходимо убедится в том, что такая папка существует.

Если временная папка не существует

Создаем папку, где создавать – смотрим в пути. Владельцем папки должен быть пользователь который устанавливал (или переносил) сайт. Обычно это не root, а bitrix. Права для папки – 0755.

В принципе папку можно создать где вам угодно, после чего скопировать путь и прописать его в BX_TEMPORARY_FILES_DIRECTORY.

Если папка существует – смотрим права и владельца.

Бывают случаи когда владелец сайта один пользователь, но файлы переносились под учеткой root пользователя. В таком случае подключаемся к серверу через консоль SSH, и выполняем следующие команды:

find /home/bitrix/www -type f -exec chown bitrix:bitrix {} ;

find /home/bitrix/www -type d -exec chown bitrix:bitrix {} ;

find /home/bitrix/www -type f -exec chmod 644 {} ;

find /home/bitrix/www -type d -exec chmod 755 {} ;

Где:

  • /home/bitrix/www – это путь до вашего сайта,
  • -type f … — назначение прав,
  • bitrix:bitrix – пользователь:группа в которую входит пользователь.

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

Используя сайт abuzov.ru, вы даете согласие на работу с cookie, Яндекс.Метрикой, Google Analytics для сбора технических данных.OKПодробнее

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • Bitrix ошибка при загрузке файла
  • Binkw64 dll skyrim se ошибка