Задать вопрос
  • Настроить отдачу файлов в Nginx?

    JastaFly
    @JastaFly Автор вопроса
    Всё заработало после того как я сменил в локейшене root, на alias и прописал полные пути до нужных файлов:
    location = /url/to/js/file/first-script.js {
            alias /path/to/directory/with/static/files/first-script.js;
            expires 30d;
            try_files $uri $uri/ =404;
            error_page 404 /404.html;
        }
    
        location = /url/to/css/file/style.css {
            alias /path/to/directory/with/static/files/style.css;
            expires 30d;
            try_files $uri $uri/ =404;
            error_page 404 /404.html;
        }
    
        location = /url/to/js/file/second-script.js {
            alias /path/to/directory/with/static/files/second-script.js;
            expires 30d;
            try_files $uri $uri/ =404;
            error_page 404 /404.html;
        }
    Ответ написан
    Комментировать
  • Как установить Sphinx на Alma Linux 9?

    JastaFly
    @JastaFly Автор вопроса
    Решил проблему установив пакет для федоры:
    sudo dnf install https://kojipkgs.fedoraproject.org//packages/sphinx/2.2.11/24.fc38/x86_64/sphinx-2.2.11-24.fc38.x86_64.rpm
    Ответ написан
    Комментировать
  • Не работают сессии в memcached?

    JastaFly
    @JastaFly Автор вопроса
    Решил проблему подправив конфиг php.ini под memcached:
    session.save_handler = "memcached"
    session.save_path="127.0.0.1:11212"
    memcached.sess_locking = Off
    Ответ написан
    Комментировать
  • Сайт открывается на http и не открывается на https?

    JastaFly
    @JastaFly Автор вопроса
    Решил проблему добавив прослушивание 443 порта в конфиге nginx:
    listen 443 ssl default_server;
    Затем сгенерировал SSL, сертификат:
    openssl genrsa -out rootCA.key 2048
    openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 1024 -out rootCA.pem

    и потом прописал его в том-же конфиге:
    ssl_certificate      /etc/nginx/ssh/rootCA.pem;
    ssl_certificate_key  /etc/nginx/ssh/rootCA.key;

    После перезагрузки Nginx сайт стал открываться по протоколу https
    Ответ написан
    Комментировать
  • Ошибка при сборке в плагине webpack-svgstore-plugin?

    JastaFly
    @JastaFly Автор вопроса
    Ну да, webpack-svgstore-plugin устарел, заменил его на svg-sprite-loader от JetBrains
    Ответ написан
    Комментировать
  • Ошибка с Babel при сборке Webpack?

    JastaFly
    @JastaFly Автор вопроса
    Помогло добавления пакета с пресетами в package.json:
    "@babel/preset-env": "^7.26.0",
    В webpack.config.js замени старые пресеты babel-preset-env:
    {
                    test: /\.js$/,
                    exclude: /(node_modules|vendor)/,
                    loader: 'babel-loader',
                    query: {
                        cacheDirectory: true,
                        presets: ['babel-preset-env']
                    }
                },

    На новые @babel/preset-env:
    {
                    test: /\.js$/,
                    exclude: /(node_modules|vendor)/,
                    loader: 'babel-loader',
                    options: {
                        cacheDirectory: true,
                        presets: ['@babel/preset-env']
                    }
                }
    Ответ написан
    Комментировать
  • Ошибка Uncaught ReferenceError: exports is not defined?

    JastaFly
    @JastaFly Автор вопроса
    Решить проблему помогла замена экспорта модулей с:
    exports.sliders = sliders
    На:
    export {
        sliders,
        .....
    }

    В главном JS файле сборки (Webpack 5)
    Ответ написан
    Комментировать
  • Сборщик игнорирует синтаксис PostCSS?

    JastaFly
    @JastaFly Автор вопроса
    Починить сборку помогло удаление плагина postcss-preset-env из конфига вебпака
    Ответ написан
    Комментировать
  • Ошибка Error: EACCES: permission denied, stat '/root/.config/postcss' при сборке?

    JastaFly
    @JastaFly Автор вопроса
    Проблему решить помогло смена версий пакетов:
    "postcss": "^8.4.32",
        "postcss-loader": "^7.3.4",
        "postcss-preset-env": "^9.3.0",

    Спасибо szQocks за совет)
    Ответ написан
    Комментировать
  • Ошибка Invalid command 'php_value'?

    JastaFly
    @JastaFly Автор вопроса
    Проблема была в том что PHP, в дефолтных репозиториях моей ОС (в данном случае это была Alma Linux), PHP шёл без модуля для апач и от того в директории с модулями: /etc/httpd/modules отсутствовал модуль libphp.so. Чтобы решить проблему я, удалил установленный пакет PHP:
    dnf remove php
    Затем добавил репозиторий реми:
    sudo dnf -y install http://rpms.remirepo.net/enterprise/remi-release-9.rpm -y

    Сбросил старый модуль с PHP:
    sudo dnf module reset php -y
    И установил новый PHP из репозитория реми:
    sudo dnf module install php:remi-8.1
    Более подробная инструкция. Только репозиторий реми там 8-й версии, в моем случае нужен был 9-й (в своём примере я это подправил)
    Ответ написан
    Комментировать
  • Как открыть локальный сайт в браузере?

    JastaFly
    @JastaFly Автор вопроса
    В итоге смогу получить результат на адресе: 192.168.0.164 (обычный нешифрованный http + IP адрес через который я подрубался по SSH. Если использовать https, то ничего не выйдет). Данный адрес я нашел на виртуалке по команде ifconfig:
    672b5859e5dff838171799.png
    Ранее не удавалось подрубиться по http из-за ошибки в PHP скрипте, которую смог найти в error логе Nginx
    Ответ написан
    Комментировать
  • Дополнительное поле для элементов инфоблока в Битрикс?

    JastaFly
    @JastaFly Автор вопроса
    В итоге остановился на варианте с созданием нового свойства для инфоблка, так как особых альтернатив нет, а все прочие варианты только усложняют логику
    Ответ написан
    Комментировать
  • После обновления Битрикс пропала фильтрация по свойству?

    JastaFly
    @JastaFly Автор вопроса
    Проблема была в отсутствующем поле UF_SORT у проблемного HighLoad блока. Написал миграцию добавляющую её:
    namespace Sprint\Migration;
    
    class AddSortFieldInHighloadBlock20240926165615 extends Version
    {
        protected $author = 'https://github.com/JastaFly';
        protected $description = 'Добавляет поле сортировки в Highload-блок';
        protected $moduleVersion = '4.12.6';
        private HelperManager $helperManager;
        private int $hlBlockManufacturersId;
    
        /**
         * @throws Exceptions\HelperException
         * @return bool|void
         */
        public function __construct()
        {
            $this->helperManager = $this->getHelperManager();
            $this->hlBlockManufacturersId = $this->helperManager->Hlblock()->getHlblockIdIfExists(
                'highloadBlockName'
            );
        }
    
        public function up()
        {
            $this->helperManager->Hlblock()->saveField(
                $this->hlBlockManufacturersId,
                [
                    'FIELD_NAME' => 'UF_SORT',
                    'USER_TYPE_ID' => 'double',
                    'XML_ID' => '',
                    'SORT' => '100',
                    'MULTIPLE' => 'N',
                    'MANDATORY' => 'N',
                    'SHOW_FILTER' => 'N',
                    'SHOW_IN_LIST' => 'Y',
                    'EDIT_IN_LIST' => 'Y',
                    'IS_SEARCHABLE' => 'N',
                    'SETTINGS' => [
                        'PRECISION' => 4,
                        'SIZE' => 20,
                        'MIN_VALUE' => 0.0,
                        'MAX_VALUE' => 0.0,
                        'DEFAULT_VALUE' => NULL,
                    ],
                    'EDIT_FORM_LABEL' => ['en' => 'Sorting', 'ru' => 'Сортировка'],
                    'LIST_COLUMN_LABEL' => ['en' => 'Sorting', 'ru' => 'Сортировка'],
                    'LIST_FILTER_LABEL' => ['en' => 'Sorting', 'ru' => 'Сортировка'],
                    'ERROR_MESSAGE' => ['en' => 'Sorting', 'ru' => 'Сортировка'],
                    'HELP_MESSAGE' => ['en' => 'Sorting', 'ru' => 'Сортировка']
                ]
            );
        }
    
        public function down()
        {
            $deleteResult = $this->helperManager->Hlblock()->deleteField($this->hlBlockManufacturersId, 'UF_SORT');
    
            if ($deleteResult) {
                $this->outSuccess('Всё ok. Свойство сортировки добавлено');
            } else {
                $this->outError('Не ok. Свойство сортировки не добавлено');
            }
        }
    }
    Ответ написан
    Комментировать
  • Какую библиотеку для PHP 8 можно использовать для редактирования метадаты в PDF файлах?

    JastaFly
    @JastaFly Автор вопроса
    В итоге написал свою либу на PHP, на основе данного обсуждения
    composer require jasta-fly/phpdfer
    Ответ написан
    Комментировать
  • Код 127 в exec()?

    JastaFly
    @JastaFly Автор вопроса
    Разобрался. Решение оказалось до банальности простым, софт который я использовал внутри exec() был установлен в контейнера с сервером, а вот в контейнере с PHP, нет. Установил его и там и всё заработало. Спасибо всем за помощь)
    Ответ написан
    Комментировать
  • Как сохранить HTML код в XML?

    JastaFly
    @JastaFly Автор вопроса
    В итоге переписал всё с использованием библиотеки DOMDocument где можно нормально работать с CDATA. Спасибо огромное IvanU7n за подсказку)
    Ответ написан
    Комментировать
  • Ошибка Mysql query error: (1062) Duplicate entry 'iblock-seometa_99_4062_063_99_1' for key 'UX_B_SEARCH_CONTENT' при переиндексации?

    JastaFly
    @JastaFly Автор вопроса
    В итоге это оказалось косяком разработчиков модуля Сотбит: SEO умного фильтра – мета-теги, заголовки, карта сайта. Пофиксилось удалением хуков на индексацию которые вешаем данный модуль при установке:
    65b9f9cee82d7255909341.jpeg
    Данные хуки нужны чтобы на сайте работал поиск по SEOшным тайтлам но эта фича нередко ломает индексацию на сайте и по сути является маловостребованной. Может в будущих версиях баг пофиксят, но пока только так
    Ответ написан
    Комментировать
  • Ошибка Allowed memory size of 4294967296 bytes exhausted (tried to allocate 81920 bytes)?

    JastaFly
    @JastaFly Автор вопроса
    Разобрался, лимит из конфига перебивался в файле local/php_interface/init.php:
    ini_set('memory_limit', '4096M');
    Увеличил там значение на 2Гб и всё заработало.
    P.S. Сайт на Битриксе
    Ответ написан
    Комментировать
  • Не меняется статус заказа после переезда на sberbank.ecom2?

    JastaFly
    @JastaFly Автор вопроса
    Решение оказалось до боли простым, статус заказа не менялся из-за базовой авторизации на сайте где тестировался новый модуль
    Ответ написан
    Комментировать
  • Ограничить доступ к кастомному модулю?

    JastaFly
    @JastaFly Автор вопроса
    В итоге я выбрал свой, хоть и костыльный но зато быстрый метод, а именно повесил обработчик на событие формирования меню:
    AddEventHandler('main', 'OnBuildGlobalMenu', 'deleteForbiddenMenuItems', 200);

    И тупо удалить всё ненужное из массива с элементами меню:
    function deleteForbiddenMenuItems(&$aGlobalMenu)
    {
        unset(
            $aGlobalMenu['global_menu_sitecore'],
            $aGlobalMenu['global_menu_custom_core'],
            $aGlobalMenu['global_menu_content'],
            $aGlobalMenu['global_menu_marketing'],
            $aGlobalMenu['global_menu_services'],
            $aGlobalMenu['global_menu_marketplace'],
            $aGlobalMenu['global_menu_crm_site_master']
        );
    }

    Правда тогда появляется сайд эффект в виде кнопок заглушек со стрелочками в главном меню. Их я скрыл добавив в админку следующий CSS:
    .adm- {
        display: none;
    }

    Спасибо всем за помощь)
    Ответ написан
    Комментировать