• PHPMailer почему не приходят письма в gmail?

    grabbee
    @grabbee
    там много настроек безопасности типа SPF DKIM и всякие верификации. большинство почтовых сервисов не будет принимать вашу почту вообще. могут даже код ошибки не давать. будут просто игнорить и автоматом банить весь ваш домен
    Ответ написан
    Комментировать
  • Как заранее определить подсеть VPS серверов?

    grabbee
    @grabbee
    у вас странный подход. из того что я пользую - сервер покупается отдельно от адреса ИЛИ всегда есть возможность докупить только IP. Соответственно, при "необходимости" вы покупаете резервный(так он называется чаще всего) IP адрес и меняете его в настройках сервера или в веб консоли VPS
    * бывает, что можно выбрать IP из блока адресов

    Чаще всего IP адрес стоит 1-3$ и если искать, за такие же деньги предлагают сервер. Итого, 5$ сервер с IP адресом и раз в месяц можно заказывать новый IP а старый удалять/не продлевать аренду.

    В европах есть хостинг провайдеры с поминутной/часовой оплатой аренды. Не буду рекомендовать конкретно, так как это может нарушать правила. Вы бы лучше в стране своей что-нибудь поменяли.
    Ответ написан
    3 комментария
  • PHP-FPM не убивает процессы, они забивают всю память. В чем причина?

    grabbee
    @grabbee Автор вопроса
    Запущено было от Root. Я хз как это связано. Ни где ни одна с... не написала, что это важно :)
    Еле нашел упоминание и то не точное, и это помогло решить проблему.

    Контейнер и судя по всему FPM запускался от Root, а настройки как и положено для www-data

    [02-Jan-2022 15:27:07] NOTICE: user = www-data
    [02-Jan-2022 15:27:07] NOTICE: group = www-data
    [02-Jan-2022 15:27:07] NOTICE: listen.owner = undefined
    [02-Jan-2022 15:27:07] NOTICE: listen.group = undefined
    [02-Jan-2022 15:27:07] NOTICE: listen.mode = undefined

    Не знаю, баг или фича. Но процессы просто копились до потолка, пока память не заканчивалась или Nginx не умирал глядя на всё это...
    Ответ написан
    Комментировать
  • Почему нет логов Symfony в k8s?

    grabbee
    @grabbee Автор вопроса
    Работает. Ошибок нет видимо...
    Ответ написан
    Комментировать
  • Symfony, разработка Api?

    grabbee
    @grabbee
    Не понимаю сути. Вы в ДНС прописываете api.site.ru и IP на свой сервер. Там апачем направляете на ту же самую папку что и site.ru - у вас будет одинаковые ответы как с site.ru/api/actionMethod так и с api.site.ru/actionMethod

    Так как "простенькое api для мини проекта" - этого вполне достаточно.
    Ответ написан
    Комментировать
  • Ошибка focal InRelease» не подписан. Как исправить?

    grabbee
    @grabbee Автор вопроса
    Помогло:
    * apt-get --allow-insecure-repositories update
    * apt-get install --reinstall gpgv libgcrypt20
    Ответ написан
    Комментировать
  • Как добавить алиас на шину сообщений в Symfony?

    grabbee
    @grabbee Автор вопроса
    Нужно просто добавить
    buses:
          messenger.bus.default: ~
    Ответ написан
    Комментировать
  • Не работает второй монитор, что делать?

    grabbee
    @grabbee
    Мать(процессор) или видеокарта должна поддерживать два монитора сразу. Хз, наверное одноврменно или мать или видеокарта. Один в мать и один в видеокарту - наверное не должно работать.
    Ответ написан
  • Как лучше организовать просчет места пользователя в рейтинговой таблице?

    grabbee
    @grabbee
    Не вижу проблем. Лучший по некоторому значению "score" - что вы в него запишите, дело ваше. Например количество комментариев в сутки, неделю или месяц. Зависит от самого вашего рейтинга.
    1 - Выбрать 100 записей из БД сортировать по score по возрастанию и дате обновления по убыванию
    2 - Создать таблицу РЕЙТИНГ один к одному с любыми полями
    3 - Добавить выбранные записи в полученном порядке

    ID в таблице РЕЙТИНГ AUTO_INCREMENT - в нем будут НОМЕРА МЕСТ от 1 до 100 автоматически. При объединении таблиц в строке пользователя RATING_ID уже будет номер рейтинга. А у остальных NULL
    * При обновлении этой таблицы - очистите её со сбросом AUTO_INCREMENT

    ---

    Вариант #2

    После получения 100 записей - Просто циклом обойдите и сделайте UPDATE по полученным ID в таблицу пользователей в её отдельное поле НОМЕР В РЕЙТИНГЕ - туда ставьте значение счетчика цикла
    for ($i = 1; $i <= 100; $i++) {
        "UPDATE `users` SET rating_position = ".$i." WHERE ...
    }
    
    # или foreach по выборке $i = 1; снаружи и $i++ внутри цикла


    ---

    это, если в базе тысячи пользователей?

    Да хоть сколько, вы же выбирать будете только 100 по значению "score" которое сами и посчитаете заранее

    ---

    # Запасной вариант

    У всех пользователей будет РЕЙТИНГ от 0 до 5 - но плавающий. Например от 0 до 5000000 а для отображения делите на 1000000 - тогда 4832156 станет 4.832156 можете показывать округленно как 4.8 или 5
    * Но сортировка топа по значению поля в базе 4832156 и дате обновления
    * Тогда сможете выбирать любое количество - топ 3 (5, 10, 100, 1000...) в любой момент
    ** Хранить дробь в БД типа 4.8321563465464531354655.... не рекомендуется, но вы можете :)
    Ответ написан
    Комментировать
  • Как использовать Symfony\Messenger без фреймворка?

    grabbee
    @grabbee Автор вопроса
    По статье всё верно описано. Там в контейнер добавляется
    * Container->addCompilerPass(new MessengerPass());

    Я просто забыл вызвать компиляцию контейнера
    * Container->compile();
    Ответ написан
    Комментировать
  • Как правильно перезапускать процессы через pm2?

    grabbee
    @grabbee Автор вопроса
    На данный момент в документации ошибка.
    man: delete - stop and delete a process

    Эта команда не останавливает процессы, а просто удаляет из списка. Это приводит к неожиданному результату и утечке памяти и CPU сервера. Возможно это баг PM2
    Ответ написан
    Комментировать
  • Как использовать vue i18n в js модуле?

    grabbee
    @grabbee Автор вопроса
    https://github.com/kazupon/vue-i18n/issues/149#iss...

    Нужно создать экземпляр i18n в отдельном модуле и импортировать его куда будет нужно.
    Ответ написан
    Комментировать
  • Как лучше деплоить Nuxt server App?

    grabbee
    @grabbee Автор вопроса
    Нашел статью на DO по теме, даже на русском https://www.digitalocean.com/community/tutorials/h...

    Мне в свой конфиг нужно будет добавить пару тасков из статьи

    shipit-shared - добавить модуль для расшаривания node_modules
    И он будет обновлять зависимости по необходимости
    Ответ написан
    Комментировать
  • Vue dynamic route редирект на дочерный роут?

    grabbee
    @grabbee
    Обычный редирект не работает? Он же параметры вроде сам передает
    { path: '/search/:user', redirect: { name: 'home' } },
    Ответ написан
    2 комментария
  • Как решить вечную проблему со сбором данных?

    grabbee
    @grabbee
    Нету скорее всего. Google Таблицы попробуй. Там удалить файл вряд ли получится. И другой не пришлют. Оформи с подсказками, чтобы им проще понять было. Форматирование используй, чтобы они букв не пугались.
    Ответ написан
    Комментировать
  • 502 ошибка dunglas/mercure периодически. Как понять почему?

    grabbee
    @grabbee Автор вопроса
    Для NGINX localhost и 127.0.0.1 - фактически разные вещи. Он периодически долбится на IPv6. Если прописать IP работает нормально.
    Ответ написан
    Комментировать
  • Как отследить статистику запросов MySQL в реалтайм?

    grabbee
    @grabbee Автор вопроса
    Раньше индексы проставлял руками. Теперь попробовал миграции, а про индексы в сущностях забыл. Во время миграции индексы из БД потерлись. Записей в таблицах много, начало происходить непонятное... Самих запросов как обычно. Выполняются относительно быстро. Статистика бы ничего не показала.
    Ответ написан
    Комментировать
  • Symfony messenger (doctrine) не успевает обработать очередь? Кролик успеет?

    grabbee
    @grabbee Автор вопроса
    Кролик молодец, кролик может успевать в сто раз быстрее :)
    Ответ написан
    Комментировать
  • Как работает ON DELETE CASCADE в MySQL?

    grabbee
    @grabbee
    ON DELETE CASCADE - удалит строку в подчиненной таблице при удалении в главной.
    SET NULL - установить значение ID в NULL если удалить строку в главной таблице. Для этого в подчиненной таблице для этой колонки должно быть позволено NULL значение.

    Ограничения устанавливаются в каждой подчиненной таблице. Что установите ON DELETE CASCADE или SET NULL - то и произойдет.

    Подробно описано на русском https://metanit.com/sql/mysql/2.5.php
    Мне помогло...
    Ответ написан
    Комментировать
  • Как работает кнопка "Пожаловаться", есть ли от нее толк?

    grabbee
    @grabbee
    Я использую ее как "крик души" во время фейспама

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

    Если эта кнопка спрятана или появляется сама по себе по каким-то придуманным вами алгоритмам. Даже если она серенькая и сливается с фоном - это не будет работать. Спрятали за троеточие или бургер? - Не будет работать вообще и никогда, забудьте... Пару раз в году, когда вы уже сами проблему обнаружите и решите, найдете пару жалоб на неё в вашей, таким образом организованной системе.

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

    Ваш Некромант...
    Ответ написан
    Комментировать