2 июл. 2013 г.

Centos Nginx PHP-fpm error child 1111 exited on signal 11 (SIGSEGV) after 2222 seconds from start

Если проблема, вынесенная в заголовок, вас волнует "Centos Nginx PHP-fpm child 1111 exited on signal 11 (SIGSEGV) after 2222 seconds from start", то после долгого гугления вы найдете два совета:

  1. выслать дамп коре куда-то для исправления бага
  2. стучать в бубен потому что никто не знает, от чего срабатывает защита от "сегментейшен фолт"
Ни то ни второе мне не понравилось и я пошел своим путем - перфекционизм. Включил отображение всех ошибок ПХП и начал избавлять от ворнингов и нотисов. Когда их количество уменьшилось в 10-100 раз, то и падение PHP-fpm от заезда в чужой сегмент памяти исчезло. Для проверки вернул старый набор классов - SIGSEGV вернулось. Для справки - это шоп от RX-P. Инвайты по почте после собеседования.

UPD
Забыл указать, что:
PHP 5.4.16
Nginx 1.5.1
Centos 5.9

Удалить из ридера - данунах, некогда. Прочитать полностью...

29 июн. 2013 г.

Купил новый автомобиль.

Купил новый автомобиль потому что старый заебал ломаться. И ломаются всякие мелочи, которые стоят не дорого, а времени на ремонт тратится много: заехать проверить что сломалось, съездить за запчастями, записаться на ремонт, сидеть ждать пока они там починят, съездить за тем, что они забыли или у них кончилось. Через наделю приехать на перерегулировку или переремонт.

В общем купил новую тачку. Старую продал, ей было пять лет с хвостиком.

Удалить из ридера? Нееее не знаю. Прочитать полностью...

28 июн. 2013 г.

Список неадекватных регистраторов. resell.biz jogjacamp.com reviews

Список неадекватных регистраторов. Банят за хербалсы от маркетхэлсов и кэшбёрнерса:

  1. UK2 = http://www.resell.biz/ reviews забанили домен, на котором два года был редирект на аптеку. Без предупреждений.
  2. http://jogjacamp.com/ reviews - не отвечают на письма ни мне, ни реселлеру, забанили три домена за "спам", ни ссылок на инфорсмент, ни текста абузы, нихуя. Можно писать жалобу в ИКАНН, но я малограмотный, не умею короче.
  3. Cloud Group Limited (R123-LROR) reviews оказалось это тоже UK2. Забанили акк БЕЗ ПРЕДУПРЕЖДЕНИЯ по абузе на ХЕРБАЛЬНУЮ аптеку "трейдмарк наш поэтому удалите его упоминание с этого дора, а то мы убытки несем 100500 баксов в секунду, потому что на доре висит баннер конкурирующей таблетки от маркетхэлсов".
Только те, кого я проверил лично.

Прочитать полностью...

19 июн. 2013 г.

Using DKIM in Exim for Centos. Part 1.

Мои аптеки регулярно шлют мне письма от себя и из обратной связи от кутомеров и абузеров. В последнее время mail.ru и gmail.com повадились такие письма даже в спам не ложить, а отправлять обратно с пометкой 421 - "никого нет дома, приходите позже" или "550 - ты ёбаный спамер".

Хостеры ругаются, регистраторы банят домены, абузеры охуевают, кустомеры не покупают. После месячного заёбывания саппорта mail.ru и быстро покурив интернеты и второго после Бога, я выснил, что:
  1. почтовики не любят такую хуйню в заголовках как "X-PHP-Originating-Script: 500:class-phpmailer.php", устраняется в \etc\php.ini исправить mail.add_x_header = Off
  2. всем поголовно в ДНС добавить TXT  86400 v=spf1 ip4:111.222.33.44 a mx ~all (IP ясен хуй писать свой) 
  3. заставить exim (не менее 4.70, у меня 4.80.1) подписывать письма кровью, т.е. DKIM
 Создаём RSA-ключ (не менее, чем 1024 бита длиной, гугл меньше не примет) и парный ему общедоступный ключ. Прячем тайный ключ от посторонних:
mkdir /etc/pki/dkim
cd /etc/pki/dkim
openssl genrsa -out buy-viagra-online.com.key 1024
Generating RSA private key, 1024 bit long modulus
...................++++++
..++++++
e is 65537 (0x10001)
openssl rsa -in buy-viagra-online.com.key -pubout > buy-viagra-online.com.pub
chown exim:exim buy-viagra-online.com.key
chmod 640 buy-viagra-online.com.key
Получили buy-viagra-online.com.key 891 байт + buy-viagra-online.com.pub 272 байта
Создаём  DNS-запись для верификации DKIM
Берём публичный ключ, файло example.com.pub, который выглядит примерно так:
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3D......
......
......
YRhOq9VT1IuiNhULLQIDAQAB
-----END PUBLIC KEY-----
Удаляем комментарии (начинаются со знаков минуса), всё остальное разворачиваем в одну линию, и приписываем к началу строку
k=rsa; p=
Получим что-то вроде следующего:
k=rsa; p=MIGfMA0GCSqGS.....дохуя.букв......BwIDAQAB
Входим в интерфейс управления зоной для домена example.com и создаём запись вида
dkim._domainkey.buy-viagra-online.com 86400 IN TXT "k=rsa; p=MIGfMA0GCSqG....дохуя.букв....9VT1IuiNhULLQIDAQAB"
Где dkim — произвольная строка (допустимая в доменном имени). Важно: можно создать несколько DKIM-записей для одного и того же домена, если у них различаются селекторы.
Лезем в файл \etc\exim\exim.conf
# было так
remote_smtp:
driver = smtp
# стало так
DKIM_DOMAIN = ${lc:${domain:$h_from:}}
DKIM_KEY_FILE = /etc/pki/dkim/DKIM_DOMAIN.key
# OLD FUCKING ERROR DKIM_PRIVATE_KEY = ${if exists{DKIM_KEY_FILE}{DKIM_FILE}{0}}
DKIM_PRIVATE_KEY = ${if exists{DKIM_KEY_FILE}{DKIM_KEY_FILE}{0}}
remote_smtp:
driver = smtp
dkim_domain = DKIM_DOMAIN
dkim_selector = dkim
dkim_private_key = DKIM_PRIVATE_KEY
# я не вкурил, зачем это и заремил dkim_canon = relaxed
service exim restart
echo "body viagra 00 _`date`_" |mail -s "subject 123 from _`hostname`_" fucking.viagra.admin@gmail.com

Если всё нормально, то на жимыле в исходниках вы увидите в том числе и такое:
Received-SPF: pass (google.com: domain of root@buy-viagra-online.com designates 111.222.33.44 as permitted sender) client-ip=111.222.33.44; Authentication-Results: mx.google.com;
spf=pass (google.com: domain of root@buy-viagra-online.com designates 111.222.33.44 as permitted sender) smtp.mail=root@buy-viagra-online.com;
dkim=pass header.i=@buy-viagra-online.com
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=buy-viagra-online.com; s=dkim;
h=Date:From:Message-Id:Subject:To; bh=9DgPzmCC0hW....много-букв.....2wDEUnow=;
b=idayqjqxQbc....дохуя-букв.....LhhlE8jE3Y=;
Received: from root by buy-viagra-online.com with local (Exim 4.80.1)
(envelope-from )
------ 
story is based on http://boyandin.info/w/Exim/DKIM
PS
The dkim_canon = relaxed, sets the canonicalization method to use when signing messages. DKIM supports “simple” and “relaxed” algorithms- to understand the difference, see section 3.4 of the DKIM RFC.
PS
Once you’ve set everything up, you can test your DKIM (and SPF and SenderID, etc) install, by using the port25.com validation service:
If you wish to receive the results at the address in the “mail_from”, the sample message should be sent to check-auth@verifier.port25.com.
If you wish to receive the results at the address in the “from” header, the sample message should be sent to check-auth2@verifier.port25.com.
If you wish to receive the results at a different address from one of the addresses above, the address need to be added to the check-auth address. For example, to send the results to: jsmith@yourdomain.com the sample message should be sent to check-auth-jsmith=yourdomain.com@verifier.port25.com.

PS
Как ставить EXIM 4.80.1 на Centos 5.9 32 бит на VDS с 128 Mb RAM - это тема отдельной истории. Если будут интересующиеся - напишу. А вот как делать DKIM на шареде - ебитесь сами :) потому что ВДС.
Иди работай! Прочитать полностью...

16 июн. 2013 г.

Пошаговая оптимизация MySQL когда есть реальный трафик.

Тут я писал про оптимизацию ВДС за 9 баксов.

Пункт номер пять - оптимизация MySQL. Я долго не хотел этим заниматься, но пришлось. Как оказалось, там всё очень просто. По шагам:

  1. скачать/обновить phpmyadmin в виде архива папки тут
  2. распаковали у себя на компе, удалили все языки кроме русского и английского
  3. запаковали обратно в архив, который стал меньше в два раза
  4. не инсталлировать через yum или иное, а просто залить в корень вашего WWW и распаковать
  5. переименовать папку в абракадабру типа  pma2012 чтобы хакеры не долбили логин в админку
  6. настроить алиас в вэбсервере чтобы оно открывалось только по IP типа http://123.45.67.89/pma2012/
  7. не привязывать к домену чтобы хакеры не долбили логин в админку
  8. идем http://123.45.67.89/pma2012/setup/ ставим временно права 777 и 666 куда оно попросит.
  9. настроить авторизацию HTTP и всякое нужное, не забыть сохранить
  10. залогинились, идем в закладку "Состояние" (.../server_status.php...) - закладка "Все переменные состояния" (.../#PMAURL-2:server_status_variables.php...)
  11. ставим галку "Выводить только предупреждающие значения"
  12. читаем, думаем, гуглим, меняем
  13. переходим на закладку "Советчик" (.../#PMAURL-3:server_status_advisor.php...)
  14. читаем, думаем, гуглим, меняем внимательно, потому что часть советов Советчика повторяют советы из "Все переменные состояния"
  15. записываем прямо в my.cnf в комментах какой параметр чему был равен и из-за какого значения производительности мы его поменяли потому что...
  16. через сутки повторяем шаги 10 - 15. Делаем столько подходов, пока результат не станет нравится. У меня это заняло пять дней.
Предупреждения:
  • Из-за того, что внутри вордпресса на структуру запросов и индексацию таблиц мы влиять не можем, то не все параметры вам удастся оптимизировать. Я смирился с этим.
  • Включите лог медленных запросов, почитайте их, и выбросите/замените плагины, которые там очень часто появляются. Затем выключите лог медленных запросов.

Прочитать полностью...

15 июн. 2013 г.

Влияние скорости загрузки сайта на трафик с гугла

Есть у меня один сайт старенький. На ВДСе за 9 баксов он давно, потому что там траф. На этом же ВДС ещё есть около 20 сайтов, в том числе половина вордпрессы для сапы и линкфида. И приключился там рост трафика вообще и на этом сайте тоже. ВДС стал лагать, LA доходил до 10,  91.8%wa, в общем тормозило сильно.



На картинках один из сайтов на этом ВДС. Точки такие:
1 - гугл решил удвоить трафик, наверно какая-то панда подскочила
2 - начались проблемы у ВДС, т.к. другим сайтам тоже трафа привалило. И траф стал проседать.
3 - я начал оптимизации и траф стал расти.
4 - полгода назад я перестал ставить ссылки по-старому.
5 - я начал ставить ссылки по-новому.

Про оптимизацию.
  1. Выпилил все лишние демоны в Centos пока не осталось только самое нужное
  2. Более тщательно настроил конфиг энджинкса etc\nginx.conf
  3. Установил и настроил xcache для PHP
  4. Подобрал для себя etc\httpd\httpd.conf
    • StartServers 1
    • MinSpareServers 1
    • MaxSpareServers 3
    • ServerLimit 10
    • MaxClients 10
    • MaxRequestsPerChild 20
  5. MySQL, оказывается, при обновлении стал MariaDB, но мне пофиг, погуглил, почитал - нормально. Настроил etc\my.cnf
  6. Сделал почти всё, что просит гугл тут https://developers.google.com/speed/pagespeed/insights

Итого: LA уменьшился в 4 раза. Траф вы видите на картинке выше.

Удалять кого-то некогда сейчас Прочитать полностью...

5 важных новостей от Гугла. Новый алгоритм - Payday Loan Porno Google Search Algorithm

Гугл выкатил новый алгоритм - Payday Loan Porno Google Search Algorithm. В разных странах это затронет от 0,3% запросов в США до 4% в Турции. Только высокоспамные запросы: страховки-лохотронки, очевидная порнуха, ИМХО и фарма тоже. На гоуфаке и фармкеше идет обсуждение. Ничего нового, что-то улетело, что-то поднялось. В общем-то народ сходится во мнении, что из-за того, что вэб-линк-спам сейчас имеет многоликое лицо, то никакие алгоритмы не вычистят выдачу автоматически. Гугл выпилил "шопы" на профилях и ссылках из каталогов статей и сателлитов, всплыл лом, Гугл выпилил лом - всплыли новореги с мегаспамом по гестам, Гугл выпилил новореги - всплыли дропы на ссылках из сапы и т.д. гугл за 10 вооружил фармацевтов любыми видами оружия. И теперь выдача забита вэб-спам-аптеками на земле, в небесах и на море :)

Пруф http://searchengineland.com/google-pay-day-loan-algorithm-google-search-algorithm-update-to-target-spammy-queries-162941

И ещё четыре новости из зоопарка, если кто не в курсе:

  • Кац подтвердил, что гуглопанда работает танцами по 10 дней. Запускают её раз в месяц, как в начале 2000 годов.
  • При выписке ручного пендаля в вэбмастерс тулс указывают несколько примеров УРЛов, чтобы вебмастер вкурил, за что пендаль.
  • Скорость загрузки сайта будет влиять и на ранжирование выдачи для мобильных устройств. Ранее это заявлено и для обычной выдачи. Для мобильной будет сильнее, но цифры пока секретные. Кстати, я это проверил, работает.
  • Стало возможным получать отчет об ошибках в структурированных данных тут https://docs.google.com/forms/d/1Gib1ceUyelVUZyagkOrOZWgFUCXUinwA5QGbTXW1s6Q/viewform

Пруф http://searchengineland.com/googles-cutts-talks-structured-data-beta-mobile-site-speed-need-penalty-notices-to-get-example-links-more-162991

Удалять некого Прочитать полностью...