Ответы пользователя по тегу PHP
  • Из-за чего в Redis неудовлетворительная скорость при получении значения скалярного ключа?

    @BasilioCat
    проверьте скорость получения ключа через redis-cli
    заменять через time
    Ответ написан
    Комментировать
  • Как зашифровать id, чтобы получив этот закодированный id можно бы его расшифровать и получить id?

    @BasilioCat
    По-моему вам просто надо сравнивать referer запросов с зарегистрированными доменными именами сайтов в вашем сервисе. Никто не мешает скопировать зашифрованный id и вставить его на другой сайт с таким же успехом. "Вызов" урла фрейма все равно инициируют обычные пользователи из браузера, заниматься подлогом реферера им нет резона. Для тех параноиков, у которых отключена передача реферера - просто не блокируйте виджет при пустом реферере.

    Для подтверждения неизменности урла в абстрактном случае же лучше использовать подпись - например url?id=123&hash=123456789abcdef, где hash=md5($id.$secret_key);
    Возможностью проверки таких подписей обладает даже nginx
    Ответ написан
    2 комментария
  • Стоит ли использовать Mongo и Node.js для сервиса аналога Яндекс.Метрики и Google Analytics?

    @BasilioCat
    Если у вас проблема в записи, сделайте так, чтобы запись была быстрее. Mongo вас спасет в том смысле, что запись можно вести не на один сервер/диск, а на несколько. Того же эффекта можно достичь, заменив медленый шпиндель (у вас же SATA?) на SSD, или на два SSD в страйпе, или на 4 ssd под каждую из тяжелых таблиц =) И, скорее всего, вы слишком много данных пишете в базу. Пишите меньше =) Чтение, агрегацию, склеивание и прочее надо вести на реплике (а то и нескольких) этой БД на другой машине. По IOPSам она должна быть не хуже мастера - то есть тоже на SSD. Если реплики воткнут, это не повлияет на реалтайм запись - просто реплики начнут отставать от мастера.
    Ну и банальный совет - добавьте RAM, настройте innodb buffer pool - может он просто неэффективно используется.

    Переводить запись на node возможно имеет смысл, если сложных вычислений при дергании счетчика не делается, а просто входные параметры пишутся в БД. Но если у вас этим сейчас справляется PHP - то зачем менять? Снесите на отдельную машину - лишние 100 (200 для двух машин) баксов в месяц куда дешевле оплаты программиста для переписывания этого добра.
    Ответ написан
    Комментировать
  • Создания сайт с потоковым видео для начала видео берется с ютуба?

    @BasilioCat
    Видео поток брать с ютьюба - тоже вариант, особенно если проигрыватель свой собственный, где можно мимикрировать под обычный браузер. Иначе могут забанить и/или потребовать использовать API key, который либо ограничивает массовое использование, либо стоит денег.
    А если вдруг придется иметь дело с файлами или потоками видео, то без ffmpeg не обойтись. В документации есть способы вещания живого потока, проигрывать файлы с диска в реалтайме - еще проще. Вопрос в том, какой софт выступает в роли клиента. Для ios лучше всего выходной поток в http live streaming, для флэша - RTMP. Кроме этих протоколов для лайва подходит еще HDS, но его ffmpeg не умеет, и есть еще реализация от Майкрософта Smooth Streaming, земля ей пухом.
    Вот нагуглил обзорную статью на хабре - она совсем немного устарела, ибо появилось больше софта.
    Примерная схема видеосервера может быть такая
    - ffmpeg из файлов (или еще откуда) делает RTMP поток, и публикует его на сервер, раздающий этот поток клиентам. Типа ffmpeg -i file1.mp4 rtmp://127.0.0.1/mystream
    - в роли раздающего сервера может быть nginx с rtmp модулем
    Ответ написан
    Комментировать
  • Подсоединиться по SSH и поменять пароль?

    @BasilioCat
    Можете попробовать заменить этот скрипт на expect на утилиту sshpass (придется поставить дополнительно)
    sshpass -p password ssh root@host «echo user1:passwd1 | chpass»
    из соображений безопасности лучше пароль передавать через файл или переменную окружения (такая возможность есть)

    Ну а правильный метод (который и рекомендовали выше) — сгенерить ключ
    ssh-keygen
    и пройтись по всем серверам (раз уж пароль рута вам известен), и вписать этот ключ для доступа через ssh
    cat /root/.ssh/id_rsa.pub | ssh root@host «cat >> /root/.ssh/authorized_keys»
    после чего вы будете ходить по всем серверам без пароля
    Ответ написан
    Комментировать
  • MPDF, проблема с кириллицей, кто-нибудь справился?

    @BasilioCat
    Крайне рекомендую wkhtmltopdf. Работает лучше самого акробата ;) С utf-8 НЕТ ПРОБЛЕМ, проверял лично. Да и странно было бы иметь проблемы с ютф в хроме или сафари (wk = webkit). У вас скорее всего проблемы со шрифтом. Используйте TTF шрифты из состава винды (начиная с XP), и что-нить попроще, вроде Arial.

    P.S.: Собрать его из сорцов непросто, по зависимостям придется поставить кучу всего, что на сервере в сущности не нужно совсем, но на сайте есть частично-статичные сборки для линукса и freebsd с минимумом зависимостей
    Ответ написан
    Комментировать
  • Nginx, php переменная?

    @BasilioCat
    Мерять загруженность сервера из пхп, использовать в качестве балансировщика nginx… Вы не хотите поискать инструменты, специально предназначенные для решения таких задач? Может быть вам подойдет ipvs, haproxy?
    Ответ написан
  • Простейшая защита от DDOS на PHP?

    @BasilioCat
    Если ваш скрипт на пхп будет первым делом лазить например в мемкэш и проверять сколько подключений за минуту было с такого же адреса, что и сейчас, и если больше порога, то соединение быстро закрывать, то в теории с небольшим ДоСом вы справитесь. Впрочем если он по те же критериям будет формировать .htaccess с директивами deny from — будет быстрее. А если еще и перед апачем случайно nginx стоит, то есть шанс, что ваш сайт будет даже работать.
    Ответ написан
    3 комментария
  • Отложенное выполнение кода в php

    @BasilioCat
    Если у вас собственный сервер или VPS используйте beanstalkd — это сервер очередей. Написан на Сях, простой, быстрый, достаточно много фичей вроде отложенной на заданное время задачи. Интерфейс к пыху — клиентский (не расширение), хотя по мне так можно свой на сокетах написать — протокол там очень простой
    Ответ написан
    Комментировать
  • Freebsd + php-fpm?

    @BasilioCat
    Обновлять nginx и php точно проще на FreeBSD. Про необходимость тюнинга системы под хайлоад и эксплуатацию автором именно на FreeBSD уже упоминали выше. Сысоев, видимо, скоростью доволен, нет оснований ему не верить =)
    Ответ написан
    Комментировать