Несколько версий PHP на свежем сервере

Бывает, что надо запустить сайты на PHP 5.2-5.3 на свеженьком debian 8, на котором уже есть набор работающих сайтов на php 5.6 например.
проблема решается через mod_fcgid (для apache 2.4) и PHPFarm

чуть позже оформлю в отдельный мануал, но пока ещё просто наводящие материалы, которые мне помогли всё это организовать и завести
http://coderoncode.com/php/programming/devops/2014/04/18/flexible-php-development-phpfarm.html

PHP 5.4 unter Debian 6 Squeeze parallel zu PHP 5.3 (mod_php/mod_fcgid)

а чтоб поставить расширение какое для ПХП, то вот ссылка
https://cweiske.de/tagebuch/phpfarm-install-extensions.htm

Массовое изменение физических размеров картинок на сервере

в пакете Image Magic есть утилита mogrify которая многое умеет.

find . -name '*.[Jj][Pp][Gg]' -size +2M -print0 | xargs -0 mogrify -resize 1280">" -quality 90

Команда находит файлы JPG размером больше 2х мегабайт и дальше в работу вступает mogrify , которая уменьшает разрешение файла до 1280 (если ширина больше, меньшие не трогает, но компрессией может пройти сверху) по ширине (высота меняется пропорционально) и качество компрессии равно 90.

Nginx сжатие для google pagespeed

примерно вот так в nginx.conf

gzip on;
gzip_disable "msie6";

gzip_comp_level 6;
gzip_min_length 1100;
gzip_buffers 16 8k;
gzip_proxied any;
gzip_types
    text/plain
    text/css
    text/js
    text/xml
    text/javascript
    application/javascript
    application/x-javascript
    application/json
    application/xml
    application/xml+rss;

Кэширование Nginx

оч хорошая статья, боюсь потерять на неё ссылку
http://devacademy.ru/posts/razbiraemsya-v-http-proksi-nginx-balansirovke-nagruzki-buferizatsii-i-keshirovanii/
это перевод вот этой статьи
https://www.digitalocean.com/community/tutorials/understanding-nginx-http-proxying-load-balancing-buffering-and-caching

Поиск вирусов на сайте

Стали часто обращаться в помощи почистить сайты\сервера от вирусов.

пишу заметку для себя, какие комманды в поиске подозрительных файлов применяю
в поисках подозрительных функций

egrep -Rl '\$GLOBALS.*\\x|function.*for.*strlen.*isset|isset.*eval' . >virus.txt

но странно эта команда не все находит. вот есть шелл в руках, на который она не реагирует в нём дофига


в связи с этим
вот ещё у коллег в бложике спёр

find /path/with/sites/ -type f -iname "*" -exec grep -Him1 'eval(' {} \; >> shells.txt
find /path/with/sites/ -type f -iname "*" -exec grep -Him1 'GLOBALS' {} \; >> shells.txt

дальше ручками просматриваем файлы из virus.txt на предмет аномалий.

часто надо найти файлы что правились совсем недавно

find . -type f -printf '%TY-%Tm-%Td %TT %p\n' | sort -r > virus_time.txt

будет создан файл и отсортирован в обратном порядке