Задать вопрос
  • Ошибка Error: EACCES: permission denied, stat '/root/.config/postcss' при сборке?

    JastaFly
    @JastaFly Автор вопроса
    szQocks,

    ну или ещё как вариант ошибка в том как ты настроил этот postcss хм

    Вряд-ли, есть у меня экспериментальный вебпак практически с таким-же конфигом но другим entry, и там сборка собирается

    package.json

    Вот мой package.json:
    {
      "name": "project",
      "version": "1.0.0",
      "description": "",
      "dependencies": {
        "air-datepicker": "^2.2.3",
        "array-unique": "^0.3.2",
        "blazy": "^1.8.2",
        "body-scroll-lock": "^2.6.1",
        "comparison-slider": "^1.1.0",
        "img-slider": "^2.2.0",
        "inputmask": "^4.0.8",
        "inputmask-multi": "^1.2.0",
        "intersection-observer": "^0.12.2",
        "jquery": "^3.5.1",
        "jquery-migrate": "^3.0.0",
        "magnific-popup": "^1.1.0",
        "nouislider": "^11.1.0",
        "perfect-scrollbar": "^1.4.0",
        "promise-polyfill": "8.1.0",
        "selectize": "^0.12.6",
        "swiper": "^4.3.3",
        "tooltipster": "^4.2.8"
      },
      "devDependencies": {
        "postcss-nesting": "13.0.1",
        "postcss-preset-env": "10.1.0",
        "autoprefixer": "10.4.20",
        "css-mqpacker": "7.0.0",
        "cssnano": "7.0.6",
        "@babel/preset-env": "^7.26.0",
        "babel-core": "^6.26.3",
        "babel-loader": "^9.2.1",
        "babel-preset-env": "^1.7.0",
        "cross-env": "^7.0.3",
        "css-loader": "^0.28.9",
        "datatables.net": "^1.10.19",
        "dotenv": "^16.0.1",
        "dotenv-webpack": "^8.1.0",
        "mini-css-extract-plugin": "^2.9.2",
        "normalize.css": "^8.0.0",
        "object-fit-images": "^3.2.3",
        "optimize-css-assets-webpack-plugin": "^3.2.0",
        "postcss-cssnext": "^3.1.1",
        "postcss-extend": "^1.0.5",
        "postcss-flexbugs-fixes": "^5.0.2",
        "postcss-for": "2.1.1",
        "postcss-gradient-transparency-fix": "^4.1.0",
        "postcss-import": "^16.1.0",
        "postcss-input-style": "^1.0.0",
        "postcss-loader": "^8.1.1",
        "postcss-nested": "^7.0.2",
        "postcss-object-fit-images": "^1.1.2",
        "postcss-simple-vars": "7.0.1",
        "style-loader": "^0.20.1",
        "suggestions-jquery": "^20.3.0",
        "svg-sprite-loader": "^5.1.1",
        "svg4everybody": "^2.1.9",
        "url-loader": "^4.1.1",
        "vanilla-text-mask": "^5.1.1",
        "webpack": "^5.96.1",
        "webpack-cli": "^5.1.4"
      },
      "scripts": {
        "webpack": "webpack",
        "build": "cross-env NODE_ENV=production webpack"
      }
    }


    c версиями сам разберешься

    Попробую, но что-то мне кажется вряд-ли и пакета postcss у меня вообще нет
    Написано
  • Ошибка Error: EACCES: permission denied, stat '/root/.config/postcss' при сборке?

    JastaFly
    @JastaFly Автор вопроса
    szQocks,

    а не от куда-то там, то есть при помощи path / __dirname и т.д

    __dirname у в моём конфиге широко используется)

    вот видишь как ты указал путь

    Путь условный, в реальности был несколько другой, но суть он передаёт

    я всё же склоняюсь к тому что проблема в остальном конфиге

    Возможно. Но я пока не понимаю где, вот конфиг вебпака целиком:
    const params = {
        env: process.env.NODE_ENV || 'development'
    };
    
    const path = require('path');
    const webpack = require('webpack');
    const Dotenv = require('dotenv-webpack');
    
    const plugins = {
        miniCssExtractPlugin: require("mini-css-extract-plugin"),
        svgLoader: require('svg-sprite-loader/plugin'),
        cssOptimize: require('optimize-css-assets-webpack-plugin'),
        jsOptimize: require('terser-webpack-plugin')
    };
    
    const postCss = {
        postCssPresetEnv: require('postcss-preset-env'),
        import: require('postcss-import'),
        nested: require('postcss-nested'),
        cssFor: require('postcss-for'),
        simpleVars: require('postcss-simple-vars'),
        flexbugs: require("postcss-flexbugs-fixes"),
        inputStyle: require("postcss-input-style"),
        objectFit: require("postcss-object-fit-images"),
        gradientFix: require('postcss-gradient-transparency-fix'),
        extend: require('postcss-extend'),
    };
    
    module.exports = {
        context: path.resolve(__dirname + '/app'),
        entry: {
            subscription: './app-subscription.js',
            critical: './app-crit.js',
            main: './app.js',
        },
        stats: {children: false},
    
        watch: params.env == 'development',
        watchOptions: {
            aggregateTimeout: 50
        },
    
        resolve: {
            modules: [
                (path.resolve(__dirname)),
                (path.resolve(__dirname) + '/vendor'),
                (path.resolve(__dirname) + '/node_modules')
            ],
            extensions: ['*', '.js', '.css']
        },
    
        resolveLoader: {
            modules: [
                path.resolve(__dirname),
                path.resolve(__dirname) + '/node_modules',
                path.resolve(__dirname) + '/node_modules'
            ]
        },
    
        output: {
            path: path.resolve(__dirname + '/build'),
            publicPath: '/local/client/build/',
            filename: '[name].js',
            library: 'App'
        },
    
        module: {
            rules: [
                {
                    test: /\.css$/,
                    use: [
                        plugins.miniCssExtractPlugin.loader,
                        'css-loader',
    
                        {
                            loader: "postcss-loader",
                            options: {
                                sourceMap: true,
                                postcssOptions: {
                                    plugins: () => [
                                        postCss.import(),
                                        postCss.cssFor(),
                                        postCss.simpleVars(),
                                        postCss.postCssPresetEnv(),
                                        postCss.nested(),
                                        postCss.flexbugs(),
                                        postCss.inputStyle(),
                                        postCss.objectFit(),
                                        postCss.gradientFix(),
                                        postCss.extend(),
                                    ]
    
                                }
    
                            },
                        },
                    ],
                },
    
                {
                    test: /\.js$/,
                    exclude: /(node_modules|vendor)/,
                    loader: 'babel-loader',
                    options: {
                        cacheDirectory: true,
                        presets: ['@babel/preset-env']
                    }
                },
    
                {
                    test: /\.(svg)$/,
                    use: [
                        {
                            loader: 'svg-sprite-loader',
                            options: {
                                extract: true,
                            }
                        },
                        'svg-transform-loader',
                        'svgo-loader'
                    ]
                }
            ]
        },
    
        plugins: [
            new plugins.miniCssExtractPlugin({
                filename: '[name].css'
            }),
    
            new plugins.svgLoader(),
    
            new webpack.ProvidePlugin({
                Swiper: 'swiper/dist/js/swiper.min.js',
                vanillaTextMask: "vanilla-text-mask/dist/vanillaTextMask.js"
            }),
    
            new webpack.ProvidePlugin({
                $: "jquery",
                jQuery: "jquery"
            }),
            new Dotenv({
                path:  (path.resolve(__dirname) + '/.env')
            }),
    
        ]
    };
    
    if (params.env == 'production') {
    
        module.exports.plugins.push(
            new plugins.jsOptimize()
        );
    
        /*module.exports.plugins.push(
            new plugins.cssOptimize({
                cssProcessor: require('cssnano'),
            })
        );*/
    }
    Написано
  • Ошибка Error: EACCES: permission denied, stat '/root/.config/postcss' при сборке?

    JastaFly
    @JastaFly Автор вопроса
    szQocks,

    почему у тебя путь начинается с рута

    Потому что сборка запускается с рута) Полагаю был бы запуск от другого пользователя, то ссылка вела бы на его домашнюю директорию

    вот туда и копай

    Да уже смотрел. И по указанному пути у меня ничего нет:
    ls -la
    итого 4
    drwx------.  3 root root   18 ноя  1 15:23 ./
    dr-xr-x---. 10 root root 4096 ноя 18 18:09 ../
    drwx------.  5 root root   97 ноя  1 15:23 fish/

    Вообще данная ошибка появилась после экспериментов с вынесением настроек PostCSS в отдельный файл, в конфиге вебпака это выглядело как-то так:
    {
          loader: 'postcss-loader',
          options: { sourceMap: true, config: { path: 'src/js/postcss.config.js' } }
        }

    Но запустить ничего не вышло и я откатил конфиг к старой версии, без внешних настроек. Вот только появилась эта чёртова ошибка(

    почему у тебя тут 2 одинаковых лоадера, убери один из них

    Убрал:
    module: {
            rules: [
                {
                    test: /\.css$/,
                    use: [
                        plugins.miniCssExtractPlugin.loader,
                        'css-loader',
    
                        {
                            loader: "postcss-loader",
                            options: {
                                sourceMap: true,
                                postcssOptions: {
                                    plugins: () => [
                                        postCss.import(),
                                        postCss.cssFor(),
                                        postCss.simpleVars(),
                                        postCss.postCssPresetEnv(),
                                        postCss.nested(),
                                        postCss.flexbugs(),
                                        postCss.inputStyle(),
                                        postCss.objectFit(),
                                        postCss.gradientFix(),
                                        postCss.extend(),
                                    ]
    
                                }
    
                            },
                        },
                    ],
                },
    }
    .....

    Но проблему решить это очевидно не помогло
    Написано
  • Сборщик игнорирует синтаксис PostCSS?

    JastaFly
    @JastaFly Автор вопроса
    Aetae,

    У тебя подключено два пакета postcss-nested и postcss-nesting

    postcss-nesting я подключил вот только что по совету от Ivan Ustûžanin, в изначальном конфиге его не было и всё равно ничего не работало

    Во втором не вижу примеров вида &_xxx, только & .xxx, возможно он это и не умеет

    Вероятнее всего он вообще не умеет работь с ссылками на родительский блок
    Написано
  • Сборщик игнорирует синтаксис PostCSS?

    JastaFly
    @JastaFly Автор вопроса
    Ivan Ustûžanin,

    но вложенность он разворачивает правильно — по правилам нативного CSS Nesting

    Раньше сборщик как-то и без этого справлялся, но тем не менее я добавил пакет postcss-nesting в проект и подправил конфиг вебпака в соответствии с ним, добавил в объект с плагинами:
    const postCss = {
        postCssPresetEnv: require('postcss-preset-env'),
        import: require('postcss-import'),
        nested: require('postcss-nested'),
        cssFor: require('postcss-for'),
        simpleVars: require('postcss-simple-vars'),
        flexbugs: require("postcss-flexbugs-fixes"),
        inputStyle: require("postcss-input-style"),
        objectFit: require("postcss-object-fit-images"),
        gradientFix: require('postcss-gradient-transparency-fix'),
        extend: require('postcss-extend'),
        postCssNesting: require('postcss-nesting')
    };

    Добавил плагин в настройки PostCSS:
    module: {
            rules: [
                {
                    test: /\.css$/,
                    use: [
                        plugins.miniCssExtractPlugin.loader,
                        'css-loader',
                        'postcss-loader',
    
                        {
                            loader: "postcss-loader",
                            options: {
                                sourceMap: true,
                                postcssOptions: {
                                    plugins: () => [
                                        postCss.postCssNesting(),
                                        postCss.import(),
                                        postCss.cssFor(),
                                        postCss.simpleVars(),
                                        postCss.nested(),
                                        postCss.postCssPresetEnv(),
                                        postCss.flexbugs(),
                                        postCss.inputStyle(),
                                        postCss.objectFit(),
                                        postCss.gradientFix(),
                                        postCss.extend(),
                                    ]
    
                                }
    
                            },
                        },
                    ],
                },
    }

    Ожидаемо не сработало(

    для желаемого "разложения" вложенности SASS обычно используют

    Но может быть я бы так и поступил, но стек не я варил
    Написано
  • Сборщик игнорирует синтаксис PostCSS?

    JastaFly
    @JastaFly Автор вопроса
    Виталий Першин,
    Попробовал, не помогло(
    Написано
  • Сайт открывается на http и не открывается на https?

    JastaFly
    @JastaFly Автор вопроса
    Refguser,

    Ты хочешь честный сертификат на IP, да ещё серый? Серьёзно?

    Ну что Вы какой честный сертификат для локального IP компа
    galaxy,
    вот из файла nginx.conf:
    user nginx apache;
    worker_processes auto;
    error_log /var/log/nginx/error.log;
    pid /run/nginx.pid;
    
    # Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
    include /usr/share/nginx/modules/*.conf;
    
    events {
        worker_connections 2048;
        multi_accept on;
        use epoll;
    }
    
    http {
    	include /etc/nginx/mime.types;
    	default_type application/force-download;
    	server_names_hash_bucket_size 128;
    
    	# log formats
        log_format json escape=json
        '{'
    	'"ru":"$remote_user",'
    	'"ts":"$time_iso8601",'
    	'"p":"$host",'
    	'"rl":$request_length,'
    	'"rm":"$request_method",'
    	'"ru":"$request_uri",'
    	'"st":"$status",'
       	'"bs":$bytes_sent,'
    	'"ref":"$http_referer",'
    	'"ua":"$http_user_agent",'
    	'"rt":"$request_time",'
    	'"urt":"$upstream_response_time",'
    	'"uct":"$upstream_connect_time",'
    	'"uad":"$upstream_addr",'
    	'"us":"$upstream_status",'
    	'"uid":"$cookie_qmb",'
    	'"sslp":"$ssl_protocol",'
    	'"sp":"$server_protocol"'
        '}';
    
        # backend upstream servers
        include conf.d/upstreams.conf;
    
        # common composite and file cache settings
        include conf.d/maps-composite_settings.conf;
        include conf.d/maps.conf;
    
        # add_header
        include conf.d/http-add_header.conf;
    
    	# Enable logging
    	access_log /var/log/nginx/access.log  json;
    
    	sendfile			on;
    	tcp_nopush			on;
    	tcp_nodelay			on;
    
    	client_max_body_size		1024m;
    	client_body_buffer_size		4m;
    
    	# Parameters for back-end request proxy
    	proxy_connect_timeout		300;
    	proxy_send_timeout		300;
    	proxy_read_timeout		300;
    	proxy_buffer_size		64k;
    	proxy_buffers			8 256k;
    	proxy_busy_buffers_size		256k;
    	proxy_temp_file_write_size	10m;
    
    	types_hash_max_size	4096;
    
    	# Assign default error handlers
    	error_page 500 502 503 504 /500.html;
    	error_page 404 = /404.html;
    
    	# Content compression parameters
    	gzip				on;
    	gzip_proxied			any;
    	gzip_static			on;
    	gzip_http_version		1.0;
    	gzip_types			application/x-javascript application/javascript text/css;
    	include sites-available/*.conf;
    
    }
    Написано
  • Ошибка Invalid command 'php_value'?

    JastaFly
    @JastaFly Автор вопроса
    Ivan Ustûžanin,

    странная какая-то настройка сервера без доступа к этому самому серверу

    Доступ к серверу есть, просто то что Вы просите посмотреть работает только через PHP, а у меня как раз апач не стартует из-за ошибки связанной с PHP. Условно у меня машина не заводится, а Вы предлагаете на ней до сервиса доехать
    Ипатьев,

    не нужен никакой модуль пыхи, надо поставить fpm

    Я бы с радостью, но мне нужно воспроизвести окружение, а не изобретать своё, так что только апач с его модулями, только храд кор
    Написано
  • Как открыть локальный сайт в браузере?

    JastaFly
    @JastaFly Автор вопроса
    Zerg89 по сути на чём-то таком он и работал. 80-й порт по дефолту идёт
    Написано
  • Как открыть локальный сайт в браузере?

    JastaFly
    @JastaFly Автор вопроса
    Adamos,

    А еще, бывает, у nginx логи есть...

    Точняк.... логи)
    Написано
  • Как открыть локальный сайт в браузере?

    JastaFly
    @JastaFly Автор вопроса
    Adamos,

    я имел в виду - редирект с HTTP на HTTPS, типа такого

    Такого найти не могу. А оно действительно так важно сейчас? Я и по http пробовал подключаться
    Написано
  • Как открыть локальный сайт в браузере?

    JastaFly
    @JastaFly Автор вопроса
    VoidVolker

    Веб-сервер запущен должен быть либо на IP 0.0.0.0 - что значит все сетевые адаптеры

    На сколько я могу судить именно на нём он и запущен:
    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
    tcp        0      0 127.0.0.1:6379          0.0.0.0:*               LISTEN      1417/redis-server 1
    tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      1474/nginx: master
    tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1084/sshd: /usr/sbi
    tcp        0      0 127.0.0.1:8090          0.0.0.0:*               LISTEN      1078/httpd
    tcp        0      0 127.0.0.1:8895          0.0.0.0:*               LISTEN      1474/nginx: master
    tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      1077/cupsd
    tcp        0      0 127.0.0.1:6010          0.0.0.0:*               LISTEN      9203/sshd: root@pts
    tcp6       0      0 :::22                   :::*                    LISTEN      1084/sshd: /usr/sbi
    tcp6       0      0 ::1:6010                :::*                    LISTEN      9203/sshd: root@pts
    tcp6       0      0 ::1:631                 :::*                    LISTEN      1077/cupsd
    tcp6       0      0 :::3306                 :::*                    LISTEN      1981/mysqld
    udp        0      0 127.0.0.1:323           0.0.0.0:*                           818/chronyd
    udp        0      0 0.0.0.0:5353            0.0.0.0:*                           760/avahi-daemon: r
    udp        0      0 0.0.0.0:34584           0.0.0.0:*                           760/avahi-daemon: r
    udp6       0      0 ::1:323                 :::*                                818/chronyd
    udp6       0      0 :::5353                 :::*                                760/avahi-daemon: r
    udp6       0      0 :::56726                :::*                                760/avahi-daemon: r


    Так же в фаерволле должны быть открыты все требуемые порты

    Вы имеете ввиду фаервол виртуалки или основной системы, на которой её запускаю?
    Написано
  • Как открыть локальный сайт в браузере?

    JastaFly
    @JastaFly Автор вопроса
    Adamos,

    Одновременно?

    Ага

    На каких портах?

    Nginx слушает 80-й и 127.0.0.1:8895, а апач 127.0.0.1:8090:
    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
    tcp        0      0 127.0.0.1:6379          0.0.0.0:*               LISTEN      1417/redis-server 1
    tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      1474/nginx: master
    tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1084/sshd: /usr/sbi
    tcp        0      0 127.0.0.1:8090          0.0.0.0:*               LISTEN      1078/httpd
    tcp        0      0 127.0.0.1:8895          0.0.0.0:*               LISTEN      1474/nginx: master
    tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      1077/cupsd
    tcp        0      0 127.0.0.1:6010          0.0.0.0:*               LISTEN      9203/sshd: root@pts
    tcp6       0      0 :::22                   :::*                    LISTEN      1084/sshd: /usr/sbi
    tcp6       0      0 ::1:6010                :::*                    LISTEN      9203/sshd: root@pts
    tcp6       0      0 ::1:631                 :::*                    LISTEN      1077/cupsd
    tcp6       0      0 :::3306                 :::*                    LISTEN      1981/mysqld
    udp        0      0 127.0.0.1:323           0.0.0.0:*                           818/chronyd
    udp        0      0 0.0.0.0:5353            0.0.0.0:*                           760/avahi-daemon: r
    udp        0      0 0.0.0.0:34584           0.0.0.0:*                           760/avahi-daemon: r
    udp6       0      0 ::1:323                 :::*                                818/chronyd
    udp6       0      0 :::5353                 :::*                                760/avahi-daemon: r
    udp6       0      0 :::56726                :::*                                760/avahi-daemon: r


    Не настроена ли там переадресация на HTTPS, которого у виртуалки нет?

    Вроде да:
    proxy_redirect ~^(http://[^:]+):\d+(/.+)$ $1$2;
    proxy_redirect ~^(https://[^:]+):\d+(/.+)$ $1$2;
    Написано
  • Как открыть локальный сайт в браузере?

    JastaFly
    @JastaFly Автор вопроса
    Drno посмотрел. Подрубался через него по SSH. Результат попытки забить этот адрес в адресную строку браузера Вы можете наблюдать на скрине в заглавии топика
    Написано
  • Как открыть локальный сайт в браузере?

    JastaFly
    @JastaFly Автор вопроса
    Lynn «Кофеман»,

    Для начала выяснить как настроена сеть у VirtualBox

    Сетевой мост:
    672a3b5e1197b398427471.png
    maksam07,

    Возможно мне кажется, но настраивать сайт через VirtualBox - какое-то извращение

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

    Для начала в свойствах сети хоста узнай IP виртуалки

    IP виртуалки знаю, спокойно подрубаюсь к ней по SSH. А вот попытка забить этот айпишник в адресную строку браузера, Вы можете наблюдать на скрине в заглавии топика
    Написано
  • Ошибка Invalid command 'php_value'?

    JastaFly
    @JastaFly Автор вопроса
    Дмитрий,

    ну и вообще плохая практика редактировать дефолтный конфиг,

    Ну я пытаюсь быть осторожным и бездумно ничего править не хочу)
    Написано
  • Ошибка Invalid command 'php_value'?

    JastaFly
    @JastaFly Автор вопроса
    Ivan Ustûžanin,

    а где ответ на мой вопрос

    Сказать пока не могу, так как способов посмотреть это без запуска PHP файлов через сервер не нашёл, а до этой стадии пока дойти не удалось. Но что-то мне подсказывает что либо php-fpm, либо cgi, но не mod_php

    php-fpm и cgi

    альма линукс
    Написано
  • Ошибка Invalid command 'php_value'?

    JastaFly
    @JastaFly Автор вопроса
    Дмитрий,

    Да и апач я бы в фпм запилил, чем мод ставить

    Я бы тоже много чё запилил и вообще может быть к херам выкинул этот апач и nginx бы в топку отправил, заменив роуд ранером. Но стек такой какой есть и менять его нельзя
    Ипатьев,
    Я попробовал удалить директивы на которые ругается апач и после этого он успешно стартанул. Если не чего ещё не придумаю, то наверное оставлю так и пойду фигачить дальше, но что-то мне подсказывает что по итогу у меня будут проблемы с PHP, так как смущает что модуля для пыхи нет в соответствующей директории. Ну ладно, поживём увидим
    Ivan Ustûžanin, вы ещё туть?! Может у Вас есть идеи?!
    Написано
  • Ошибка Invalid command 'php_value'?

    JastaFly
    @JastaFly Автор вопроса
    ProjectSoft,

    Варнинги

    Варнинги на то и варнинги чтобы хрен на них класть) Ну варнинг ругается что в директорию которую я прописал как рут для сайта, не не хрена и самой директории нет. Но я ещё её и не создавал, так что тут всё под контролем

    ну вот если не стартанёт, то и надо разбираться.

    при том что не стартует он именно сейчас

    Ипатьев,
    ну у меня как бы сейчас уже сервер не стартует, смысл двигаться дальше если тут пока проблема не решена?! Мне вот очевидно что сайт 100% не стартанёт, так как конфиг, на PHP, ругается, а сайт без этого работать не будет. Плюс мне этот конфиг который Вы почикать предлагаете, не с потолка достался и на нём другая часть окружения завязана, тут удалю, почти наверняка где-то ещё что-то отвалится. Не выход это короче, не выход
    Дмитрий,

    а сайт работал или вы дамп разворачивааете?

    Пытаюсь намутить окружение для сайта
    Написано
  • Ошибка Invalid command 'php_value'?

    JastaFly
    @JastaFly Автор вопроса
    Собственно и в списке пакетов который я прислал он тоже есть
    Написано