Задать вопрос
  • Как связке апач-nginx настроить переход на https?

    @Hfnas Автор вопроса
    AUser0, ky0, В итоге настроено, как в доках симфони, да DocumentRoot у меня не прописан.... По https есть, сертификат отображается по decoder.link
    <VirtualHost 127.0.0.1:8080>
        ServerName crm.ru
        ServerAlias www.crm.ru
        ServerAdmin we@gmail.com
        DocumentRoot /var/www/crm/public_html/public
        DirectoryIndex index.php
    
        <Directory /var/www/crm/public_html/public>
            AllowOverride None
            Order Allow,Deny
            Allow from All
    
            FallbackResource /index.php
    
        </Directory>
    
         <Directory /var/www/crm/public_html/public/bundles>
            DirectoryIndex disabled
            FallbackResource disabled
        </Directory>
    
        ErrorLog /var/www/crm/error.log
        CustomLog /var/www/crm/access.log combined
    </VirtualHost>

    server {
         listen  80;
         server_name crm.ru www.crm.ru;
         return 301 https://$host$request_uri;
    }
    
    server {
    listen 443;
    listen [::]:443 ssl;
    root /var/www/crm/public_html/public;
    server_name crm.ru www.crm.ru;
    ssl_protocols TLSv1.2;
    ssl on;
    ssl_certificate /etc/nginx/ssl/crm.ru.crt;
    ssl_certificate_key /etc/nginx/ssl/crm.ru.key;
    
    location / {
    proxy_pass http://127.0.0.1:8080;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
    }


    ошибка в консоли браузера:
    Mixed Content: The page at 'https://crm.ru/' was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint 'http://crm.ru/admin/login'. This request has been blocked; the content must be served over HTTPS.


    И в результате , не добавляется в корзину по vue. Так как идет запрос в админку по апи платформ.
    Даже никакой редирект не срабатывает , если я в браузере напишу http:/crm.ru не перенаправления на https:/crm.ru , а админка вообще открывается только 'crm.ru/admin/login( то есть , если я наберу https://crm.ru/admin/login перенаправляется на crm.ru/admin/login)

    Костыль
    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests" />

    не помог.

    https://symfony.com/doc/current/routing.html#routi... тоже не помог...
  • Как связке апач-nginx настроить переход на https?

    @Hfnas Автор вопроса
    AUser0, Апач прослушивает порт 8080 согласно команде netstat -tulpn
    Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name             
    tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      32262/nginx: master 
    tcp        0      0 127.0.0.1:8080          0.0.0.0:*               LISTEN      32019/apache2       
    tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      32262/nginx: master 
    tcp6       0      0 :::80                   :::*                    LISTEN      32262/nginx: master 
    tcp6       0      0 :::443                  :::*                    LISTEN      32262/nginx: master

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

    <VirtualHost 127.0.0.1:8080>
        ServerName crm.ru
        ServerAlias www.crm.ru
        ServerAdmin we@gmail.com
        DocumentRoot /var/www/crm/public_html
        DirectoryIndex /index.php
    
        <Directory /var/www/crm/public_html>
           AllowOverride None
          # Require all granted
    
            Order Allow,Deny
            Allow from all
    
            FallbackResource /index.php
    
        </Directory>
    
         <Directory /var/www/project/public/bundles>
            DirectoryIndex disabled
            FallbackResource disabled
        </Directory>
    
        ErrorLog /var/www/crm/error.log
        CustomLog /var/www/crm/access.log combined
    </VirtualHost>


    Далее, пробую nginx^

    server {
         listen  80;
         server_name crm.ru www.crm.ru;
         return 301 http://www.$host$request_uri;
    }
    
    
    server {
    listen 443;
    listen [::]:443 ssl;
    root /var/www/crm/public_html;
    server_name crm.ru www.crm.ru;
    ssl_protocols TLSv1.2;
    ssl on;
    ssl_certificate /etc/nginx/ssl/crm.ru.crt;
    ssl_certificate_key /etc/nginx/ssl/crm.ru.key;
    
    location / {
    proxy_pass http://127.0.0.1:8080;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
    }


    выводит список файлов проекта, почему?
  • Как перенести сайт на VDS?

    @Hfnas Автор вопроса
    Дмитрий, Это и помогло, а то сменила записи А, АААА в домене, не помогало

    а сертификат ssh перенести со старого шаред на vds как?
  • Как перенести сайт на VDS?

    @Hfnas Автор вопроса
    Дмитрий, вроде сменила запись А , как тут, по инструкции тут, но сайт не запускается с новым доменом....
    Сколько ждать надо?

    Ранее я прописывала в hosts <айпи сайта, где новый(vds)> site.ru

    Cайт с новым доменом отображался на моем компе.
  • Почему удаление позиции по api-platform удаляет все позиции заказа?

    @Hfnas Автор вопроса
    там можно смотреть какие события были затронуты,

    tukreb, не увидела.
    Да, причина была в каскадном удалении! Огромная благодарность!
  • Почему удаление позиции по api-platform удаляет все позиции заказа?

    @Hfnas Автор вопроса
    tukreb,
    думала, думала, не понимаю.....
    data	
    App\Entity\Positions {#1299 ▼
      -id: null
    
      -quantity: 29
      -dateUpdated: DateTime @1671037060 {#1313 ▶}
      -session: Proxies\__CG__\App\Entity\Sessions {#1434 …}
      -Order: null
      -Product: Proxies\__CG__\App\Entity\Products {#1474 …}
    }
    id	
    "22"
    previous_data	
    App\Entity\Positions{#48 ▼
      -id: 22
    
      -quantity: 29
      -dateUpdated: DateTime @1671037060 {#1313 ▶}
      -session: Proxies\__CG__\App\Entity\Sessions {#1434 …}
      -Order: null
      -Product: Proxies\__CG__\App\Entity\Products {#1474 …}
    }


    Дебаг показывает, что удаляет правильно именно элемент (роутер api_positions_delete_item), а по факту удаляет все позиции сессии-( как быть...
    грешу на баг апи-платформ, на версии симфони 5.3 работало....
  • Почему не работает patch при отправке пустой коллекции?

    @Hfnas Автор вопроса
    zxf, 200,к сожалению....
    меняется только isBool: true, а коллекцию не обнуляет....-(,
  • Как исправить ошибку "app.js:11 Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'dispatch')"?

    @Hfnas Автор вопроса
    /popup/app.js
    import { createApp } from 'vue';
    import App from './App';
    import store from './store'
    
    const popup =createApp(App).use(store).mount('#modal');
    
    window.popup = {};
    window.popup.showModal =
        (banner) =>popup.$store.dispatch('modal/showModal',"data");


    Cпасибо,а почемку тогда
    в одну строчку
    const show=createApp(App).use(store).use(VueNumberFormat, {prefix: '', suffix:  window.staticStore.currency , decimal: '.',  thousand: ' ', precision: 1});
    ,
    не работает, а так работает.... Поэтомув я так и сделала ранее(см мой вопрос)
    import { createApp } from 'vue';
    import App from './App';
    import store from "./store";
    import VueNumberFormat from 'vue-number-format'
    
    const show=createApp(App);
    show.use(store);
    show.use(VueNumberFormat, {prefix: '', suffix:  window.staticStore.currency , decimal: '.',  thousand: ' ', precision: 1});
    show.mount('#app');
  • Как создать сущность с нужными полями через команду или код?

    @Hfnas Автор вопроса
    Класс финальный, его можно скопировать в свое просстранство имен и работаить.
  • Как настроить роутинг в контроллере и твиге?

    @Hfnas Автор вопроса
    BoShurik, все равно перенаправляет на каталог.
  • Как настроить роутинг в контроллере и твиге?

    @Hfnas Автор вопроса
    Hfnas, BoShurik, большое спасибо, спрошу, наверное, нет нельзя. Похоже разный path в twig ничего не даст, раз урлы почты одинаков.
  • Как настроить роутинг в контроллере и твиге?

    @Hfnas Автор вопроса
    sl0, требование сеошника.
  • Как настроить роутинг в контроллере и твиге?

    @Hfnas Автор вопроса
    но мне такой урл нужен, категория/подкатегория, категория/подкатегория.подкатегория/товар..... Искала , может .htaccess решает?
  • Вопросы по теории symfony?

    @Hfnas Автор вопроса
    tukreb, Спасибо, Добрый Человек!!! Вы меня спасли, не знаете как!!! Извините, за долгий ответ, приболела я. Да, причина, в этом. Быстро летает.
  • Вопросы по теории symfony?

    @Hfnas Автор вопроса
    tukreb, Благодарю за внимание,!!!!
    Если у вас правильно описаны сущности, доктрина не тянет все сущности за раз, а только тогда, когда идёт обращение.
    Чтобы "твиг" не делал миллион запросов к бд, пишут ручные запросы, без использования доктрины.

    Теперь поняла. Спасибо ОГРОМНЕЙШЕЕ. Просто удивилась, что в профайлере симфони появились доп запросы, которые я не делала....
    По коду, я могу предположить, что вы можете делать 2440 встакок кода, вместо одной большой.
    А если у вас это вставляется всё же одним запросом, то возможно стоит разбить это допустим пачками по 100-200 строк.
    В общем не понятно как у вас реализовано.

    Да, верно: Делается циклом по 24 записи всего шагов 120- Итого 2440вставок/обновлении (вариант 1 или вариант2)
    Одним запросом заполнить всю таблицу невозможно, так как каждый шаг рассчитывается на основе предыдущего. Буду делать второй вариант, раз он быстрее. Потому, что как иначе, я не знаю. Расчеты на основе предыдущего шага быстрые, проблема была в сохранении сущности, почему именно сохранение сущности тормозит, я не знаю.
    public function setCreate($entityMS)
        {
            $this->entityManager->persist($entityMS);
            $this->entityManager->flush();
        }
    
        public function setSave()
        {
            $this->entityManager->flush();
        }

    когда идёт обращение

    имеется ввиду второй способ, спасибо. Просто не знаю, что такое "обращение".
  • Вопросы по теории mysql?

    @Hfnas Автор вопроса
    Большое спасибо Вам за ценный совет!!!!
  • Вопросы по теории symfony?

    @Hfnas Автор вопроса
    2. То что редактируем или добавляем, через доктрину.
    https://github.com/ElisDN/demo-project-manager/blo...

    Это нужно для того, чтобы твиг не запрашивал дополнительно выводимое поле "один ко многим"?
    Например, вывожу список пользователей(`users(id name address_id)`), у которых есть подсущность адресс(Таблица `address (id name )` подсоединена к `user`, как один к многим)). Для вывода в twig адреса, делается дополнительный запрос в бд(select * from address where id=1). Поэтому, правильнее сделать изначально выборку нужных полей
  • Вопросы по теории symfony?

    @Hfnas Автор вопроса
    спасибо за внимание!
    что показывает symfony debug?

    про это не знаю, пользуюсь дебагом от php. Придется изучить. Поэтому не скажу совсем. За подсказку спасибо,изучить инструмент надо будет.
    там же если память не изменяет в последних версиях симфони можно посмотреть и статистику выполнение запросов.
    - про это тоже не скажу. Эти операции вставки-обновления делает команда, заданная в консоли. Как отследить тоже не знаю( я обернула строчки в тайминг, чтобы вычислить, сколько что работает)
    Но хочу сказать , с каждой итерацией растет сохранение сущности в бд.(1 способ? yначиная с середины сохранение сущности занимает 2сек)
    А какие красивые решения, мне главное, заполнить таблицу по формулам на основе 3х таблиц. Выборки быстрые. а вот вставка/обновление через сущность (1способ) 2440 строчек занимает 3мин,
    а второй способ 3 сек. (во втором способе придется делать создание через сущность, так как мы не можем делать createBuilder()->insert())

    Возможно, проблема в том, что придется сохранять поле (многое к одному.) Как я поняла Вас, правильнее делать сохранение в бд через сущность(те первым способом).
  • Вопросы по теории symfony?

    @Hfnas Автор вопроса
    tukreb, 2440 строк заполняет за 3 мин
    $productBD = $this->getOne($id);
                $flagCreate = false;
                if ($productBD == null) {
                    $productBD = new Modeling();
                    $productBD->setId($id);
                    $flagCreate = true;
                }
    
                $productBD->setProduct($product->getProduct());
                $productBD->setDateModeling($dateObj);
    ....
    
    
                if ($flagCreate)
                    $this->setCreate($productBD);
                else
                    $this->setSave();


    2440 строк заполняет за 30сек
    $this->createQueryBuilder("m")
                    ->update()
                    ->set('m.product',':product')
                    ->set('m.dateModeling',':dateModeling')
                    ....
                    ->where("m.id=:id")
    
                    ->setParameter('product',$productsEntity->getGuid())
                    ->setParameter('dateModeling',$dateObj->format("Y-m-d"))
                 ....
    
                    ->setParameter('id', $id)
                    ->getQuery()
                    ->execute();