• Объясните как работает php-fpm?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Для начала почитайте что такое SAPI. Затем представьте что apache + mod_php разделили на web-сервер, который проксирует запросы на php-fpm и отдает статику, и собственно отдельный web-сервер который имплементит SAPI и выполняет запросы связанные только с php. То есть статику отдавать мы можем только через php. Суть примерно та же что и у apache2 + prefork + mod_php но оптимизированный только для работы с php. Так же можно поставить на фронт более быстрый и легковесный сервер который умеет проксировать запросы.

    То есть php-fpm это эдакий fast-cgi сервер который постоянно держит готовые для работы пул-процессов (сколько в пуле процессов настраивается, так же как и от какого пользователя их запускать и все такое прочее). Каждый новый запрос уходит в какой-либо процесс из пула, запрос отрабатывает, возвращаем результат тому кто попросил (web-серверу обычно). Если процесс падает (fatal допустим) - поднимаем новый.

    Принципиальной разницы между apache2+mod_php нету, просто упрощается инфраструктура. Наш web-сервер должен только уметь проксировать запросы и отдавать статику, а php-frpm вообще может быть на разных машинах (балансировщиком можно раскидывать запросы). Ну и сами понимаете, nginx + php-fpm будет быстрее обрабатывать запросы чем apache2+mod_php какой бы мы менеджер процессов не использовали в апаче. Минусов по сравнению с apache+mod_php я даже не могу предложить.

    А php-runtime не зависит от этого. Он один на всех, CLI, FPM, mod_php...
    Ответ написан
    7 комментариев
  • Как по SSH с линукса на линукс получить доступ к GUI?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Как по SSH с линукса на линукс получить доступ к GUI?

    Зависит от того, что подразумевается под "доступом к GUI". Есть как минимум два варианта:
    - возможность запускать GUI приложение на удалённой машине с отображением интерфейса на локальной машине
    - возможность взаимодействовать с локальной машины с дисплеем удалённой машины

    Первое делается либо тупо запуском приложения внутри сессии ssh -X, либо запуском удалённого vnc-сервера и присоединением к нему. "Тупо" -- потому что при обрыве связи в первом случае приложение будет потеряно, а во втором -- нет, можно будет присоединиться к vnc повторно и продолжить.

    Второе делается запуском x11vnc на удалённой машине с параметром -display указывающим на нужный X11-дисплей и последующим присоединением к этому vnc-серверу.
    Ответ написан
    Комментировать
  • Совместное использованние мощного компьютера в семье. Как лучше организовать?

    mashletov
    @mashletov
    Math.random()
    Какую-то ересь сейчас прочитал. Оптимальное решение — докупить ещё один комп.
    Ответ написан
    12 комментариев
  • Зачем программисту работать на кого-то?

    saboteur_kiev
    @saboteur_kiev Куратор тега Карьера в IT
    software engineer
    Познав дзен программирования, вам еще нужно будет познать дзен администратора, дзен экономики, дзен управленца, дзен маркетолога, дзен продажника.

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

    Jump
    @Jump
    Системный администратор со стажем.
    Для чего может понадобится электрическая розетка, если существуют переходники?
    Попалась мне недавно такая интересная штука, картинка тут: delumo.ru/upload/resize_cache/iblock/6b8/488_488_2... Не совсем понимаю, в чём разница использования такой штуки и когда есть два обжатых конца, соединённых в коробке-переходнике? Итог одинаковый, или же нет?
    Ответ написан
    1 комментарий
  • PPTP туннель между VPS и сервером?

    @ruha02
    Учусь работать
    1. Делаешь подключение
    2. На клиентском сервере добавляешь маршрут в сеть 10.1.1.0 и указываешь интерфейс pptp
    3. На серверном сервере добавляешь маршрут до IP адреса сервера 1
    Я на линуксе не знаю точный сиснтаксис, но что то типоэтого:
    route add -net 10.1.1.0 netmask 255.255.255.0 gw 10.1.1.1 dev ppp0
    а не сервере
    route add -host (ip клиентского сервера) netmask 255.255.255.0 gw 10.1.1.1 dev ppp0
    Ответ написан
    Комментировать
  • Обрезать строки по шаблону?

    yarkov
    @yarkov
    Помог ответ? Отметь решением.
    Файл test.txt со строками:
    какой-то текст с пробелами /search?query=текст_запроса&page=56565 какой-то текст с пробелами
    какой-то текст с пробелами /search?query=текст_запроса&page=100500 какой-то текст с пробелами
    какой-то текст с пробелами /search?query=979879879&param=запроса&page=100500 какой-то текст с пробелами
    other line
    какой-то текст с пробелами /search?query=4535345&page=100500 какой-то текст с пробелами 5465465464654

    И команда в терминале
    cat test.txt | grep '/search' | sed -r 's/^.+ (\/search[^[:space:]]+) .+$/\1/g'

    Результат
    /search?query=текст_запроса&page=56565
    /search?query=текст_запроса&page=100500
    /search?query=979879879&param=запроса&page=100500
    /search?query=4535345&page=100500
    Ответ написан
    Комментировать
  • Готовая сборка Web сервер на Linux (без мусора)?

    opium
    @opium
    Просто люблю качественно работать
    А зачем сборка?
    Просто ставьте минимальный Дебиан и на него то что вам нужно, никакого мусора не будет
    Ответ написан
    6 комментариев
  • Есть ли какой-нибудь брокер (не форекс) с адекватным веб-интерфейсом?

    norlin
    @norlin Автор вопроса
    НЕТ в природе (в РФ) брокеров с полноценным веб-интерфейсом, к сожалению.

    UPD.: финам-whotrades тоже той ещё шарашкой оказались. Неудобно, нет полноценного счёта (как следствие – нельзя перевести бумаги по ACAT). См. ниже.

    В итоге остановился всё-таки на Финаме.
    Оказалось, что для интересующих меня услуг веб-интерфейса всё равно нет (зарубежные биржы, акции + ETF – услуга "счёт ROX" у Финама).
    В отличие от БКС, открывается всё 100% онлайн (договор, при этом, есть) и быстро (открытие счёта вообще в течение 1 дня). Потом 1-5 дней на перевод средств из вашего банка. + 1 день на "зачисление" средств (если они придут после начала торговой сессии – то можно будет ими пользоваться только на следующий день).

    Беда с софтом – я так понимаю, это вообще глобальное – у всех всё заточено ТОЛЬКО под винду.

    UPDATE: Перешёл на Interactive Brokers – у них есть минимальная комиссия $10 в месяц, зато при редких операциях комиссии за операции вычитаются из этой общей минимальной. Зато плюсов море – нормальный личный кабинет, приложения для мобильных устройств, полноценный брокерский счёт, никаких посредников.
    Ответ написан
    Комментировать
  • Не работает условие по времени в bash скрипте?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Пользуйтесь timestamp, баш сравнивать даты не умеет.
    Пользуйтесь declare -i, иначе все переменные по умолчанию в баше это строка, а не число.

    опция --date позволяет указать какую дату вы хотите использовать
    date --date="2011/12/12 12:12:12"
    Monday, 12 december 2011 12:12:12 +0200

    опция +%s позволяет при помощи date вывести нужную дату в виде "секунды с 1970 года", получите целые числа, которые может сравнить bash. Простой пример:

    #!/bin/bash
    
    declare -i MYDATE1=`date --date="2011/12/12 12:12:12" +%s`
    declare -i MYDATE2=`date --date="2017/07/06 11:11:11" +%s`
    declare -i CURRDATE=`date +%s`
    
    echo $MYDATE1 $MYDATE2 $CURRDATE
    
    if [ $MYDATE1 -lt $CURRDATE -a $MYDATE2 -gt $CURRDATE ]; then
      echo "Сейчас больше чем $MYDATE1 и меньше чем $MYDATE2"
    else
      echo "не-а"
    fi
    Ответ написан
    Комментировать
  • Как вы организуете свою работу?

    paulradzkov
    @paulradzkov
    Дизайнер, верстальщик, начальник отдела UI
    Про GitHub.

    1) Любой проект, даже самый маленький начинаю в новом репозитории. Потому что:
    - мало ли что из него вырастет,
    - код в Гитхабе это бэкап, не засерается место в Дропбоксе или других облаках,
    - мгновенный поиск по коду в репозитории, актуально когда проект уже достаточно большой,
    - легче спросить совета у коллег или показать проблему, когда исходники можно посмотреть онлайн,
    - проект удобно хоронить, если он заглох, или закинуть в портфолио, если он клевый.

    2) Создал себе на Гитхабе две дополнительные организации внутри своего аккаунта.
    - «paulradzkov-forks» — для форков чужих проектов.
    - «paulradzkov-heaven» — кладбище для старых проектов, куда перемещаются все неактуальные проекты.
    Эти две дополнительные организации позволяют очистить основной аккаунт от мусора. В нем теперь только несколько актуальных проектов, в которых легко ориентироваться.

    3) Перемещаю все старые проекты из Дропбокса на Гитхаб в «paulradzkov-heaven». Проектов много, это долго, но освободилось уже несколько гигов (т.к. там кроме кода psd-исходники, архивы с инсталляторами и прочее). Место в облаках заканчивается, а на Гитхабе — резиновое.
    Это кладбище уже пригодилось, когда у меня попросили поискать исходники проекта, над которым я работал 3 или 4 года назад, а я через минуту ответил им ссылкой на нужный репозиторий. Не пришлось никуда лезть, распаковывать, искать, запаковывать, отправлять почтой или закачивать в облако.
    Повторюсь, что на Гитхабе классный поиск по исходникам: если нужно посмотреть, как что-то сделал в старом проекте, но не помнишь в каком — можно довольно быстро найти искомое без возни с архивами.

    Итого.
    Код должен лежать на Гитхабе.
    В том числе старые проекты.
    Используйте организации, чтобы рассортировать проекты, если их много.
    Порядок там, где у каждой вещи есть своё место. Придумайте себе правила порядка заранее и соблюдайте их, чтобы не тратить время на ликвидацию беспорядка.
    Ответ написан
    10 комментариев
  • Почему SVN не позволяет выполнить commit?

    keptelr
    @keptelr Автор вопроса
    Проблему удалось решить, добавив в конфигурационный файл апача в настройках доступа к svn по http следующий параметр:

    SVNAdvertiseV2Protocol off

    Возможно, кому-нибудь это решение поможет.
    Ответ написан
    Комментировать
  • Как вставить переменную в os.system?

    longclaps
    @longclaps
    [12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
    Тебе такая нумерация месяцев нужна? Тогда вот однострочник:
    os.system("tar cvf backup/backup_month/%d.tar.gz * && rm backup/*" % ((datetime.date.today().month - 2) % 12 + 1))
    Ответ написан
    1 комментарий
  • Как сделать архивацию файлов внутри каждой из директорий и удалить исходники?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    find /srv/sh/folder/* -maxdepth 0 -type d -exec bash -c 'cd {} && tar --remove-files -czf archive.tgz *' \;
    Ответ написан
    Комментировать
  • Как запустить bash скрипт как демон в systemd?

    Xuxicheta
    @Xuxicheta Автор вопроса
    инженер
    Решил проблему.
    Скрипт
    #!/bin/bash -
    #ссылка на интерпретатор обязательна
    
    function monitoring() {
        inotifywait -e create,delete,modify,move -mrq $1 | while read events 
        do
           echo "$(date +"%m.%d.%Y_%T")   $events"
        done
    }
    DIR="%mydir%"
    LOGFILE="%mylogfile%"
    echo "Start filesystem monitoring: Directory is $DIR, monitor logfile is $LOGFILE"
    monitoring $DIR  >> $LOGFILE &

    Сервис-файл
    [Unit]
    Description=File system Monitoring -- /root/.bin/monitor.sh
    After=local-fs.target systemd-sysctl.service systemd-modules-load.service
    
    [Service]
    Type=forking
    ExecStart=/root/.bin/monitor.sh
    EnvironmentFile=/root/monitor.cfg
    
    [Install]
    WantedBy=multi-user.target
    Ответ написан
    Комментировать
  • Как отсортировать кортеж?

    @deliro
    Я сейчас скажу прописную истину, но она, оказывается, далеко не очевидна для питон-программистов.
    Кортеж - это не "неизменяемый список". Кортеж - это структура данных. То, что кортеж умеет итерироваться - это хак, о котором даже сам Гвидо говорил.
    Как минимум, существование таких штук, как __slots__ и namedtuple должно натолкнуть на эти размышления.

    Касательно твоей задачи:
    def cmp(x):
        x = x.split('x')
        return int(x[0]) * int(x[1])
    
    sorted(SIZES, key=cmp)
    Ответ написан
    Комментировать
  • Как получить переменные BASH их TXT файла?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Записываете переменные в файл, как в обычном sh-скрипте - VAR1=foo, VAR2=bar и т. д, а в начале вашего скрипта говорите "source /path/to/varsfile", и все переменные оттуда подтягиваются.
    Ответ написан
    2 комментария
  • Как написать bash скрипт, который будет прослушивать изменения в файле?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    while true; do
        inotifywait -qq -e create,close_write,modify,move,delete $CHECK_FOLDER && $BUILD_COMMAND
    done
    Ответ написан
    5 комментариев
  • Может ли TCP соединение работать сразу с несколькими клиентами?

    @nirvimel
    TCP соединение - это сокет. Открытый сокет связывает конкретный порт на локальной машине с конкретным портом на конкретной удаленной машине (и никак иначе). Открытый сокет соединяет всегда две стороны. Не существует многосторонних сокетов. Но на одной машине может быть открыто сколько угодно сокетов.
    Ответ написан
    Комментировать