Задать вопрос
  • Как сделать, чтобы пользователь www-data имел доступ ко всему, что создаёт пользователь git?

    ValdikSS
    @ValdikSS
    Вариантов множество.
    Можете воспользоваться Posix ACL, добавив пользователю www-data права на чтение и запись рекурсивно.
    Можете наоборот, добавить пользователю git права на запись нужной директории, а user и group у неё останутся www-data.
    Можно сделать git hook, который при pull будет менять права необходимым образом.

    В любом случае, судя по ошибке, у вас php выполняется от пользователя www-data, что небезопасно. Лучше создайте отдельного пользователя под этот проект, запускайте и git, и php из-под него.
    Ответ написан
    5 комментариев
  • Почему не записывает в бд?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Не очень понятно, что имеется в виду под "подключением", но будем считать что речь про добавление данных в БД. Это может присходить по трем причинам:
    1. Код добавления вообще не вызывался.
    2. При добавлении произошла ошибка.
    3. Данные добавились в одну базу, а результат смотрим в другой.

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

    <?php
    # Настройка ошибок
    # Для локального сервера
    ini_set('display_errors', 1);
    # Всегда
    error_reporting(E_ALL);
    mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

    Добавив этот код, надо запустить свой скрипт еще раз и смотреть, ошибки, которые он выведет.

    Плюс обязательно прочесть статью https://habr.com/ru/articles/662523/
    Ответ написан
    5 комментариев
  • Какой есть SSH клиент для Windows 10 с возможность отображать несколько терминалов в одном окне?

    Daemon23RUS
    @Daemon23RUS
    А создать 6 ярлыков религия не позволяет ?
    В PuTTY настройте подключение (этот пунк у Вас видимо уже выполнен)
    Добавьте авторизацию по ключу
    Добавьте имя пользователя в Connection/data (auto-login ...)
    Добавьте команду в connecton/SSH - htop (Remote command)
    Сохраните профиль.
    Скопируйте ярлык из пуска, допишите к пути в ярлыке -load "Имя сохраненного профиля"
    Повторите 6 раз для каждого сервера.
    Останется 6 раз кликнуть по разным ярлыкам и расположить окна как Вам удобно

    Это если уж сильно мониторить хочется через терминал, а так zabbix разверните, и всегда в курсе будете что с серверами, триггеры натроите он Вам в телегу алерты может слать.
    Ответ написан
    Комментировать
  • Как объединить списки, полученные от 2 REST API с параметрами `limit` и `offset`, и вернуть его, согласно параметрам `limit` и `offset`?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Разобраться в коде двух уже существующих методов и написать третий, работающий самостоятельно, без обращения к двум первым.
    Ответ написан
    2 комментария
  • Как найти начальную точку для определения маршрутов в двумерном массиве?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    В общем случае - теория графов, Эйлеров путь.
    Для случая, когда путь заведомо есть, он только один и проходит через каждую вершину только один раз, ищем вершину, для которой есть исходящий маршрут, но нет входящих.
    В вашем примере это "USA". Есть маршрут, который с неё начинается, но нет маршрута, который в ней заканчивается.
    Ответ написан
    1 комментарий
  • Где искать верстальщиков и бекендеров?

    saintbyte
    @saintbyte
    Django developer
    Дак у вас стек ужасный профи давно с него свалили или хотят много денег. Так что только индусы.
    Ответ написан
    Комментировать
  • Как вести базу знаний всех обновлений, исправлений и изменений, вносимых в проект?

    saboteur_kiev
    @saboteur_kiev Куратор тега Организация работы
    software engineer
    1. commit message
    2. task tracker (JIRA или аналоги)

    Если их интегрировать друг с другом, будет еще и довольно просто перемещаться по коммитам
    Ответ написан
    Комментировать
  • Как делать максимально безотказные бэкапы корня сайта и mysql в динамике?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега MySQL
    Делают read-only реплику и бэкапят её обычным способом.
    Ответ написан
    Комментировать
  • При загрузке сайта индикатор загрузки долго крутится? Как исправить?

    GavriKos
    @GavriKos
    Забейте и не парьтесь. Если сайт работает кнчн.

    Можно конечно взять DevTools, посмотреть что он там не может загрузить и уже анализировать... Скорее всего это будет какая нить реклама или сторонняя фигня, которую режет адблок.
    Ответ написан
    Комментировать
  • Как одновременно работать с одной папкой двум копиям приложения?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    В данном случае проще всего будет просто связать оба инстанса друг с другом и использовать второй инстас как резервный. Например через банальную проверку друг друга по сети запросом каким-нибудь. Один инстанс работает, а другой проверяет, что первый инстанс работает верно. Если первый инстанс не отвечает, висит, сломался и т.п. - в работу включается второй и где-нибудь ставит флаг/файл/что угодно и как, что теперь он основной, а первый - резервный будет, когда заработает и отправляет сообщение ответственному.

    Чуть более сложный вариант: использовать, например, редис для хранения состояния процесса работы и через него синхронизировать инстансы. Например: первый сервис определил для себя задачу и сообщает об этом второму, что он взял такую-то задачу или такие-то файлы. Соответственно второй сервис эти файлы не трогает. Или, оба инстанса смотрят в каталог, как только что-то обнаруживают - помещают в очередь задач. А при появлении задачи в очереди - оба сервер генерируют случайно число и так выбирают кто из них возьмет следующую задачу из очереди. Т.о. можно, этих инстансов наплодить сколько угодно.

    Более правильный вариант: разделить функционально вашу задачу на несколько более простых. А именно: вместо проверки каталога, запустить на том сервере, где находится данный каталог с файлами сервис наблюдения ФС, который использует системные уведомления об изменениях файловой системы. И при наступлении нужных событий - отправляет запрос в очередь на обработку, например в тот же редис, а оттуда запрос забирает один из инстансов и обрабатывает его.
    Ответ написан
  • Как распознавать в php слова (типо систем компьютерной алгебры)?

    @alexalexes
    Берете любую вузовскую методичку по дисциплине "Теория языков программирования и методов трансляции".
    Изучаете, с чем едят грамматики формальных языков, строите лексический анализатор, синтаксический анализатор, транслятор в свой машинный код, исполнитель машинного кода.
    На выходе у вас должна получиться вот такая штука:
    https://studfile.net/preview/937093/
    Ответ написан
    Комментировать
  • Утечка DNS или как соц. сети узнают мое местоположение?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    А какая связь между используемым DNS и определением вашего местоположения в соц-сетях?

    DNS нужен для того, что бы ваше устройство (компьютер или телефон) узнали IP-адрес сервера, к которому нужно подключиться для получения/скачивания информации. А соц-сети могут вас палить просто по IP-адресу источника коннекта. Вы уверены, что абсолютно все соединения к соц-сетям с вашего устройства идут только и исключительно только через удалённый прокси? Любой другой трафик - заблокирован?

    Да даже ваш Wi-Fi роутер, к которому вы же и коннектитесь, уже запеленгован, Google и другие уже знают, где ваш роутер географически находится, поэтому... Скрыться не получится: какой-бы роутер не поставили - он будет виден другим телефонам, они об этом сразу сообщат Google, прощай приватность! Разве что не включать Wi-Fi на телефоне и роутере, раздавать Интернет телефону - про проводу (Android и Gnirehtet), и блокировать весь трафик кроме прокси.
    Ноооооооооооооо это не точно!!!
    Ответ написан
    Комментировать
  • Упала частота видеокарты после чистки, как вернуть?

    nava2002
    @nava2002
    Инженер
    но после простой чистки все прошло.после этого комп перестал нагружаться в играх,

    "Простая чистка" это как с моющими средствами?
    Обслуживание системы охлаждения сводится:
    1. Удаление пыли (с помощью мягкой кисти и пылесоса)
    2. Замена термопасты и термопрокладок. (требует снятия установки радиаторов)
    Из описания НЕ понятно какие именно работы были произведены. Но в любом случае аккуратность их выполнения и правильное использование материалов при проведении таких работ имеет принципиальное значение.

    проверил,GPU MHz упало с 1700 до 139

    данное явление говорит о том что видеокарта возможно исправна но температурный режим скорее всего нарушен.

    Рекомендую обратиться к специалисту иначе не исключаю выхода видеокарты из строя.
    Переустанавливать Виндовс и драйвера нет смысла. Проблема явно находится на уровне "железа".
    Ответ написан
    Комментировать
  • Есть ли реальный профит от использования актуальных фронтенд-технологий?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    В 2016-м году, делали нечто, что потом начали люди называть SPA - но за счёт аяксов, которые грузят что нужно. При этом сохраняется структура страниц на сервере, и нет и не было проблем с индексацией.

    Проблемы с индексацией есть и сейчас, чтобы там не заявляли ПС, а в древние 2016 года они были выражены в несколько раз сильнее. То, что Вы проблемы не замечали - не значит, что их не было.
    Вот от фронтовых фреймворков верстки - профит заметен был (тот же фаундейшн, бутстрап и тд) - действительно ускоряло и упрощало жизнь.

    Ускоряет жизнь тем, кто не умеет в вёрстку, остальным - замедляет.
    1. Стильно, модно, молодёжно. Других не могу придумать. Вроде бы как должно работать быстрее, но практика этого не показывает (или настолько незначительно, что конечному пользователю - пофиг, будет работать аякс или вьюшная реактивность).

    На определенном этапе разработки, стоимость поддержки проекта на чистом js начнёт обгонять проект на react/vue. Пользователю будет конечно пофиг, т.к. он не найдёт в ПС Ваш SPA сайт.
    Собственно, а зачем это всё нужно, если профит, кажется - нулевой

    Для ускорения разработки, а ключевое слово здесь "кажется".

    P.S. в некоторых ситуациях действительно быстрее и дешевле написать некоторые функции на чистом js и не тащить весь react стек в проект, но это больше исключение, чем правило.
    Ответ написан
    2 комментария
  • Почему заливка картинки больше самой заливки?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    как решить?

    .img img {
        display: block;
    }

    Всё это нужно для затемнения фотографии

    Можно рассмотреть еще вариант без отдельного элемента с фоном:
    img {
        filter: brightness(0.6);
    }
    Ответ написан
    Комментировать
  • Почему медленно отвечает сервер?

    @asmelnik
    Память забита, свап забит...
    "И чо вы хотели?"
    первый "смык" шерстит оперативку, выгружает из нее что-то "лишнее", запихивает туда нужное...
    Пока "дергаете" свои приложухи они держатся в оперативке...
    Как только пауза- их вытесняет что-то более актуальное....
    Ответ написан
    Комментировать
  • Зависит ли скорость записи в БД от количества в ней записей?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    В общем случае не зависит
    В каждом конкретном случае, если вдруг будет зависеть, надо разбираться отдельно.
    Сам по себе вопрос - это одна из тех проблем, которыми не следует забивать себе голову заранее.
    Ответ написан
    Комментировать
  • Корректно ли составлен запрос?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Мне необходимо только узнать есть ли такой заказчик с такими данными.

    1) Оформляйте запрос строками, так будет гораздо проще и вам, и другим разработчикам понять что вы пишете и как оно работает:
    SELECT * 
    FROM `orders2022` 
    WHERE LOWER(`surname`) LIKE CONCAT('%', ?, '%') 
    AND LOWER(`name`) LIKE CONCAT('%', ?, '%') 
    AND LOWER(`fathername`) LIKE CONCAT('%', ?, '%')

    2) Синтаксис верный, но если вам важно найти "хоть одно совпадение", лучше использовать LIMIT 1, это остановит базу в поиске всех вхождений, то есть перебора ВСЕЙ таблицы вместо выхода по первому вхождению. Кроме того, CONCAT('%', ?, '%') можно использовать если вместо ? будет SQL выражение (например каой-то селект), в данном случае это просто трата ресурса процессора. Просто добавьте % в начале и конце подставляемой переменной.
    3) Неплохо давать более четкое описание проблемы, чтобы другим не пришлось гадать о чем код, так как никто кроме вас в контекст задачи не погружен.
    Ответ написан
    Комментировать
  • Может ли приложение слушать несколько портов?

    @Everything_is_bad
    Не понятно какая связь между ядрами и портами? компьютер с один ядром может слушать N портов, компьютер с N ядрами так же может слушать N портов. Эффективность вообще тут боком, а для ее измерения минимум нужно установить критерий по которому ее фиксируем.
    ЗЫ взять тот же event loop в питоновском asyncio (на самом деле в остальных языках тоже дофига подобного), он без проблем может держать и обрабатывать 10к коннектов на одному порту, на одном процессе (считай ядре), но если кривыми руками там вызвать тяжелый синхронный код, то всё.
    Ответ написан
    9 комментариев
  • Почему сбрасывается частота?

    @DarkNews
    Очень похоже на тротлинг VRM.
    Вы вообще видели цепи питания своей матирнки, перед тем как в нее такой проц пихать?
    Мало того что там скорее всего установлено какое то ограничение по току - так еще и это все 100% перегревается, ибо VRM скудный, и ни намека на радиаторы.
    Это не плата для этого процессора, базовый i5 - это ее максимум.
    Ответ написан
    1 комментарий