Задать вопрос
  • Пополнение денег?

    piromanlynx
    @piromanlynx
    Системный администратор в Perfect Solutions
    Да, может, зачастую по "службе безопастности". Позвоните в банк и узнайте о конкретной неудавшейся транзакции.
    Ответ написан
    Комментировать
  • Почему не работает php код в Wordpress после вызова функции?

    piromanlynx
    @piromanlynx
    Системный администратор в Perfect Solutions
    В том что на этой функции код падает по ошибке. Если ошибку не видно в браузере, то скорее всего ее видно в логах (смотрите error.log-и пхп,апача,nginx, возможно сама cms имеет свои логи).
    Так же, если ошибок нет, возможно внутри функции есть die/exit или что то подобное
    Ответ написан
    Комментировать
  • Проблема с закачкой css файлов через FTP, в чем дело?

    piromanlynx
    @piromanlynx
    Системный администратор в Perfect Solutions
    1. Попробуйте включить binary mode в ftp
    2. А не меняет ли какой скрипт .css файл на сервере?
    Ответ написан
    4 комментария
  • Совместное использование Yii1 и Yii2?

    piromanlynx
    @piromanlynx
    Системный администратор в Perfect Solutions
    Если имеется два именно поддомена, то:
    1. Нужно ставить куку с токеном на *.domain.com
    2. в куке с токеном должен быть токен, по которому Ваше новое приложение на yii2 налету авторизует пользователя.

    По сути - у авторизации 2 логические точки входа: старая форма входа и кука-токен.
    Только не забудьте в токен добавить что нибудь рандомное и подпись, примерно так:
    $salt = "какая то секретная строка";
    $uid = ваш id юзера;
    $ts = time();
    $sign = sha1($uid.$ts.$salt);
    $token = json_encode([ 'user_id' => $uid,  'ts'=>$ts, 'sign'=>$sign ]);

    Валидировать такой токен нужно так:
    $salt = "какая то секретная строка"; //та же самая
    $token = json_decode($_COOKIE['..'], true);
    $uid = $token->user_id;
    $signGood = sha1($uid.$token['ts'].$salt);
    if ($signGood === $token['sign']) {
      //все окей, авторизуем $uid
    } else {
      //какая то странная кука, не авторизуем
    }

    Еще можно проверить время выдачи куки (ts) чтобы он не превышал каких то реальных границ, но в большинстве проектов это излишне и приведет только к глюкам
    Ответ написан
    2 комментария
  • Что за ошибка при установке yii2?

    piromanlynx
    @piromanlynx
    Системный администратор в Perfect Solutions
    Судя по всему вы делаете это через консоль Windows, а в ней появляются проблемы с кодировкой у композера и подобных инструментов.
    Возьмите git-bash и запустите из него
    Ответ написан
  • Маршрутизация между сетями. Где ошибка?

    piromanlynx
    @piromanlynx
    Системный администратор в Perfect Solutions
    У вас:
    iptables -P FORWARD DROP
    iptables -I FORWARD -i eth0 -d 192.168.0.0/255.255.0.0 -j DROP
    iptables -A FORWARD -i eth0 -s 192.168.0.0/255.255.0.0 -j ACCEPT
    iptables -A FORWARD -i eth1 -d 192.168.0.0/255.255.0.0 -j ACCEPT

    А сеть вашего VPS живет не на интерфейсе eth0, а на tun8 судя по netstat -rn на А.
    Сходу попробуйте:
    iptables -P FORWARD ACCEPT
    Если всё заработает - то вам нужно править ваши правила под tunXX, который определяется динамически при поднятии тоннеля (post-up скрипты получают имя интерфейса, и там можно добавить правила в iptables)
    Ответ написан
    Комментировать
  • Какие оптимальные технологии и методы для разработки аукциона?

    piromanlynx
    @piromanlynx
    Системный администратор в Perfect Solutions
    Можно и на php. Храните данные в хорошо доступном хранилище - redis/memcached и вынимайте их в обход php - например модули nginx для работы с memcached/redis - это позволит иметь горячие и доступные данные независимо от тормозов бакенда.
    Важно понимать, что эти данные - кеш и этот кеш должен писаться в момент изменения/сохранения данных, а не в момент запроса; т.е. кеш должен быть всегда горячим и генерируемым при сохранении данных, не иметь expires и изменятся только событийно.
    При такой архитектуре ваши данные будут всегда доступны из быстрого хранилища напрямую из nginx (в нем можно использовать например ssi для получения этих данных в контент страниц).
    Оповещение js-фронтенда в realtime можно реализовать на websocket-ах, примеров массы, но я бы советовал не гонять очень много данных через него - только события о факте изменения и минимальные данные (всё что нужно можно забрать аяксом тогда когда нужно).
    Ответ написан
    Комментировать
  • Как починить зависание vzctl enter?

    piromanlynx
    @piromanlynx Автор вопроса
    Системный администратор в Perfect Solutions
    Проблему кстати тогда решил. Нужно было подправить /etc/securetty внутри контейнера. Т.к. трабла осталась в прошлом, то конкретика не особо нужна сейчас. В новых образах таких бед уже нет
    Ответ написан
    Комментировать
  • Xen 4.1, падение fs с виртуалками вызывает падения при обращении к корню. как объяснить?

    piromanlynx
    @piromanlynx Автор вопроса
    Системный администратор в Perfect Solutions
    Нашел свой же старый вопрос и напишу ответ. Единственная причина такого поведения была в том что из за предшествующих перебоев в питании начались проблемы электрического кахарктера в одном из HDD. Это выносило мозг SATA контроллеру и он вел себя неадекватно. Заменили винт и теперь не используем те контроллеры, новые берем Adaptec у них таких проблем нет.
    Ответ написан
    Комментировать
  • Как настроить Debug режим, если исходники лежат в Docker?

    piromanlynx
    @piromanlynx
    Системный администратор в Perfect Solutions
    Из конфига в уме видно плохо в чем дело.... Могу посоветовать как отладить:

    1. Проверьте во все нужные стороны с помощью telnet - открывается ли коннект.
    2. "php5-fpm -i" и "php5-fpm -m" внутри докера (если там fpm) чтобы увидеть реально цепляется ли xdebug и настройки. Ну либо phpinfo();...
    3. посмотрите на netstat -ant внутри докера и снаружи - чтобы понимать что происходит с коннектом, открывается ли он и где теряется
    4. в крайнем случае tcpdump на хосте

    и вот тут (https://xdebug.org/docs/all_settings ) есть про xdebug.remote_connect_back , возможно натолкнет на мысли. И помоему у докера были уже готовые образы с fpm и настроенным xdebug под phpstorm
    Ответ написан
    Комментировать
  • Старые взломанные CMS на Joomla и WordPress. Как решать проблему?

    piromanlynx
    @piromanlynx
    Системный администратор в Perfect Solutions
    1. Вычистить вирусню: clamscan + читать maillog + трейсить вызовы mail.
    2. Поставить и настроить suhosin если это преемлимо
    3. Все сайты которые возможно использовать в режиме ридонли для fs.
    4. В зависимости от cms запретить execute в директориях где не положено.
    5. Если есть опыт - настроить naxsi для фильтрафии SQL-инекций
    6. Иметь в итоге "чистый" бекап для возможности всё откатить на состояние без вирусов и мониторить активность.

    Я бы мог даже взяться за это за недорого, ибо полдела автоматизировано. Вообще это задачка для автоматизации рутины - такой вопрос надо решить один раз и навсегда, ибо будут новые сайты на новых cms с новыми дырами и они тоже со временем станут старыми
    Ответ написан
    Комментировать
  • Как в composer подменить пакет?

    piromanlynx
    @piromanlynx
    Системный администратор в Perfect Solutions
    1. "просто и тупо" положите развернутую либо как git submodule и разворачивайте как сабмодуль из своей репы.
    2. "хитро и глючно" - придется воспроизвести этот сценарий через bash скрипт, но обещаю что рано или поздно оно сглючит когда "что-то где-то изменится"
    Ответ написан
  • Как сделать резевный айпи для домена?

    piromanlynx
    @piromanlynx
    Системный администратор в Perfect Solutions
    Т.к. DNS имеет кеш на устройствах (DNS-сервера провайдеров, роутеры, компьютеры), и при указании TTL 1 час вы можете получить реальное время жизни кеша сильно больше чем 1 час - то средствами DNS это делать нецелесообразно. (Зачем резерв который включается до 3х часов?)

    Гораздо проще использовать sharedip, либо динамическую маршрутищацию, если сеть под Вашим управлением.
    Если же вы живете на хостингах, то выход с нормальным и быстро работающим резервированием - использовать стороний (чужой уже срезервированный средствами сети ip) в схеме "клиент->magicip->ваши сервера"

    Если же хочется реализовать это средствами DNS, несмотря на длительные даунтаймы - нужно писать скрипт, который мониторит адреса на предмет "жив или мертв", меняет файл зоны, SOA и перегружает bind. В таком случае лучше иметь минимальный TTL для переключаемых записей, но это приведет к тормозам у пользователей (как десктопов, так и мобильных) и не решит проблему дауетайма при переключении накорню.
    Ответ написан
    Комментировать
  • Как перехватить сетевые пакеты, приходящие на конкретное устройство?

    piromanlynx
    @piromanlynx
    Системный администратор в Perfect Solutions
    Вы имели ввиду как указать входящий интерфейс?
    iptables -A INPUT -i eth0 ....

    Или destination ip на linux-маршрутизаторе?
    iptables -A FORWARD -d 1.2.3.4 ...
    Ответ написан
  • Как в apache 2 заменить index of на forbidden?

    piromanlynx
    @piromanlynx
    Системный администратор в Perfect Solutions
    Внутри Directory нужно добавить опцию:

    Options -Indexes
    Ответ написан
    1 комментарий
  • Как сравнить файлы через командную строку?

    piromanlynx
    @piromanlynx
    Системный администратор в Perfect Solutions
    Можно посчитать md5/sha1 и сравнивать хеши:

    https://support.microsoft.com/ru-ru/help/889768/ho...

    Так же можно сравнивать время изменения файла на сервере и клиенте (но это требует того чтобы время изменения у файлов действительно менялось и шло на компах примерно близко, хотябы до минут)
    Ответ написан
    Комментировать
  • Установка Centos без монитора. Как?

    piromanlynx
    @piromanlynx
    Системный администратор в Perfect Solutions
    Воткните винт куда угодно где есть монитор и железо совместимо, поставьте ОС, воткните винт куда нужно.
    В первую очередь совместимы должны быть: архитектура cpu (x86/amd64/...), pae (если есть). Сразу включите модуль ядра для нужной сетевой карты (которая на целевом устройстве).
    Возможно прокатит не с первого раза, но если есть возможность завести ядро - можно вывести консоль на COM-порт
    Ответ написан
    Комментировать
  • Как зайти на сервер по root?

    piromanlynx
    @piromanlynx
    Системный администратор в Perfect Solutions
    В файле /etc/ssh/sshd_config директива
    PermitRootLogin without-password
    поменяйте на yes.
    Ответ написан
    Комментировать
  • Как обычно называют папку в которой хранят такие файлы?

    piromanlynx
    @piromanlynx
    Системный администратор в Perfect Solutions
    В yii есть понятие ConsoleController. В понятиях mvc это контроллер. Только для консоли, нсли я верно понял вопрос
    Ответ написан
    Комментировать
  • Где git "клиент" хранит ключи?

    piromanlynx
    @piromanlynx
    Системный администратор в Perfect Solutions
    Почему??!!

    1. Потому что используется ключ по умолчанию из ~/.ssh/id_rsa (его даже не обязательно делать ssh-add)

    Где git «клиент» хранит ключи?

    2. он использует штатный ssh клиент из ОС, в вашем случае из поставки git-bash. Штатный ssh-клиент использует по умолчанию ключ ~/.ssh/id_rsa, а так же ключи из агента если они есть
    Ответ написан