Задать вопрос
  • Подключение к базе данных MySql, как правильно и современно?

    @metajiji
    Если коротко, то mysqli это современный способ, который использует pdo:) а следовательно pdo это предпочтительный, т.к. можно менять драйвер безболезненно. Ну и многие вещи там уже автоматизированы.
    Ответ написан
  • Как настроить docker чтобы он писал логи в папку по имени контейнера?

    @metajiji
    Вам скорее их нужно научиться читать по имени контейнера, довольно просто:
    docker logs имя-контейнера  # просто посмотреть логи
    docker logs -f имя-контейнера  # в рейлтайм режиме


    Так же можно настроить логирование в приложениях, где полет фантазии не ограничен, только не забудьте о ротации, логи могут скушать весь диск.
    Ответ написан
    Комментировать
  • Docker - как запустить Apache от имени пользователя?

    @metajiji
    Вот если совсем в лоб, то:
    docker run --help
    docker run --user XXX


    В принципе вы это сделали в Dockerfile, но подумайте головой... Вы взяли образ httpd, внутри огромный debian https://github.com/docker-library/httpd/blob/75e85...
    Лучше для такой задачи взять alpine FROM httpd:alpine-2.4
    Дальше httpd скорее всего запускается от рута, причем не просто так! Ему просто необходимо это сделать, потому, что существует такая вещь как не привилегированные порты https://ru.wikipedia.org/wiki/%D0%A1%D0%BF%D0%B8%D...

    У вас 100500% в конфиге httpd указан порт 80, что меньше 1024, следовательно httpd не в силах запуститься!
    httpd запускается от рута, биндится на 80/443 порт, после чего делает suid на uid/gid, указанного в кофниге https://httpd.apache.org/docs/2.4/mod/mod_unixd.ht...

    Теперь зная это, становится понятно, почему в docker logs (имя_контейнера) мы видим ошибки.

    Что делать? Ну например запускать апач от пользователя www-data, как и собирались, но на портах выше, чем 1024, а если хочется, чтобы он отвечал на 80 порту на хосте, то не вопрос, порт-маппинг сделает для вас это, потому, что на хосте dockerd запустит docker-proxy процесс, который будет работать от рута и будет слушать 80 порт, проксируя траффик в контейнер на указанный вами порт, например 8080.
    Получаем, что внутри контейнера апач живет на 8080, снаружи на 80.

    version: '3.7'
    
    services:
    
      db:
        image: mariadb
        restart: always
        environment:
          MYSQL_ROOT_PASSWORD: example
    
      adminer:
        image: adminer
        restart: always
        ports:
          - 8080:8080
    
      web:
        image: httpd:alpine-2.4  # поверьте, вам не нужен nano внутри контейнера! просто подключите все необходимые конфиги с хоста как volume, это правда удобно.
        depends_on:
          - db
        restart: always
        ports:
          - 80:8080  #HOST:CONTAINER
        volumes:
          - //c/Docker/sf4/project:/usr/local/apache2/htdocs
    #      - скопируйте необходимые конфиги себе примерно так: "docker cp /etc/httpd/httpd.conf ." и подключите как volume
          - "./httpd/httpd.conf:/etc/httpd/httpd.conf"  # пример подключения конфига, где ./httpd/httpd.conf файл рядом с вашим docker-compose.yml
    Ответ написан
    6 комментариев
  • Существуют ли системы для инвентаризации и описания структуры сети?

    @metajiji
    GLPI + FusionInventory plugin бесплатная, на перле и пыхе... :(
    Хранит инвентори, информацию о расходниках, поставщиках, информация о комплектующих, есть никакая система тикетов, лучше для этого используйте что-то другое.

    Кодик хранить рекомендую в gitlab, который позволит вам автоматически через gitlab-ci собирать конфиги с железок и версионировать это добро автоматически, там все довольно легко делается. Вики там же можно в md(MarkDown) писать. kanban доски, поможет организовать работу, в принципе даже за тикет-систему сгодится.
    Ответ написан
    Комментировать
  • Как починить docker на windows 10?

    @metajiji
    В загрузчике bcd нужно включить hyperv
    bcdedit /set hypervisorlaunchtype auto

    https://blogs.technet.microsoft.com/vm/2008/03/29/19/

    Гуглится это крайне просто по тексту из ошибки:)
    Ответ написан
    3 комментария
  • Что лучше для скриптов?

    @metajiji
    Боюсь, что все, что вы хотите уже написано за вас, используйте DevOps тулзы для автоматизации, например ansible, soltstack и т.п., если что-то простое остановитесь на bash.
    Ответ написан
    Комментировать
  • Какой использовать программный маршрутизатор под Linux?

    @metajiji
    Zentyal, если гуй не нужен, то просто любой Линукс, тот же центос/федлра руки и чтение https://lartc.org :)

    Если хочется гуй, как уде выше говорили берите микротик (RouterOs) он есть под x86
    Ответ написан
    Комментировать
  • Python, почему так медленно?

    @metajiji
    with open а внутри ещё и close. Не надо так, менеджер контекста для того и придумали, чтобы руками не закрывать за собой файлы:)
    Вместо опасного while true, сделайте безопасный for. И байты внесите в память, если объемы файлов позволяют.
    Ответ написан
    Комментировать
  • В чем отличие при подключении по SSH через Putty и через терминал Ubuntu?

    @metajiji
    В Putty по умолчанию стоит koi8-ru в качестве кодировки. Под линуксами, макосями и проч nix терминалах стоит utf8 по умолчанию. Проверьте настройки терминала в putty (это не локаль, а отображение символов терминалом.)
    Ответ написан
  • Как экономнее выполнять php скрипт в крон?

    @metajiji
    100% через кли +, как уже отметили использовать flovk, который убережёт от повторного запуска скрипта, если предыдущий не закончил работу.
    Почему кли лучше? Потому, что скрипт может работать дольше, чем, например настроенный тайм-аут на веб сервере. В кли скрипт гарантированно отработает ну и не забываем запускать через sudo, например:

    sudo -u apache php ... script.php
    Ответ написан
    Комментировать
  • Есть ли жизнь на Линуксе?

    @metajiji
    Попробуйте Fedora Nvidia с репки nonfree 1050 нормас идет с кедами вообще огонь, впны из коробки какие хочешь все, что мог нажать - жму все работает, в терминал забыл как лазить, только работа (сервачки, ансиблы и т.д. )
    Ответ написан
    Комментировать
  • Как скрыть PHP код на сервере при условии что надо его править?

    @metajiji
    На вкус и цвет по вашим возможностям и степени паранои вот варианты:
    Selinux/Apparmor
    Docker/lxc/systemd-nspawn
    KVM/VirtualBOX/etc
    Chroot/cgroups/chroot+cgroups
    Так же не забываем про простые вещи типа open_basedir

    По опыту скажу, что сейчас обернуть это в контейнер проще простого, тот же systemd есть везде.
    Если боитесь контейнеров, сделайте chroot и для верности помажьте сверху cgroup (получите +- тот же контейнер) ну и конечно же всегда есть kvm но это оверкилл, зато просто и надёжно.
    Ответ написан
    Комментировать
  • Как найти невидимый процесс, потребляющий много памяти?

    @metajiji
    Возможно в tmpfs. Проверьте mount. Так же загляните в /dev/shm
    Ответ написан
    Комментировать
  • Правильно ли я установил CentOS7?

    @metajiji
    Хотите изучить центос, поставьте на десктоп Fedora. Будете иметь современный стек софта + совместимость с centos(red hat). Для десктопа centos крайне не лучший выбор, тем более ноутбук.
    Ответ написан
    Комментировать
  • Какие существуют объективные недостатки у systemd?

    @metajiji
    Интересно наблюдать как прямо сейчас Хейтеры в яндекс-кликхаус делают велосипед на init+sed, чтобы симулировать 1 строчку Restart:)
    Только вдумайтесь в происходящее. Запустил сервис, в кроне добавилась задача, если сервис упал - запусти. Если сервис остановили скриптом, крон таска убирается. Слов нет, только эмоции. А вы про какие-то glibc беспокоитесь, там у них пакет в зависимостях не тянет за собой which, а в скриптах использует ы? Знакомо ага? Да молитесь на systemd, наконец навели порядок в этом безобразии всяких upstart, SysV, udev и кучи другого добра! А ещё кто не знал, но полюбас прогревал себе пукан, когда в fstab прописана фигня или недоступный nfs, сервер вообще не включается! И нужно душевно так провести время, хорошо, если есть ipmi, то вопрос 5 минут, а если нет? Так вот к чему я, есть .mount юниты это же каеф + зависимость кинул, чтобы сервис без шары не взлетал и падал вслед за шарой. Сервер запустится, шара нет, сервис тоже не поднимется, а зайти по ssh можно и главное починить легко и оперативно. И это только малая часть боли которую systemd реально прямо сейчас решает без плясок и крови из глаз.
    Ответ написан
  • Какой выбрать ssh клиент?

    @metajiji
    Windows - putty
    Osx/linux/other nix - ssh прямо в терминале
    Ответ написан
    Комментировать
  • Как переписать PHP движок с Windows-1251 на UTF-8?

    @metajiji
    Если в рнр файлах есть русские символы - нужно перекодировать из в утф, если есть темплейты, данные в базе, в js файлах и вообще во всех файлах движка - iconv -f 1251 -t utf8 для них. С базой dump/iconv/sed/restore. Дальше больше, настройки веб сервера, чтобы не только meta с кодировкой, которую в шаблонах поправили но ещё и веб сервер(если настроено) отдавал в утф.

    Не понимаю причем тут mb_*, тут в другом дело же.
    Ответ написан
  • Сайт на docker медленно работает?

    @metajiji
    Есть такое да, если делаете паблишинг портов, то на голом докере по умолчанию это произойдет через docker-proxy у которого катастрофически низкая производительность + огромный аппетит к Cpu, выход крайне простой - при создании контейнеров, которые будут взаимодействовать с внешним миром используйте --net host. Например у вас есть php-fpm, nginx и любая бд, в таком случае делаете --net host для nginx, остальные могут оставаться в сети docker, конечно же вам понадобится icc(inter container communication) и для этого нужно создать так называемую user-defined network. Для упрощения жизни создавайте контейнеры через docker-compose.
    Ответ написан
    1 комментарий
  • Как перехватить HTTP запросы php скрипта?

    @metajiji
    Mitmproxy и полетели
    Ответ написан
    Комментировать
  • Переход на mysqli, как по новым стандартам?

    @metajiji
    PDO без вариантов.
    Ответ написан
    Комментировать