bitrix с таким именем определена папка
Ошибка при создании файла/папки 1С-Битрикс
Данная проблема в Битриксе может появляться при отсутствии нужных прав на каталоги и файлы. В моём случае проблема возникла при многосайтовости, до этого всё было в порядке, но спустя какое-то время после длительной работы, появилось ограничение. За время поиска решения этой задачи, я нашел несколько решений и думаю, что один из вариантов Вам поможет справиться с данной проблемой.
Первое что необходимо сделать — это проверить права на файлы и папки в нужном каталоге. Права на папку должны быть 755, на файлы 664. Ни в коем случае не выставляйте права 777 на папки или файлы, даже на время.
В моём случае этот метод не сработал, я стал копать дальше. Нашел такой совет. в файле /bitrix/php_interface/dbconn.php установить такие константы.
define( «BX_FILE_PERMISSIONS», 0660 );
define( «BX_DIR_PERMISSIONS», 0775 );
@ini_set( «memory_limit», «512M» );
Но этого не потребовалось, т.к. эти значения уже были заданы и по идее всё должно было работать. На одном из форумов посоветовали изменить права доступа и владельца к нужной категории через консоль. Но я посчитал, что если всё до этого работало, то не нужно так далеко залазить, проблема явно была в не в этом, для Вас приведу код в котором можно изменить права доступа к каталогам и файлам через консоль. Говорят может помочь.
В моём случае решение оказалось куда проще. Все сайты лежали в корневой директории, один из них являлся общим ядром. Но по какой-то причине прекратился общий доступ к «главному сайту» и всё что нужно было сделать — это открыть доступ.
Поскольку сайты на учётных записях закрыты процессы, запущенные на одном сайте, не имеют прав для обращения к каталогам, выходящим за пределы этого сайта. Для доступа из окружения веб-сервера потребуется открыть общий доступ к каталогу. Мой проект находится на beget и эта операция делается очень просто через файловый менеджер.
Если представленные варианты не принесли желаемого результата, то пишите в комментарии, будет время, что-нибудь придумаем.
Если папка то применяем. в Битрикс
Бывает, стоит задача применить какой-либо стиль или вывести конкретный кусочек кода для дирректории. Для этого в Битрикс можно воспользоваться параметром CMain::GetCurPage. А как расскажу на примере.
Итак согласно документации Битрикс:
string CMain::GetCurPage(bool get_index_page=null)
Возвращает путь к текущей странице относительно корня без параметров.
Как нам это может пригодится:
Задача применить класс для li.company в разделе /company/ при этом на любой другой для этогоже li должен применяться li.nocompany
Элементарщина в общем.
Добавлено:
GetCurDir позволяет применить условие для каталога, если нужно применить для каталога и всех внутренних подкаталогов, можно воспользоваться if(CSite::InDir():
Пример из реальной жизни: на моем сайте часть разделов (портфолио, форум, дизайн) имеет одноколоночную верстку, дабы не плодить отдельные шаблоны, я просто указал в каких разделах не выводить aside
GetCurDir()==’/designes/ready-made-html-layouts/’)
|| ($APPLICATION->GetCurDir()==’/designes/adaptive-html/’)
|| ($APPLICATION->GetCurDir()==’/portfolio/’)
|| ($APPLICATION->GetCurDir()==’/forum/’)
):?>
По хорошему, злоупотреблять этим не стоит, так как после вас мало кто разберется в верстке если условий будет очень много. Приходилось сталкиваться с реализацией шаблона который проще переверстать нежели разобраться как эта хрень вообще работает. (накипело)
Определяем текущий уровень раздела в каталоге
Если нужно назначить некое условие для заранее заданного уровня подраздела в каталоге Битрикс, можно воспользоваться вот таким условием
Должно произойти вот это
По просьбе читателя добавляю: Отсчет разделов начинается с 0 а не с 1
Работа с документами в существующей сети компании.
от темы не нужно уходить..
В линукс эта проблема решается через символьные ссылки. Возможно, стоит поставить портал на линукс и подключить сетевые диски туда?
Могу продать лицензии на Windows web server 2008 (дешево для учебных заведений)
mount server:/mnt/hdd/X /usr/local/www/data/docs/X
Установил «физическая папка на диске»
В битриксе выдает «Физическая директория на диске не найдена.»
Может я както не так смонтировал. Хотя в самой фряхе диск я вижу.
| Цитата |
|---|
| Антон Хохряков пишет: mount server:/mnt/hdd/X /usr/local/www/data/docs/X |
Установил «физическая папка на диске»
В битриксе выдает «Физическая директория на диске не найдена.»
Может я както не так смонтировал. Хотя в самой фряхе диск я вижу.
Переделал
mount server:/mnt/hdd/X /mnt/X
Один фиг пишет «Физическая директория на диске не найдена.»
Навсякий случай РНР может тут что не так
IncludeComponent(
«bitrix:webdav»,
«»,
Array(
«SEF_MODE» => «N»,
«RESOURCE_TYPE» => «FOLDER»,
«FOLDER» => «/usr/local/www/data/docs/X»,
«IBLOCK_TYPE» => «news»,
«IBLOCK_ID» => «14»,
«USE_AUTH» => «Y»,
«UPLOAD_MAX_FILESIZE» => «600»,
«COLUMNS» => array(«NAME»,»FILE_SIZE»,»TIMESTAMP_X»),
«SET_TITLE» => «Y»,
«CACHE_TYPE» => «A»,
«CACHE_TIME» => «3600»,
«CACHE_NOTES» => «»
)
);?>
Нашел
неправильно «FOLDER» => «/usr/local/www/data/docs/X»,
писал относительно корня сервера, а надо относительно сайта
С Юниксами все ясно
Пробовал средствами Apache делать Alias на сетевые шары. Сам Апач их видит а вот битриксовский файловый интерфейс этих папок не видит (((
Вообщем пока сетевые шары к Битриксу подклюсить в винде не получается.
Если найдете способ пишите.
webingener, обратите внимание:
ChangeLog PHP 5.3.4:
— Improved support for is_link and related functions on Windows. (Pierre)
Возможно, вам следует обновить версию PHP.
Так же, на доступ библиотеки документов Битрикс к сетевому диску (даже по ссылке) влияют системные права доступа. Надо проверять, имеет ли пользователь, от лица которого запущен PHP, нужные права.
Помогите решить проблему.
| Цитата |
|---|
| selfman пишет: В итоге доступ в Линуксе на папку share у пользователя bitrix есть |
А как именно вы проверяли?
И еще, что показывает следующая команда?
У меня такая проблема, есть Корпоративный портал (apache2, ubuntu), пытаюсь организовать доступ к файловому хранилищу. В компоненте «Библиотека документов» указываю «Физическая папка на диске» в папку монтирую Windows Share. На портале вижу все содержимое (название размер дату изменения), но при попытке скачать документ на компьютер пользователя, скачивается «пустой» документ (размер 0 байт). Из под Ubuntu документы копируются. В чем может быть проблема, куда копать?
| Цитата |
|---|
| sintec пишет: Добрый день! |
У меня такая проблема, есть Корпоративный портал (apache2, ubuntu), пытаюсь организовать доступ к файловому хранилищу. В компоненте «Библиотека документов» указываю «Физическая папка на диске» в папку монтирую Windows Share. На портале вижу все содержимое (название размер дату изменения), но при попытке скачать документ на компьютер пользователя, скачивается «пустой» документ (размер 0 байт). Из под Ubuntu документы копируются. В чем может быть проблема, куда копать?
Добрый день!
Хотел бы поднять заново тему подключения сетевых папок к Битриксу в среде Windows. 2 года назад был написано:
| Цитата |
|---|
| С Юниксами все ясно |
Пробовал средствами Apache делать Alias на сетевые шары. Сам Апач их видит а вот битриксовский файловый интерфейс этих папок не видит (((
Вообщем пока сетевые шары к Битриксу подклюсить в винде не получается.
Если найдете способ пишите.
Пока портал работал на ubuntu server не было никаких с подключением windows шар. Подключал и к документам, производил на них копирование (в продукте же не предусмотрено резервирование на сторонний собственный ресурс).
Поставил BitrixVM и начались проблемы. Монтируя собственным скриптом получал «Физическая директория на диске не найдена», хотя владелец папки и скрипт выполнялся от имени bitrix. При монтировании папки скриптом из доков, насоветованным ТП получаю. список файлов без имен! Вижу пустые поля, могу ходить по каталогам, даже открывать файлы, но при этом вижу имена каталогов только в адресной строке браузера!
По опыту знаю, что работа с ТП не из легких и раньше, чем через пару недель результата ждать не приходится, пишу здесь.
Пишет Class not found. Как правильно определить пространство имен?
От корня сайта создал класс:
/bitrix/templates/app/Pi/Test.php
Класс:
Пробую подключить в другом файле и заставить отработать:
Но пишет Class ‘app\Pi\test’ not found
С точки зрения архитектуры (рекомендую изучить документацию, она очень обширна и познавательна) все компоненты должны лежать в так называемом пространстве имен, чем обычно служит ник-нейм или название компании (Естественно начинается не с цифры и содержит только латинские буквы), которые в свою очередь могут располагаться в /bitix/components/#пространство_имен#/#название_компонента#/
Теперь построчно разберем Ваш вопрос:
Вы положили свой класс сюда: /bitrix/templates/app/Pi/Test.php, что является неверным с точки зрения архитектуры, так как поместили класс отвечающий за контроллер в папку с шаблоном. Если вы не пишете свой модуль вы можете подключить его например в /local/php_interface/classes/ (пример надуманный, можете просто в /local/php_interface положить или сразу в init.php), однако для этого вы должны будете написать autoloader, так как у битрикса он работает только для модулей. Предположим вы в init.php напишете грубый require_once с файлом.
Затем вы делаете следующее:
Что является неверным, так как по сути вы обьявляете неймспейс для файла и это с точки зрения php выглядит вот так в конечном итоге:
А класса app\Pi\CBitrixComponent не существует. Так что вам нужно поправить пример хотя бы так:
class test extends \CBitrixComponent
Настоятельно рекомендую прочитать документацию или хотя бы посмотреть видео с академии битрикс. Сама система не подарок, а другой программист который увидит ваш код будет говорить что это битрикс виноват.
Частые вопросы
Ошибки при установке и работе продукта
На первой закладке, должны стоять галочки возле используемых на Вашем сайте кодов языка. На закладке «шаблоны» должна стоять галочка возле имени Вашего сайта, хотя бы у одного шаблона (обычно он там как раз один). Также, в настройках выбранного почтового шаблона (можно перейти прямо по ссылке со страницы «шаблоны», не забудьте только перед этим нажать «применить», если были сделаны какие-то настройки), должна стоять галочка «активен», и также должен быть выбран Ваш сайт. Также должны быть корректно заполнены поля «от кого» и «кому» (значения по-умолчанию #DEFAULT_EMAIL_FROM# и #EMAIL#, соответственно).
2. Если все эти настройки соответствуют истине, то в настройках модуля веб-формы отключите флаг «использовать упрощенный режим», перейдите в настройки соответсвующей формы, вкладка дополнительно, убедитесь, что флаг привязки к почтовому шаблону проставлен. Если и здесь все в порядке, то перейдите, пожалуйста, в Настройки-Инструменты-SQL-запрос и выполните такой запрос:
| select * from b_event where event_name like ‘%form%’ order by date_insert desc |
Найдите событие заполнения формы, смотрите в поле SUCCESS_EXEC:
Наверх
| Не появляется нужная служба доставки при оформлении заказа |
| Каждый обработчик службы доставки имеет свои нюансы и требования, при несоблюдении которых служба доставки не будет появляться при оформлении заказа. 2. На корневую папку сайта (DOCUMENT_ROOT) установлены права недостаточные для чтение её содержимого. В данном случае надо установить на папку наиболее полные права: |
| После распаковки рез. копии на всём сайте форма авторизации. |
| Чтобы решить данную проблему надо обратить внимание на 2 аспекта: 1. Проверить на корректность в настройках сайтов значение поля «Путь к корневой папке веб-сервера для этого сайта»: «Настройки»-> «Настройки продукта»-> «Сайты»-> «Список сайтов» 2. Если перенос осуществлялся простым копированием файлов (FTP/SSH),мог не скопироваться файл /.access. Проблема решается одним из способов: Дело в том, что у tar есть несколько диалектов. Мы пакуем в формате GNU tar, как это делает по умолчанию tar в linux. WinRar понимает tar, но конкретно этот диалект поддерживает не полностью. Наш архив должен распаковываться нашим restore.php, скачанным со страницы резервного копирования. Если этого не происходит, проблему следует решать через техподдержку. Проблемы распаковки сторонними инструментами (WinRar в том числе) техподдержка не решает. |
| Редактор сайта не может загрузить картинки на сайт. |
| Описание: В визуальном редакторе у редактора сайта вкладка «Загрузить файл» неактивная, причём администартор сайта без проблем может загружать файлы. Решение: В созданном уровне доступа выберите флажок «Загрузка файла на сервер (fm_upload_file)», сохраните. Это должно решить проблему. Наверх |
| Не работает экспорт в Yandex.Market(YML не принят), что делать? | ||
| При проверке файла экспорта в Yandex.Market ошибка вида: 2. «Notice : Undefined index: referer1 in /var/www/alexey/data/www/telecamera.ru/upload/yandex.php on line 1» позволяет выводить все ошибки, за исключением замечаний. Если используется компонент рассылки версии 1.0: $SUBSCRIBE_TEMPLATE_RESULT это глобальная переменная, её значение определяется внутри компонента. Если используется компонент рассылки версии 2.0: $SUBSCRIBE_TEMPLATE_RESULT не является глобальной, поэтому просто вызвать компонент для определения значения этой переменной недостаточно(как это было с компонентом версии 1.0):
Наверх |
| Количество сообщений (тем, новостей и т.д.) на странице не совпадает с количеством, указанном в настройке компонента |
| Скорее всего, в настройках используемого компонента отмечена опция «Использовать обратную постраничную навигацию». В данном режиме происходит обратный отсчёт страниц (последняя страница считается первой). Данный механизм используют, если при добавлении элемента инфоблока, он всегда попадает наверх списка (отсортированы по дате добавления сообщения по убыванию). Таким образом, меняется лишь последняя страница. Все предыдущие можно надолго закешировать. При данном типе постраничной навигации разбиение на страницы произойдёт, если остаток при делении количества сообщений на первой странице на число, указанное в настройках компонента, будет больше или равно двум. При обратной страничной навигации количество сообщений на странице либо равно числу, указанному в настройках компонента, либо больше его. Наверх |
| При распаковке резервной копии происходит ошибка «ERROR 1062 (23000) at line 1247: Duplicate entry ‘2-?’ for key 2» | ||
| Данная ошибка имеет место если кодировка, в которой сделан дамп отличается от той, которая используется на новом сервера баз данных. Тут важно знать 2 аспекта: a. Кодировка дампа устанавливается в зависимости от содержимого файла /bitrix/php_interface/after_connect.php, например:
т.е дамп будет создаваться в кодировке «utf8». b. Кодировку сервера баз данных можно увидеть в параметре «character_set_server» после выполнения SQL-запроса:
Ошибка происходит если данные кодировки (п.1 и п.2) различаются. Обойти или устранить эту ошибку можно двумя способами: 1. В настройках сервера изменить кодировку в параметре «character_set_server» (b) на ту, в которой сделан дамп (a). Важно: данную операцию делаете или Вы или администратор сервера в зависимости от прав, которыми Вы обладаете. 2. Можно открыть дамп в текстовом редакторе и в самое начало вставить строку: Кодировка выбирается в зависимости от кодировки, в которой сделан дамп (a). Важно: Данный способ работает только на небольшие дампы (которые успевают импортировать за один шаг) Наверх |
| При установке демо версии происходит ошибка «Срок работы пробной версии продукта истек. « |
| Возможные причины: 1. В большинстве случаев данная ошибка наблюдается из-за того, что дистрибутив продукта (архив) был не до конца скачан с нашего сайта. 2. Также проблема может быть из-за большой разности времени, которое установлено, на веб-сервере и времени на сервере базы. Т.е. Пробная версии создалась для одной даты, а при сравнении с базой данных, дата уже совсем другая. Если это так, то время надо синхронизировать. 3. Возможно база данных, в которую выполняется установка продукта, не пуста и время действия продукта берётся со старой установки. Ниже приведены рекомендации, при выполнении которых данная ошибка точно не появится: 1. Перед установкой продукта очистите корневую папку сайта от всех файлов (оставить надо только файлы, относящиеся к данной установке продукта). 2. Выполняйте установку только в пустую базу данных или создавайте её нашим мастером установки (можно также воспользоваться и phpMyAdmin). 3. Настоятельно рекомендуем пользоваться специальным скриптом bitrixsetup.php для скачивания и установки дистрибутива последней версии: 4. Во время установки никогда не нажимайте кнопку F5 в браузере, для навигации по мастеру установки существуют специальные кнопки на странице. 5. Также возможно, что в процессе распаковки дистрибутива произошёл сбой и не все файлы распаковались. Рекомендуем повторно распаковать продукт. Скачать скрипт можно здесь: Инструкция по установке продукта: Учебный курс по установке продукта: Наверх |



