Поскольку жизнь — боль, то баги встречаются часто… Поставив Gearman на Debian заметил, что конфиг не учитывается демоном, поэтому решил написать как патчить gearman, чтобы демон учитывал конфиги. Сейчас конфиги полностью игнорируются.
Read the rest of this entry »
Linux 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 »
У меня часто бывают ситуации когда нужно рекурсивно поменять права доступа на файлы и/или папки. Делать это через filezilla долго и глупо. Консоль наше всё, да и ближе к сердцу 🙂 Тут нам на помощь приходит find…
Смена прав доступа у папок на 755 внутри папки folder:
# find folder -type d -exec chmod 755 {} \;
Смена прав доступа у файлов на 644 внутри папки folder:
# find folder -type f -exec chmod 644 {} \;
Если в проекте очень много файлов, то проще сменить права доступа файлам и папкам, а потом сменить права только на папках. Это будет быстрее.
# chmod -R 644 /folder # find folder -type d -exec chmod 755 {} \;
Желательно, чтобы у Вашего пользователя хватало прав на смену прав доступа у этих файлов и папок. Самый простой вариант — выполнять эти команды с помощью sudo или под рутом.
Данная заметка о том, как установить 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 не умеет создавать хуки типа post-receive из панели для определенных репозиториев. Но мы на работе используем сервер с GitLab как сервер разработки и нужно, чтобы на сервере крутились проекты, которые мы правим через GitLab.
К счастью, это решаемо и сейчас опишу эти несложные действия.
Read the rest of this entry »
Rsync — программа для UNIX-подобных систем, которая выполняет синхронизацию файлов и каталогов в двух местах с минимизированием трафика, используя кодирование данных при необходимости. Важным отличием rsync от многих других программ/протоколов является то, что зеркалирование осуществляется одним потоком в каждом направлении (а не по одному или несколько потоков на каждый файл). rsync может копировать или отображать содержимое каталога и копировать файлы, опционально используя сжатие и рекурсию. Взято с википедии 🙂
Плюсами rsync есть:
1. Скорость и трафик — синхронизация цепляет только те файлы, которые изменились, а значит нужно передавать меньше файлов и благодаря этому процесс проходит быстрее.
2. Права доступа — rsync переносит файлы с их правами доступа.
3. Скрытые файлы — переносятся также и скрытые файлы и папки.
4. Удобство — процесс синхронизации файлов и папок между серверами выполняется с помощью всего одной команды.
Read the rest of this entry »
Доброго времени суток, уважаемый читатель!
Сегодняшняя заметка будет посвящена 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 »