Поскольку жизнь — боль, то баги встречаются часто… Поставив Gearman на Debian заметил, что конфиг не учитывается демоном, поэтому решил написать как патчить gearman, чтобы демон учитывал конфиги. Сейчас конфиги полностью игнорируются.
Read the rest of this entry »
Настройка сервера Category
Недавно понадобилось развернуть 1С Битрикс на одном из серверов. К сожалению, официально битриксу нужен apache2 или связка nginx + apache2. Решено было поднимать связку. Если бы всё было просто и банально, как всегда, эта статья не существовала бы, но нашлась проблема, о решении которой, я хочу написать, чтобы не наступать на те же грабли в будущем.
Если верить гуглу и докам, то в версии Apache 2.4 есть модуль mod_remoteip, которым можно заменить привычный mod_rpaf. Подключив mod_remoteip увидел, что реальные IP передаются в PHP, но в логах апача вижу только 127.0.0.1. Долго не разбирался и решил настроить mod_rpaf, но и тут поджидал сюрприз — mod_rpaf в Apache 2.4 работает с багом. Если подключить mod_rpaf, то в логах видно реальные IP, а вот PHP и не получает.
Решение было нужно быстро, поэтому были настроены оба модуля, которые дополняли друг друга. Честно скажу, то идея использовать два модуля вместо одного мне не нравится, но тем не менее, проблем в работе пока не вижу. 🙂
Read the rest of this entry »
Сегодня пришлось столкнутся с тем, что на созданной VPS от Hetzner не было файла подкачки, на что начал ругаться Zabbix. Удивился, смирился и подключил. Эта небольшая заметка будет о том, как создать и подключить swap-файл. Всё, ниже написанное нужно выполнять с правами рута.
Read the rest of this entry »
Данная заметка о том, как установить VirtualBox 5 и веб-морду phpVirtualBox на сервер. Понимаю, что это достаточно простая задача, но мне проще, когда всё есть под рукой хотя бы в роли чек листа.
Заметка состоит из трех частей:
1. Установка VirtualBox на сервер
2. Установка phpVirtualBox
3. Создание и настройка виртуального хоста на Nginx
Установка VirtualBox Guest Additions на виртуальную машину будет в отдельной заметке.
Read the rest of this entry »
На одном из проектов я захотел, чтобы обработчиком сессий PHP был Redis. Пробежавшись по просторам инета понял, что не так всё просто. Если переключить на memcached — это дело редактирования двух строк, то с redis не так просто и нужно ставить дополнительную либу для PHP. Кстати, ее сборка уже проскакивала в одной из старых заметок — Установка Redis + Redis PHP на Debian 6.
Установка Redis
Поставить redis сейчас намного проще, чем написано в той старой статье. Достаточно выполнить команду:
# apt-get install redis-server
Сборка и установка phpredis для PHP
C phpredis уже куда интереснее… Сначала нужно скачать исходники с репозитория в папку /tmp и перейти в нее:
# cd /tmp # git clone git://github.com/nicolasff/phpredis.git # cd phpredis
Понадобилось было сделать резервные копии проекта на сервере Hetzner-а. У них есть бесплатные 100Гб на ихнем сервере для хранения бекапов. Решение было простое — примонтировать папку с сервера бекапов и простым скриптом ложить в нее бекапы. Тут речь пойдет именно о монтировании, поскольку оно отличается от привычного для меня на Debian.
Сначала нужно поставить доп.пакет:
# yum install cifs-utils
Создадим папку для понтирования:
# mkdir /FOLDER
Доброго времени суток, уважаемый читатель!
Сегодняшняя заметка будет посвящена GitLab.
GitLab — платформа с открытым исходным кодом для организации совместной работы с Git-репозиториями. По своим возможностям это GitHub, но на домашнем или корпоративном сервере для личных нужд. Функционал, внешний вид и удобство шикарны! 🙂
В из дней на работе встала задача перестройки внутренней инфраструктуры и одним из пожеланий была удобная работа с репозиториями Git-а. Легко и быстро создавать репозитории, возможность просматривать исходные коды проектов и писать комментарии к кускам кода прямо там.
После гугления данного вопроса пришел к выводу, что под данную задачу шикарно вписывается GitLab и полез пробовать его ставить. Скажу честно, что убил на это полтора дня и 5 виртуальных серверов (тестил много и пытался соорудить трехколесный велосипед на квадратных колесах).
Первым делом полез в документацию и нашел мануалы по установке. Их было два: установка готового deb-пакета и ручная установка. Попробовав готовый пакет я понял, что это не то, что мне нужно. Я хотел иметь полный контроль над софтом и использоваться должен был MySQL, а не PostgreSQL. Поэтому пришлось обратится к мануалу по ручной установке. С ним то и возникли некоторые сложности, которые заставили написать эту заметку на будущее. В целом я опишу всю установку GitLab, но половина будет взята по сути из официального мануала.
Для работы GitLab будут установлены:
— Nginx 1.6.2
— Redis 2.8
— Ruby 2.1.5
— MySQL 5.6
— Git 1.7.10
— Postfix 2.9.6
Read the rest of this entry »
В данной связке Nginx будет выступать фронтендом для Apache. То есть, все подключения будут поступать к нему, а он уже будет их фильтровать и по надобности отправлять к апачу. Плюсом данной связки является возможность использования конфигурационных файлов .htaccess, которые очень часто используются и разрабатывать сайты стоит с учетом данного фактора. А производительность… Связка Nginx + Nginx будет производительнее, хотя это и так понятно 🙂
Про установку Nginx написано в заметке Установка Nginx на Debian 6.
Теперь ставим Apache 2.2:
# apt-get install apache2
Меняем в конфигах apache порт на какой-то другой. Для примера примем порт 81. Все виртуальных хосты апача должны быть настроены на этот порт.
# nano /etc/apache2/ports.conf
Поскольку у апача сейчас есть только дефолтный хост, то сделаем, чтобы он работал на связке Apache + Nginx. Поменяем ему порт на 81:
Read the rest of this entry »
Завершающим этапом сегодняшнего знакомства с Gearman решил сделать добаление графиков статистики Gearman в Munin. В интернете нашел несколько плагин на Perl.
Общая процедура установки плагина.
1. Создать файл плагина и вставить в него код:
# nano /usr/share/munin/plugins/gearman_queue
2. Дать права на выполнение:
# chmod +x /usr/share/munin/plugins/gearman_queue
3. Включить плагин сделав ссылку на него:
# ln -s /usr/share/munin/plugins/gearman_queue /etc/munin/plugins/gearman_queue
4. Перезагрузить сервис:
# service munin-node restart
Через несколько минут графики появятся 🙂
Gearman — это менеджер очередей для синхронного и асинхронного выполнения задач. Читал о нем давно, но сегодня посчасливилось с ним познакомится более тесно 🙂
Приложение написано на PHP и имеет свои нюансы, поэтому я не буду приводить код и посоветую ознакомится с базовой реализацией из доков.
Установка Gearman и модуля для PHP
Первым делом поставим сам Gearman и модуль для PHP. Установка достаточно простая:
# apt-get install gearman php5-gearman
На этом было бы всё, если бы не одно НО…
Supervisord
Gearman получает задания от клиента и передает в работу воркеру, который должен постоянно работать и проверять есть ли что-то в очереди на выполнение. Воркер у меня на PHP, значит нужно заставить сркипт работать в фоновом режиме постоянно.
Read the rest of this entry »