Обновить
10
0
TTTOOOPPPTTT@script88

Linux system administrator

Отправить сообщение

Подключение картинок к описаниям проблем на Гитхабе

Время на прочтение1 мин
Охват и читатели13K
Говорят, одна картинка стóит тысячи слов. Меньше слов — это одна из важнейших целей команды Гитхаба, поэтому сегодня мы выпустили в свет подключение картинок к описаниям проблем.

[анимированный скриншот]

Довесок.  А если вы пользуетесь Хромом, то сможете вставить (paste) картинку в поле комментария — и она закачается да подключится.

AWS: Как создать логин в свой аккаунт для нескольких пользователей, используя IAM

Время на прочтение2 мин
Охват и читатели7.7K
Привет! image

У многих есть AWS аккаунтны, которые поддерживают другие люди. Например ситуация: клиент хочет, чтоб ему админ что-то настроил. Что делать? Давать имейл и пароль? Не комильфо… Есть выход, и я с картинками расскажу, что и как на примере своего личного аккаунта.

В AWS есть замечательный сервис IAM (Identity and Access Mangement). Первым делом туда и идём — https://console.aws.amazon.com/iam/. Сначала настроим адрес вашей собственной страницы входа в консоль. Находим и нажимаем кнопку Create Accoun Alias на главной странице IAM:
image

Моя консоль теперь доступна по адресу: https://kozhokaru.signin.aws.amazon.com/console.
Читать дальше →

Стабилизируем PHP на бою — что и почему «роняет» веб-сервер

Время на прочтение7 мин
Охват и читатели82K
Вы отвечаете за стабильность работы веб-проекта на PHP. Нагрузка постоянно растет, добавляются фичи, клиенты довольны. В один прекрасный день начинают появляться загадочные ошибки…

Ошибки серверного софта


… которые программисты не знают как исправить, т.к. «ломается» серверный софт, например связка apache-PHP — а клиент получает в ответ на запрос страницу о регламентных работах. Веб-разработчик часто не обладает глубокими знаниями в программировании на C в unix/linux, а сисадмин нередко, к сожалению, глубже bash в систему не погружается. Настоящий хардкор :-)

Нестабильная работа серверных скриптов


Нередко, определенные страницы веб-проекта начинают сходить с ума. Например выполняться по 15 минут и выяснить, чем же они занимаются, непросто. В прошлом посте на данную тему я описал одну из методик определения, чем занимается PHP-скрипт на боевом сервере, но чувствуется, что нужен более мощный инструмент.

На практике я часто встречаю проекты, которые сталкиваются с подобным классом ошибок «серверного софта», и в команде не всегда знают, что делать. В логе apache часто появляются сообщения о нарушении сегментации (segmentation fault), клиенты получают страницу об ошибке, а веб-разработчик с сисадмином ломают себе голову, играются с разными версиями PHP/apache/прекомпилятора, собирают PHP из исходников с разными опциями снова и снова, пишут о багах, а им доказывают, что это баги не PHP, а их кода и так до бесконечности…

В статье я хочу рассказать как можно просто и быстро найти причину, почему PHP рассыпался на боевом сервере и устранить ее — не погружаясь в прекрасный мир системного программирования на C для unix :-) От вас потребуется желание и одна чашечка кофе.

Читать дальше →

Отладка сложных веб-приложений — эффективная багодробилка на production-серверах

Время на прочтение12 мин
Охват и читатели27K
Всем привет!

Сегодня расскажу, как на боевых серверах во время нагрузки, в пыли и грязи, эффективно отлавливать узкие места в производительности больших веб-приложений на PHP, а также искать и устранять «нестандартные» ошибки. Многие из описанных техник мы с успехом применяем на нашем облачном сервисе «Битрикс24».
Информация, надеюсь, пригодится системным администраторам и разработчикам, обслуживающим сложные веб-проекты, а также менеджерам, которые хотят выстроить эффективный и быстрый процесс поиска и устранения узких мест и ошибок проектов на PHP.

Читать дальше →

Расширение помощника CAPTCHA для Codeigniter

Время на прочтение5 мин
Охват и читатели9.5K

Недавно, от наличия свободного времени и желания сделать что то полезное, решил написать расширение для убогого хелпера капчи в Codeigniter.
Читать дальше →

Регулярные выражения для валидации распространенных видов данных

Время на прочтение2 мин
Охват и читатели514K
Для проверки текстовых полей на валидность обычно используют регулярные выражения. Существует несколько наиболе распространенных видов таких даных, как например номер кредитки, дата в определенном формате и т. д. На сайте html5pattern.com собирается коллекция регулярных выражений для таких данных (там это позиционируется, как возможное содержимое html5-атрибута pattern у inpit-элементов, но эти регулярные выражения можно использовать и для привычной валидации с помощью javascript). Актуальные для российской аудитории примеры, вместе с соответствующими регулярными выражениями вы можете посмотреть под катом.
Читать дальше →

Установка SphinxSE на Percona Server

Время на прочтение3 мин
Охват и читатели7.3K
Ни Sphinx, ни Percona Server в особом представлении не нуждаются. SphinxSE — не основной, но в некотором роде более удобный интерфейс доступа к Sphinx searchd, оформленный в виде storage engine плагина MySQL.

В документации сфинкса описан процесс установки SphinxSE, но он не работает. Под катом короткая инструкция по связке перконы со сфинксом, которая сработала у меня и, возможно, сбережет кому-нибудь несколько часов здорового сна.
Читать дальше →

GitLab: open source версия Github

Время на прочтение1 мин
Охват и читатели89K
Хотите поднять клон Github на своём собственном сервере с приватными репозиториями за корпоративным файрволом? Теперь вы можете это сделать благодаря появлению open source проекта GitLab. Он является хорошей альтернативой для корпоративной версии Github стоимостью до $5000 в год.

По сравнению с Gitorious, система GitLab отличается приятным интерфейсом и гораздо проще в установке.

13 октября вышла версия 1.0, через неделю обещают выкатить 1.1, а затем новые релизы GitLab 1.2, 1.3 и т.д. будут выходить каждый месяц.
Читать дальше →

Контроль версий структуры базы данных

Время на прочтение6 мин
Охват и читатели15K
imageЭта статья — How To, которое поможет вам легко обеспечить миграцию между версиями БД ваших PHP приложений с помощью Phing и dbdeploy.
Читать дальше →

Взаимодействие bash-скриптов с пользователем

Время на прочтение4 мин
Охват и читатели149K
Любой приказ, который может быть неправильно понят, понимается неправильно (Армейская аксиома)

Редкий скрипт лишен необходимости общения с пользователем. Мы ожидаем, что программа (утилита) будет выполнять то, что нам от нее хочется. Следовательно, нужны инструменты влияния на них, да и программа сама должна объяснить, как продвигается ее работа.
Данным топиком я хочу рассмотреть несколько способов взаимодействия bash-скриптов с пользователем. Статья рассчитана на новичков в скриптинге, но, надеюсь, люди опытные тоже найдут что-нибудь интересное для себя.
Итак, приступим...

Винт Серф: сохраним интернет свободным и открытым!

Время на прочтение2 мин
Охват и читатели30K
С 1973 года, когда мои коллеги и я начали работать над технологиями, лежащими в основе интернета, мы выступали за открытые стандарты для объединения компьютеров. Не только из философских соображений, но и из практических.

Мы разрабатывали протоколы так, чтобы интернет оставался не-проприетарным и открытым для взаимодействия. Эти протоколы избегали любых привязок и блокировок, позволяли кому угодно вносить свой вклад в развитие сети. Именно благодаря этой открытости интернет сейчас имеет такую огромную ценность. Так как он лишён границ и принадлежит всем, он даёт беспрецедентные свободы миллиардам людей: свободу создавать и изобретать, организовывать и влиять, говорить и быть услышанными.

Но через несколько часов в Дубаи начинается собрание за закрытыми дверьми, на котором правительства будут обсуждать регулирование интернета. Международный союз электросвязи (МСЭ) с 3 по 14 декабря проводит конференцию с целью пересмотреть договор от 1988 года, в котором лишь у правительств есть право голоса. Некоторые из предложений позволят узаконить цензуру или даже отключение доступа к интернету в любой стране.
Читать дальше →

Книги, которые должен прочитать Java программист: от новичка до профессионала

Время на прочтение4 мин
Охват и читатели651K

Книги, которые должен прочитать Java программист: от новичка до профессионала


[Примечание переводчика: термины градации «профессионализма» оставлены англоязычные в связи с трудностью их адекватного перевода на русский и несовпадением с привычными Junior-Middle-Senior-Lead. Перевод достаточно вольный — если знаний языка хватает, то лучше читать оригинал, как и советует автор. Оба языка для меня не родные, так что про ошибки сообщайте в личку — исправим. Здесь и далее в квадратных скобках примечания переводчика]

Я заметил, что в последние месяцы я рекомендую одни и те же книги как новичкам, так и опытным разработчикам. Поэтому я решил составить список этих книг. Они составили мне неплохую компанию в процессе моего роста от новичка до сегодняшнего уровня (какой-бы он не был :) )
Читать дальше →

Как работает ZFS — часть 1: vdev

Время на прочтение3 мин
Охват и читатели34K
Vdev, или Virtual Device — это базовая единица, на которой строится массив данных ZFS (zpool). Для работы ZFS необходим как минимум один vdev — виртуальное устройство, которое позволяет случайный доступ к информации на уровне блоков.

Обычно, в качестве таких блоков используются целые диски или iScsi/FC LUNы (raw-disk vdev), но можно также использовать разделы дисков или файлы. Целые диски предпочтительнее, так как для них ZFS использует onboard write cache, в результате чего производительность записи может значительно улучшиться. Я пока не буду объяснять разницу между logical vdev и leaf vdev — это топик для отдельной статьи про то как работает RaidzN и zfs mirror.
src.illumos.org/source/xref/illumos-gate/usr/src/uts/common/fs/zfs/vdev_disk.c#314
if (vd->vdev_wholedisk == 1) 
{
	int wce = 1;
	/*
	 * If we own the whole disk, try to enable disk write caching.
	 * We ignore errors because it's OK if we can't do it.
	 */
	(void) ldi_ioctl(dvd->vd_lh, DKIOCSETWCE, (intptr_t)&wce, FKIOCTL, kcred, NULL);
}

В описании структуры виртуального устройства можно посмотреть какие параметры используются для чего, но я не собираюсь давать объяснение каждому — цель статьи — описание собственно того как ZFS хранит и пишет данные.

Каждый vdev разделен на логические разделы (metaslab),
Читать дальше →

Простой способ обойти ограничения локального прокси

Время на прочтение3 мин
Охват и читатели51K
Начнем с того, что однажды мне понадобилось зайти в вконтакте.
В то время я работал в одной крупной компании. Локальный прокси-сервер блокировал все запросы в содержании, которого присутствовали признаки данного ресурса, и не только его. О существовании анонимайзеров, я, конечно же, знал. Но опробовав быстродействие и возможности подобного сервиса, крайне огорчился.
Кроме того, из нынешнее устройства Сети следует, что любой узел через, который проходит трафик, может его просмотреть, а HTTP-трафик вообще передается в открытом виде.
И за это еще нужно платить деньги, имея в распоряжении внешний IP и собственный веб-сервер.
Так родилась идея создания простого скрипта перенаправления трафика и удаления фильтруемой (прокси) информации.
Читать дальше →

Настраиваем свой первый VDS сервер в роли веб-сервера

Время на прочтение14 мин
Охват и читатели55K
Добрый день.

Так уж сложилось, что последнее время пришлось достаточно часто менять VDS провайдеров, и каждый раз приходится заново настраивать систему, поэтому решил написать краткий конспект по настройке. Все нижеописанное корректно работает на ОС Linux Ubuntu server 12.04 LTS. В этой статье я опишу как установить и произвести первичную настройку nginx+apache2, eaccelerator, memcached, fure-ftpd, php, mysql, phpmyadmin а также панели управления игровыми серверами — open game panel.
Читать дальше →

Open Build Service — создаём свои репозитории

Время на прочтение6 мин
Охват и читатели15K
image
Open Build Service – программное обеспечение с открытым исходным кодом, распространяющееся под лицензией GPL, которое заметно упрощает организацию собственных репозиториев для популярных дистрибутивов Linux и сборку бинарных пакетов.
Читать дальше →

GPL панель управления сервером Vesta

Время на прочтение3 мин
Охват и читатели70K


Сейчас уже сложно сказать, когда именно я начал работу над вестой. Если считать первые скрипты добавления виртуальных хостов в апач, то это был 2007 год. Получается 5 лет тому назад. Помню тогда на работе состоялся примерно такой диалог:
— Ты решил написать свою панель управления?
— Ага, ведь cPanel это ужас, Plesk хоть и лучше, но сильно дорогой. Да и вообще у меня уже почти все готово
— Хм… для того чтобы просто приблизиться к сPanel тебе потребуется минимум 2 года

Не помню, что тогда ответил, но фразу про то, что почти все готово, я повторял еще не раз. Сейчас еще я хочу рассказать что готово в версии 0.9.7
Читать дальше →

Строим Nested Set дерево без рекурсии

Время на прочтение3 мин
Охват и читатели85K
Деревья в базах данных можно хранить тремя основными методами: Adjacency List, Matherialized Path & Nested Set. Когда мы хотим переехать с AL на NS, это можно сделать с помощью рекурсии (если БД расово верная). Но что делать в случае MySQL?
Переехать с AL на NS

Настройка Nginx + LAMP сервера в домашних условиях Часть 2: Настройка backend: PHP + MySQL

Время на прочтение8 мин
Охват и читатели38K
Здравствуйте.

В предыдущей статье, мы познакомились с настройкой связки nginx + apache в режиме хостинга и репозиториями dotdeb.
В этой статье мы познакомимся с настройкой backend: PHP, MySQL.

В части PHP мы познакомимся со следующими темами:
— общая настройка PHP
— правильная настройка PHP + Postfix для отправки писем через внутренний SMTP сервер посредством функции mail(),
— настройка кеширования кода и/или данных на основе APC.

В части MySQL я попробую раскрыть базовые моменты повышения производительности, ибо по умолчанию сервер MySQL настроен очень не эффективно.

Кто заинтересовался, добро пожаловать под кат
Читать дальше →

Собственный сервер Git на базе Ubuntu или Debian/GNU Linux

Время на прочтение2 мин
Охват и читатели81K
Я встречал в сети много tutorial'ов по установке своего сервера git как на gitweb, так и на webdav, но, увы, они либо были только по одному из вышеназванных пунктов, не освещая другой, либо банально не работали. Вчера возникла необходимость поднять свой сервер репозиториев. Потратил пару часов — поднял, теперь хочу поделиться опытом, потому что считаю проблему актуальной :)

Читать дальше →

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность