{
    "version": "https:\/\/jsonfeed.org\/version\/1.1",
    "title": "Аникин: заметки с тегом ubuntu",
    "_rss_description": "Блог об администрировании Linux, BSD и не только",
    "_rss_language": "ru",
    "_itunes_email": "",
    "_itunes_categories_xml": "",
    "_itunes_image": "",
    "_itunes_explicit": "",
    "home_page_url": "https:\/\/anikin.pw\/tags\/ubuntu\/",
    "feed_url": "https:\/\/anikin.pw\/tags\/ubuntu\/json\/",
    "icon": "https:\/\/anikin.pw\/pictures\/userpic\/userpic@2x.jpg?1478690884",
    "authors": [
        {
            "name": "Петр Аникин",
            "url": "https:\/\/anikin.pw\/",
            "avatar": "https:\/\/anikin.pw\/pictures\/userpic\/userpic@2x.jpg?1478690884"
        }
    ],
    "items": [
        {
            "id": "80",
            "url": "https:\/\/anikin.pw\/all\/standartnoe-yadro-v-ovh\/",
            "title": "Стандартное ядро в OVH",
            "content_html": "<p>В OVH по умолчанию ставится модифицированное датацентром ядро, в котором нет многих нужных модулей. И некоторое ПО не работает. Например virtualbox не запускается с ошибкой типа:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">ERROR ..\/libkmod\/libkmod-module.c:1638 kmod_module_new_from_loaded: could not open \/proc\/modules: No such file or directory<\/code><\/pre><p>К тому же ядро в образах ДЦ зачастую уже «протухшее».<\/p>\n<p>Чтобы все заработало как надо, нужно поставить стандартное ядро из реп.<br \/>\nСмотрим какие ядра есть у нас в репозиториях<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># apt search linux-image<\/code><\/pre><p>Выбираем стандартное ядро stable и устанавливаем.<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># apt install linux-image-3.16.0-4-amd64 linux-headers-3.16.0-4-amd64<\/code><\/pre><p>Затем в \/etc\/default\/grub правим диррективу GRUB_DEFAULT чтобы сервер грузился с нашего ядра.<br \/>\nДелаем<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">update-grub<\/code><\/pre><p>и ребутимся<\/p>\n<p>Если все работает правильно, ядро OVH можно вообще удалить.<\/p>\n",
            "date_published": "2017-05-05T13:29:36+03:00",
            "date_modified": "2017-05-05T20:37:47+03:00",
            "tags": [
                "debian",
                "Kernel",
                "ovh",
                "ubuntu",
                "virtualbox"
            ],
            "_date_published_rfc2822": "Fri, 05 May 2017 13:29:36 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "80",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "highlight\/highlight.js",
                    "highlight\/highlight.css"
                ],
                "og_images": []
            }
        },
        {
            "id": "78",
            "url": "https:\/\/anikin.pw\/all\/menedzher-versiy-php\/",
            "title": "Менеджер версий php для Debian\/Ubuntu.",
            "content_html": "<p><b>Скрипт мультиверсионности мной более не поддерживается, т.к в новых версиях дебиан все сложнее автоматизировать установку старых версий php. Поэтому php 5 собирайте руками. Либо проходите по <a href=\"https:\/\/anikin.pw\/all\/virtualki-v-rf\/\">ссылке<\/a>.<\/b><\/p>\n<p>Выкладываю мой скрипт который поможет установить несколько версий php из исходных кодов на ваш сервер. Скрипт делался в первую очередь для Debian и проверялся на Debian 8 x64. Но работает и на Ubuntu. Удобно с помощью скрипта поддерживать актуальные версии php на сервере с вестой, т.к скрипт умеет автоматически обновлять шаблоны весты при сборке.<br \/>\nНа debian 7\/8 с моими флагами установки без проблем собираются php 5.2 и выше.<br \/>\nНа ubuntu 14.04\/16.04 по умолчанию собираются php 5.3 и выше. 5.2 при компиляции валится с ошибкой. Поэтому если нужен 5.2 юзайте дебиан.<br \/>\nЧто делает скрипт:<\/p>\n<ol start=\"1\">\n<li>При запуске спрашивает какие версии php требуется собрать(версию нужно вводить полностью. Например 7.1.2, а не 7.1. Можно ввести несколько версий через пробел), создавать ли на бинарник php-cgi симлинк в \/usr\/bin для быстрого доступа. Проверяет наличие на сервере панели vestacp. Если находит её, то спрашивает создавать ли шаблон web для каждой версии.<\/li>\n<li>При первом запуске спрашивает, нужно ли ставить зависимости. Если вы откажетесь от установки зависимостей, то вам нужно их установить самостоятельно. Иначе при сборке вы получите ошибки. При последующих запусках этот шаг пропускается. Нужно понимать что скрипт старается поставить все возможные зависимости, но в разных дистрибутивах могут использоваться разные пакеты или при использовании кастомных флагов компиляции может потребоваться что-то доустановить.<\/li>\n<li>Парсит <a href=\"http:\/\/php.net\/downloads.php\">http:\/\/php.net\/downloads.php<\/a> и <a href=\"http:\/\/php.net\/releases\/\">http:\/\/php.net\/releases\/<\/a> на наличие bz2 архива с исходниками указанной юзером версии php. Если находит, скачивает и распаковывает исходники в \/opt\/php\/src.<br \/>\n<details><br \/>\n<summary><\/summary><br \/>\nТакже можно положить архивы с иходниками в \/opt\/php\/src\/bzips, тогда скрипт не будет их скачивать.<br \/>\n<\/details><\/li>\n<li>Конфигурит, по умолчанию с моими параметрами компиляции(подойдут для большинства пользователей). Собирает.<br \/>\n<details><br \/>\n<summary><b>Тем кто хочет использовать свои параметры компиляции обязательно кликнуть сюда<\/b><\/summary><br \/>\nМожно свои параметры конфигурирования положить в файл \/opt\/php\/options. Если скрипт находит этот файл, то он использует его  для конфигурирования. Свой файл можно сделать на основе <a href=\"https:\/\/anikin.pw\/files\/options\">моего<\/a>. Скрипт заменяет <b>version<\/b> в файле конфигурирования на текущую собираемую версию. Это сделано для того чтобы скрипт автоматом создавал свой каталог для каждой версии. Если вы собираете например версию 5.3.29 и в вашем файле конфигурирования указано prefix=\/opt\/php\/php-version, то это по сути равно prefix=\/opt\/php\/php-5.3.29. При сборке нескольких версий одновременно эту фичу нужно использовать чтобы не собирать все версии в один каталог.<br \/>\n<\/details><\/li>\n<li>При необходимости создает симлинк и шаблон для весты. Если создает темплейты для весты, то проверяет включен ли модуль cgi  в апаче. Если модуль не включен, то включает его.<\/li>\n<\/ol>\n<p>Запустить скрипт очень просто<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># git clone https:\/\/github.com\/petranikin\/mgrvphp.git\n# cd mgrvphp\n# bash mgrvphp<\/code><\/pre><p>Немного скриншотов<\/p>\n<div class=\"e2-text-picture\">\n<div class=\"fotorama\" data-width=\"1068\" data-ratio=\"1.5300859598854\">\n<img src=\"https:\/\/anikin.pw\/pictures\/-_2017-03-18_16-15-49.png\" width=\"1068\" height=\"698\" alt=\"\" \/>\n<img src=\"https:\/\/anikin.pw\/pictures\/-_2017-03-18_16-16-20.png\" width=\"1068\" height=\"698\" alt=\"\" \/>\n<img src=\"https:\/\/anikin.pw\/pictures\/-_2017-03-18_16-17-12.png\" width=\"1068\" height=\"698\" alt=\"\" \/>\n<img src=\"https:\/\/anikin.pw\/pictures\/-_2017-03-18_16-18-08.png\" width=\"1068\" height=\"698\" alt=\"\" \/>\n<img src=\"https:\/\/anikin.pw\/pictures\/-_2017-03-18_17-38-08.png\" width=\"1068\" height=\"679\" alt=\"\" \/>\n<img src=\"https:\/\/anikin.pw\/pictures\/-_2017-03-18_17-41-27.png\" width=\"952\" height=\"525\" alt=\"\" \/>\n<\/div>\n<\/div>\n",
            "date_published": "2017-03-18T17:46:31+03:00",
            "date_modified": "2020-04-20T00:56:19+03:00",
            "tags": [
                "debian",
                "mgrvphp",
                "php",
                "php7",
                "phpmgr",
                "ubuntu",
                "vesta control panel",
                "vestacp"
            ],
            "image": "https:\/\/anikin.pw\/pictures\/-_2017-03-18_16-15-49.png",
            "_date_published_rfc2822": "Sat, 18 Mar 2017 17:46:31 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "78",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "highlight\/highlight.js",
                    "highlight\/highlight.css",
                    "jquery\/jquery.js",
                    "fotorama\/fotorama.css",
                    "fotorama\/fotorama.js"
                ],
                "og_images": [
                    "https:\/\/anikin.pw\/pictures\/-_2017-03-18_16-15-49.png",
                    "https:\/\/anikin.pw\/pictures\/-_2017-03-18_16-16-20.png",
                    "https:\/\/anikin.pw\/pictures\/-_2017-03-18_16-17-12.png",
                    "https:\/\/anikin.pw\/pictures\/-_2017-03-18_16-18-08.png",
                    "https:\/\/anikin.pw\/pictures\/-_2017-03-18_17-38-08.png",
                    "https:\/\/anikin.pw\/pictures\/-_2017-03-18_17-41-27.png"
                ]
            }
        },
        {
            "id": "63",
            "url": "https:\/\/anikin.pw\/all\/ustanovka-ispmanager-4-na-ubuntu-14-04\/",
            "title": "Установка ispmanager 4 на Ubuntu 14.04",
            "content_html": "<p>Существует ПО которое работает только под определенной ОС. Так вот понадобилось одному клиенту такое ПО, которое работает только под ubuntu 14.04, но при всем при этом клиенту необходимо чтобы на сервере был установлен ispmanager 4. Как мы знаем ispmanager 4 не поддерживает 14 убунту. Придется выкручиваться.<br \/>\nИтак. Стандартно начинаем установку испы<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">wget &quot;http:\/\/download.ispsystem.com\/install.4.sh&quot;\nsh install.sh<\/code><\/pre><p>Отвечаем на вопросы установщика и практически сразу получаем ошибку<\/p>\n<p><b>Can’t get information about available packages<\/b><\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/anikin.pw\/pictures\/---2016-04-11-17:20:29.png\" width=\"600\" height=\"215\" alt=\"\" \/>\n<\/div>\n<p>Видим в логе что произошел segmentation fault. Ищем какая либа его вызвала.<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">cat \/usr\/local\/ispmgr\/var\/pkgctl.log|grep LoadModule<\/code><\/pre><p>В последней строчке мы увидим эту либу.<\/p>\n<p>Переименовываем её<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">mv \/usr\/local\/ispmgr\/lib\/xxx.so \/usr\/local\/ispmgr\/lib\/_xxx.so<\/code><\/pre><div class=\"e2-text-picture\">\n<img src=\"https:\/\/anikin.pw\/pictures\/---2016-04-11-17:21:59.png\" width=\"915\" height=\"134\" alt=\"\" \/>\n<\/div>\n<p>Затем снова запускаем установку.<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">\/usr\/local\/ispmgr\/sbin\/ISPmanager-install.sh<\/code><\/pre><p>Теперь установка идет относительно нормально, ошибки мы получим только при проверке установленного ПО, т.к панель не умеет работать с апачем 2.4. Ну и ладно, главное панель установилась. Теперь нам нужно установить апач 2.2 вместо 2.4 для корректной работы панели.<br \/>\nАпач 2.2 мы возьмем в репозиториях 12 убунты.<br \/>\nСоздаем файлы с содержимым<br \/>\n<b>\/etc\/apt\/sources.list.d\/ubuntu1204.list<\/b><\/p>\n<pre class=\"e2-text-code\"><code class=\"\">deb http:\/\/ru.archive.ubuntu.com\/ubuntu\/ precise main<\/code><\/pre><p><b>\/etc\/apt\/preferences.d\/apache22<\/b><\/p>\n<pre class=\"e2-text-code\"><code class=\"\">Package: apache*\nPin: release a=precise\nPin-Priority: 500<\/code><\/pre><p><b>\/etc\/apt\/preferences.d\/libapache<\/b><\/p>\n<pre class=\"e2-text-code\"><code class=\"\">Package: libapache*\nPin: release a=precise\nPin-Priority: 500<\/code><\/pre><p>Выполняем<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">apt-get update<\/code><\/pre><p>Затем идем в меню Возможности isp панели и удаляем апач. После удаления нужно подчистить оставшееся за панелью. Выполняем<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">apt-get purge apache2*<\/code><\/pre><p>Все. Теперь идем в меню Возможности и жмакаем установить веб-сервер Apache. Установится apache 2.2. Далее доустанавливаем необходимое ПО, такое как php, phpmyadmin, webmail. Все это ПО не установилось по умолчанию, т.к оно не может работать без апача 2.2. Лучше также сразу установить nginx.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/anikin.pw\/pictures\/---2016-04-11-18:27:54.png\" width=\"1719\" height=\"635\" alt=\"\" \/>\n<\/div>\n<p>Есть ещё один ньюанс, не установится модуль апач для php, соответственно сразу после установки нужно удалить старые конфиги для webmail и phpmyadmin. Создать пользователя default-user и у него домен default.domain, которому разрешён php как cgi. И соответсвенно создать симлинки в каталог виртуалхоста юзера.<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">ln -s \/usr\/share\/squirrelmail\/ \/home\/default-user\/data\/www\/default.domain\/webmail\nln -s \/usr\/share\/phpmyadmin \/home\/default-user\/data\/www\/default.domain\/myadmin<\/code><\/pre><p>Придется смирится что myadmin и webmail будут работать по http, а не по https.<br \/>\nТакже возможно придется поправить некоторые ошибки в конфигах squirrelmail и phpmyadmin, что выходит за пределы этой статьи.<\/p>\n<p>А вообще лучше не использовать все эти пляски с бубном, и отказаться от устаревшей продукции isp. Например в пользу <a href=\"http:\/\/anikin.pw\/all\/obzor-besplatnoy-paneli-upravlenia-hostingom-vestacp\/\">панели VestaCP<\/a>.<\/p>\n",
            "date_published": "2016-04-11T18:09:15+03:00",
            "date_modified": "2016-04-11T23:02:28+03:00",
            "tags": [
                "isp",
                "isp-manager",
                "ispmanager",
                "ispmgr",
                "ubuntu"
            ],
            "_date_published_rfc2822": "Mon, 11 Apr 2016 18:09:15 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "63",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "highlight\/highlight.js",
                    "highlight\/highlight.css"
                ],
                "og_images": []
            }
        },
        {
            "id": "64",
            "url": "https:\/\/anikin.pw\/all\/multiversionnost-php-na-servere-s-vestacp\/",
            "title": "Мультиверсионность php на сервере с VestaCP.",
            "content_html": "<p><a href=\"https:\/\/anikin.pw\/all\/menedzher-versiy-php\/\">Можно использовать скрипт который упрощает установку разных версий php<\/a><br \/>\nСделаем возможность использовать несколько разных версий php на одном сервере c Ubuntu 14.04 и VestaCP. Возможность переключать версию php будет для каждого сайта отдельно. По умолчанию в ubuntu 14.04.4 с вестой установился php 5.5.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/anikin.pw\/pictures\/---2016-04-11-13:09:42.png\" width=\"1255\" height=\"533\" alt=\"\" \/>\n<\/div>\n<p>Все действия производятся под root’ом.<br \/>\nСоберем старый php 5.4.<br \/>\nУстановим необходимые пакеты.<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">apt-get build-dep -y php5\napt-get install libt1-dev libonig-dev libmcrypt-dev libreadline-dev<\/code><\/pre><p>Создаем каталог для исходников<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">mkdir \/php\/\nmkdir \/php\/src<\/code><\/pre><p>Скачиваем туда сорцы с <a href=\"http:\/\/php.net\">http:\/\/php.net<\/a>.<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">wget -O \/php\/src\/php-5.4.45.tar.bz2 http:\/\/de1.php.net\/get\/php-5.4.45.tar.bz2\/from\/this\/mirror\ncd \/php\/src\/\ntar -xjf php-5.4.45.tar.bz2\ncd php-5.4.45<\/code><\/pre><p>И создаем каталог куда будем собирать php<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">mkdir \/php\/php54<\/code><\/pre><p>Конфигурим(обратите внимание на переменную —prefix=, она указывает на каталог куда собираем php)<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">.\/configure \\\n--prefix=\/php\/php54 \\\n--with-config-file-path=\/etc \\\n--with-regex=php \\\n--disable-rpath \\\n--disable-static \\\n--with-pic \\\n--with-layout=GNU \\\n--enable-calendar \\\n--enable-sysvsem \\\n--enable-sysvshm \\\n--enable-sysvmsg \\\n--enable-bcmath \\\n--with-bz2 \\\n--enable-ctype \\\n--with-cdb \\\n--with-iconv \\\n--enable-exif \\\n--enable-ftp \\\n--with-gettext \\\n--enable-mbstring \\\n--with-onig=\/usr \\\n--with-pcre-regex=\/usr \\\n--enable-shmop \\\n--enable-sockets \\\n--enable-wddx \\\n--with-libxml-dir=\/usr \\\n--with-zlib \\\n--with-kerberos=\/usr \\\n--with-openssl=\/usr \\\n--enable-soap \\\n--enable-zip \\\n--with-mhash=yes \\\n--with-mysql-sock=\/var\/run\/mysqld\/mysqld.sock \\\n--with-mysql=mysqlnd \\\n--with-mysqli=mysqlnd \\\n--enable-pdo \\\n--with-pdo-mysql=mysqlnd \\\n--enable-exif \\\n--with-jpeg-dir=\/usr \\\n--with-png-dir=\/usr \\\n--with-freetype-dir=\/usr \\\n--with-t1lib \\\n--with-zlib-dir=\/usr \\\n--with-mcrypt=\/usr \\\n--with-mhash \\\n--with-xsl=\/usr \\\n--enable-zip \\\n--enable-cgi \\\n--with-curl \\\n--with-gd \\\n--enable-pcntl \\\n--enable-mbregex \\\n--enable-gd-native-ttf \\\n--with-libdir=lib64 \\\n--enable-dba=shared \\\n--enable-intl \\\n--with-readline=\/usr \\\n--enable-simplexml \\\n--with-libdir=\/lib\/x86_64-linux-gnu \\\n--with-config-file-scan-dir=&quot;$instdir&quot;\/etc \\\n--with-pspell<\/code><\/pre><p>Компиляем<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">make\nmake install<\/code><\/pre><p>Включаем модуль cgi для апача<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">a2enmod cgi<\/code><\/pre><p>Переключать будем шаблонами apache. Скопируем существующий шаблон phpcgi<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">cp \/usr\/local\/vesta\/data\/templates\/web\/apache2\/phpcgi.sh \/usr\/local\/vesta\/data\/templates\/web\/apache2\/php54.sh\ncp \/usr\/local\/vesta\/data\/templates\/web\/apache2\/phpcgi.stpl \/usr\/local\/vesta\/data\/templates\/web\/apache2\/php54.stpl\ncp \/usr\/local\/vesta\/data\/templates\/web\/apache2\/phpcgi.tpl \/usr\/local\/vesta\/data\/templates\/web\/apache2\/php54.tpl<\/code><\/pre><p>Открываем файл \/usr\/local\/vesta\/data\/templates\/web\/apache2\/php54.sh и находим там строку<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">wrapper_script='#!\/usr\/bin\/php-cgi -cphp5-cgi.ini'<\/code><\/pre><p>заменяем на<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">wrapper_script='#!\/php\/php54\/bin\/php-cgi -cphp5-cgi.ini'<\/code><\/pre><p>И перезапускаем весту<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">service vesta restart<\/code><\/pre><p>Теперь если зайти в весте в редактирование домена в web, то в шаблонах апача можно увидеть новый шаблон php54. Можно попробовать переключится.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/anikin.pw\/pictures\/---2016-04-11-13:08:59.png\" width=\"386\" height=\"405\" alt=\"\" \/>\n<\/div>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/anikin.pw\/pictures\/---2016-04-11-13:10:07.png\" width=\"1283\" height=\"733\" alt=\"\" \/>\n<\/div>\n<p>Аналогично собираем php 5.6 и php 7.0, в каталоги \/php\/php56 и \/php\/php70 соответсвенно. И создаем для них шаблоны php56 и php70. Конфигурирование для php7 несколько отличается от php5. Мои параметры для конфигурирования есть в <a href=\"http:\/\/anikin.pw\/all\/sborka-php-7-na-debian-8-jessie\/\">этой статье<\/a>.<\/p>\n<p>В результате этих манипуляций у нас появятся новые шаблоны php54, php56 и php70, с соответсвующими версиями php. Теперь для каждого домена мы можем выбрать любую версию php от 5.4 до 7.0. С выходом новых версий их можно добавлять к текущим таким же способом.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/anikin.pw\/pictures\/---2016-04-11-13:57:27.png\" width=\"355\" height=\"483\" alt=\"\" \/>\n<\/div>\n<div class=\"e2-text-picture\">\n<div class=\"fotorama\" data-width=\"1258\" data-ratio=\"1.6444444444444\">\n<img src=\"https:\/\/anikin.pw\/pictures\/---2016-04-11-13:58:11.png\" width=\"1258\" height=\"765\" alt=\"\" \/>\n<img src=\"https:\/\/anikin.pw\/pictures\/---2016-04-11-13:58:34.png\" width=\"1257\" height=\"620\" alt=\"\" \/>\n<img src=\"https:\/\/anikin.pw\/pictures\/---2016-04-11-13:58:55.png\" width=\"1427\" height=\"648\" alt=\"\" \/>\n<img src=\"https:\/\/anikin.pw\/pictures\/---2016-04-11-13:59:19.png\" width=\"1430\" height=\"648\" alt=\"\" \/>\n<\/div>\n<\/div>\n",
            "date_published": "2016-04-11T13:59:31+03:00",
            "date_modified": "2017-03-18T20:30:20+03:00",
            "tags": [
                "php",
                "php7",
                "ubuntu",
                "vesta control panel",
                "vestacp"
            ],
            "_date_published_rfc2822": "Mon, 11 Apr 2016 13:59:31 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "64",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "highlight\/highlight.js",
                    "highlight\/highlight.css",
                    "jquery\/jquery.js",
                    "fotorama\/fotorama.css",
                    "fotorama\/fotorama.js"
                ],
                "og_images": []
            }
        },
        {
            "id": "60",
            "url": "https:\/\/anikin.pw\/all\/ustanovka-virtualbox-s-web-interfeysom-na-server\/",
            "title": "Установка virtualbox с web-интерфейсом на сервер.",
            "content_html": "<p>Имеем сервер на ubuntu 14.04. Нужно установить virtualbox с веб интерфейсом, чтобы установить несколько виртуальных машин на сервер.<br \/>\n<a href=\"https:\/\/anikin.pw\/all\/skript-ustanovki-virtualbox-s-veb-interfeysom-na-server\/\"><b>Скрипт автоустановки для ленивых<\/b><\/a><\/p>\n<h2>Установка virtualbox.<\/h2>\n<p>Для начала установим сам virtualbox последней версии с репозиториев oracle.<br \/>\nДобавляем репозиторий и импортируем ключ<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># echo &quot;deb http:\/\/download.virtualbox.org\/virtualbox\/debian $(lsb_release -sc) contrib&quot; | sudo tee -a \/etc\/apt\/sources.list\n# wget -q https:\/\/www.virtualbox.org\/download\/oracle_vbox.asc -O- | sudo apt-key add -<\/code><\/pre><p>Устанавливаем virtualbox и модули ядра<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># apt-get update\n# apt-get install dkms virtualbox-5.0<\/code><\/pre><p>Установим пакет дополнений гостевой ОС. Смотрим версию virtualbox<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># vboxwebsrv -V\nOracle VM VirtualBox web service Version 5.0.2\n(C) 2007-2015 Oracle Corporation\nAll rights reserved.\n5.0.2r102096<\/code><\/pre><p>И на <a href=\"http:\/\/download.virtualbox.org\/virtualbox\/\">этой странице<\/a> берем ссылку для дополнений для нужной нам версии.<br \/>\nСкачиваем<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># wget http:\/\/download.virtualbox.org\/virtualbox\/5.0.2\/Oracle_VM_VirtualBox_Extension_Pack-5.0.2-102096.vbox-extpack<\/code><\/pre><p>И устанавливаем<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-5.0.2-102096.vbox-extpack<\/code><\/pre><p>Теперь создадим юзера, под которым будут работать наши виртуальные машины и добавим его в группу vboxusers<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># adduser vbox\n# usermod -a -G vboxusers 'vbox'<\/code><\/pre><p>Не забываем пароль, который мы назначили пользователю vbox. Он нам ещё потребуется.<br \/>\nНастраиваем веб-сервис virtualbox<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># nano \/etc\/default\/virtualbox<\/code><\/pre><pre class=\"e2-text-code\"><code class=\"\">VBOXWEB_USER=vbox #пользователь под которым работает virtualbox\nVBOXWEB_HOST=xxx.xxx.xxx.xxx #ip\nVBOXWEB_PORT=18083 #порт для веб-сервиса<\/code><\/pre><p>Запускаем веб-сервис<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># service vboxweb-service stop\n# service vboxweb-service start<\/code><\/pre><h2>Установка web-интервейса.<\/h2>\n<p>Для работы веб интерфейса нам потребуется веб-сервер(мы будем использовать nginx) и php. Установим их.<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># apt-get install nginx php5-common php5-fpm php-pear<\/code><\/pre><p><details><br \/>\n<summary><b>Для ubuntu 16.04 кликнуть сюда<\/b><\/summary><\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># apt-get install nginx php-common php-fpm php-pear php-soap<\/code><\/pre><p><\/details><br \/>\nСоздадим каталог для виртуального хоста.<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># mkdir \/var\/www &amp;&amp; mkdir \/var\/www\/phpvirtualbox<\/code><\/pre><p>На <a href=\"http:\/\/sourceforge.net\/projects\/phpvirtualbox\/files\/\">этой странице<\/a> мы можем получить ссылки на архивы веб-интерфейса phpvirtualbox для разных версий virtualbox. В данном случае скачиваем и распаковываем в каталог виртуального хоста phpvirtualbox для нашей версии.<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># cd \/var\/www\/phpvirtualbox\/ &amp;&amp; wget http:\/\/sourceforge.net\/projects\/phpvirtualbox\/files\/phpvirtualbox-5.0-2.zip\/download &amp;&amp; mv download phpvirtualbox-5.0-2.zip\n# unzip phpvirtualbox-5.0-2.zip &amp;&amp; mv .\/phpvirtualbox-5.0-2\/* \/var\/www\/phpvirtualbox<\/code><\/pre><p>Копируем пример конфига<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># cp \/var\/www\/phpvirtualbox\/config.php-example \/var\/www\/phpvirtualbox\/config.php<\/code><\/pre><p>И редактируем<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># nano \/var\/www\/phpvirtualbox\/config.php<\/code><\/pre><pre class=\"e2-text-code\"><code class=\"\"># Пользователь и пароль под которым работает virtualbox\nvar $username = 'vbox';\nvar $password = 'PaS$w0rd';\n\n# Адрес веб-сервиса\nvar $location = 'http:\/\/xxx.xxx.xxx.xxx:18083\/';\n\n# Диапазон rdp портов\nvar $vrdeports = '9000-9100';\n\n# IP сервера\nvar $consoleHost = 'xxx.xxx.xxx.xxx';<\/code><\/pre><p>Создаем файл виртуального хоста в nginx<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># nano \/etc\/nginx\/conf.d\/phpvirtualbox.conf<\/code><\/pre><pre class=\"e2-text-code\"><code class=\"\">server {\n        listen   xxx.xxx.xxx.xxx:80;\n \n        root \/var\/www\/phpvirtualbox\/;\n        index index.php index.html index.htm;\n \n        location \/ {\n                # First attempt to serve request as file, then\n                # as directory, then fall back to index.html\n                try_files $uri $uri\/ \/index.html;\n                # Uncomment to enable naxsi on this location\n                # include \/etc\/nginx\/naxsi.rules\n        }\n \n \n        # pass the PHP scripts to FastCGI server listening on 1$\n        #\n        location ~ \\.php$ {\n                try_files $uri =404;\n                fastcgi_split_path_info ^(.+.php)(.*)$;\n                fastcgi_pass unix:\/var\/run\/php5-fpm.sock;\n                fastcgi_index index.php;\n                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;\n                include fastcgi_params;\n        }\n \n}<\/code><\/pre><p><details><br \/>\n<summary><b>Для ubuntu 16.04 конфиг такой<\/b><\/summary><\/p>\n<pre class=\"e2-text-code\"><code class=\"\">server {\n        listen   XXX.XXX.XXX.XXX:80;\n\n        root \/var\/www\/phpvirtualbox\/;\n        index index.php index.html index.htm;\n\n        location \/ {\n                # First attempt to serve request as file, then\n                # as directory, then fall back to index.html\n                try_files $uri $uri\/ \/index.html;\n                # Uncomment to enable naxsi on this location\n                # include \/etc\/nginx\/naxsi.rules\n        }\n\n\n        # pass the PHP scripts to FastCGI server listening on 1$\n        #\n        location ~ \\.php$ {\n                try_files $uri =404;\n                fastcgi_split_path_info ^(.+.php)(.*)$;\n                fastcgi_pass unix:\/var\/run\/php\/php7.0-fpm.sock;\n                fastcgi_index index.php;\n                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;\n                include fastcgi_params;\n        }\n\n}<\/code><\/pre><p><\/details><br \/>\nПерезапускаем nginx<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># service nginx restart<\/code><\/pre><p>Теперь перейдя по адресу <a href=\"http:\/\/ip-сервера\/\">http:\/\/ip-сервера\/<\/a> мы увидим форму логина. По умолчанию логин — admin и пароль — admin. Логинимся, открываем меню File, пункт Preferences и меняем пароль в графе Users. В графе Language можно поставить русский язык.<\/p>\n<div class=\"e2-text-picture\">\n<div class=\"fotorama\" data-width=\"949\" data-ratio=\"1.6886120996441\">\n<img src=\"https:\/\/anikin.pw\/pictures\/---2015-09-03-16:24:05.png\" width=\"949\" height=\"562\" alt=\"\" \/>\n<img src=\"https:\/\/anikin.pw\/pictures\/---2015-09-03-16:24:40.png\" width=\"1504\" height=\"857\" alt=\"\" \/>\n<img src=\"https:\/\/anikin.pw\/pictures\/---2015-09-03-16:24:55.png\" width=\"356\" height=\"337\" alt=\"\" \/>\n<img src=\"https:\/\/anikin.pw\/pictures\/---2015-09-03-16:25:11.png\" width=\"917\" height=\"518\" alt=\"\" \/>\n<\/div>\n<\/div>\n<h2>Установка виртуальной машины.<\/h2>\n<p>Скачиваем установочный образ нужной нам ОС(в данном случае debian 8) в домашний каталог юзера vbox<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># cd \/home\/vbox\/\n# wget http:\/\/mirror.yandex.ru\/debian-cd\/8.1.0\/amd64\/iso-cd\/debian-8.1.0-amd64-CD-1.iso<\/code><\/pre><p>Затем в веб-интерфейсе, кликаем кнопку создать и создаем виртуальную машину с нужными нам характеристиками.<\/p>\n<div class=\"e2-text-picture\">\n<div class=\"fotorama\" data-width=\"709\" data-ratio=\"1.7420147420147\">\n<img src=\"https:\/\/anikin.pw\/pictures\/---2015-09-03-17:26:55.png\" width=\"709\" height=\"407\" alt=\"\" \/>\n<img src=\"https:\/\/anikin.pw\/pictures\/---2015-09-03-17:27:15.png\" width=\"707\" height=\"405\" alt=\"\" \/>\n<img src=\"https:\/\/anikin.pw\/pictures\/---2015-09-03-17:27:41.png\" width=\"705\" height=\"453\" alt=\"\" \/>\n<\/div>\n<div class=\"e2-text-caption\">Переходим в настройки виртуальной машины — Дисплей. И во вкладке «Удаленный дисплей» включаем доступ по rdp с нужными нам данными авторизации и портом.<\/div>\n<\/div>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/anikin.pw\/pictures\/---2015-09-03-17:35:09.png\" width=\"914\" height=\"507\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Запускаем нашу виртуальную машину. При первом запуске она спросит установочный iso образ, который мы скачали в домашний каталог пользователя vbox.<\/div>\n<\/div>\n<div class=\"e2-text-picture\">\n<div class=\"fotorama\" data-width=\"708\" data-ratio=\"1.7481481481481\">\n<img src=\"https:\/\/anikin.pw\/pictures\/---2015-09-03-17:39:41.png\" width=\"708\" height=\"405\" alt=\"\" \/>\n<img src=\"https:\/\/anikin.pw\/pictures\/---2015-09-03-17:39:57.png\" width=\"411\" height=\"607\" alt=\"\" \/>\n<img src=\"https:\/\/anikin.pw\/pictures\/---2015-09-03-17:40:08.png\" width=\"707\" height=\"408\" alt=\"\" \/>\n<\/div>\n<div class=\"e2-text-caption\">После запуска виртуальной машины мы можем подключится любым rdp клиентом к хост-машине по порту указанному в настройках удаленного дисплея и продолжить установку как обычно. Также можно подключится прямо через веб-интерфейс, просто кликнув «Консоль» справа сверху.<\/div>\n<\/div>\n<div class=\"e2-text-picture\">\n<div class=\"fotorama\" data-width=\"640\" data-ratio=\"1.259842519685\">\n<img src=\"https:\/\/anikin.pw\/pictures\/---2015-09-03-17:40:55.png\" width=\"640\" height=\"508\" alt=\"\" \/>\n<img src=\"https:\/\/anikin.pw\/pictures\/---2015-09-03-17:57:10.png\" width=\"1913\" height=\"980\" alt=\"\" \/>\n<\/div>\n<\/div>\n",
            "date_published": "2015-09-03T17:40:36+03:00",
            "date_modified": "2018-02-14T14:04:19+03:00",
            "tags": [
                "phpvirtualbox",
                "ubuntu",
                "virtualbox"
            ],
            "_date_published_rfc2822": "Thu, 03 Sep 2015 17:40:36 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "60",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "highlight\/highlight.js",
                    "highlight\/highlight.css",
                    "jquery\/jquery.js",
                    "fotorama\/fotorama.css",
                    "fotorama\/fotorama.js"
                ],
                "og_images": []
            }
        },
        {
            "id": "54",
            "url": "https:\/\/anikin.pw\/all\/izoliruem-polzovatelya-ssh-v-domashney-direktorii-s-pomoschyu-ls\/",
            "title": "Изолируем пользователей ssh в домашней директории с помощью lshell",
            "content_html": "<p>Установим lshell, он есть в репозиториях большинства дистрибутивов. Установка для дебианоподобных дистров:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># apt-get install lshell<\/code><\/pre><p>Затем открываем конфигурационный файл и редактируем<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># nano \/etc\/lshell.conf<\/code><\/pre><p>Там в основном все просто и понятно, обратим внимания на некоторые переменные в разделе [default].<br \/>\nКоманды разрешённые для выполнения:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">allowed         : ['ls','echo','cd','ll','rsync','mkdir']<\/code><\/pre><p>В allowed нельзя вписывать программы которые умеют бродить по каталогам например mc, т.к из lshell выполнение передается в bash и такие программы смогут выйти за пределы домашнего каталога. Поэтому тут будьте внимательны.<\/br><br \/>\nКоманды которые можно выполнять через ssh:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">overssh         : ['ls','rsync']<\/code><\/pre><p>В конце конфигурационного файла можно указать индивидуальные настройки для определенного юзера примерно так:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">[user]\nallowed: ['ls','echo','cd','ll','rsync','mkdir','cp','mv']\npath: ['\/backups']\noverssh: ['ls', 'rsync']<\/code><\/pre><p>Тут например мы разрешили пользователю user выполнять команды указанные в allowed, кроме домашней папки он может ходить в \/backups, и может выполнять по ssh ls и rsync.<\/br><br \/>\nПосле редактирования сохраняемся и и закрываем файл.<br \/>\nТеперь нужно изменить shell у пользователей, которых мы ограничиваем.<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># chsh -s \/usr\/bin\/lshell user\n# chsh -s \/usr\/bin\/lshell user1\n# chsh -s \/usr\/bin\/lshell user2\n.....<\/code><\/pre><p>Теперь пробуем зайти по ssh user’ом и проверяем, что он изолирован в домашней папке и может выполнять только команды указанные в allowed.<\/p>\n",
            "date_published": "2015-04-01T16:20:07+03:00",
            "date_modified": "2015-04-01T16:29:10+03:00",
            "tags": [
                "centos",
                "debian",
                "lshell",
                "ssh",
                "ubuntu"
            ],
            "_date_published_rfc2822": "Wed, 01 Apr 2015 16:20:07 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "54",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "highlight\/highlight.js",
                    "highlight\/highlight.css"
                ],
                "og_images": []
            }
        },
        {
            "id": "51",
            "url": "https:\/\/anikin.pw\/all\/perenos-linux-na-drugoy-disk-na-primere-debian-ubuntu\/",
            "title": "Перенос linux на другой диск на примере debian\/ubuntu",
            "content_html": "<p>Навеяно статьей про <a href=\"http:\/\/anikin.pw\/all\/perenos-freebsd-na-drugoy-zhestkiy-disk\/\">перенос freebsd на другой диск<\/a>. Будем делать тоже самое но на linux. В linux все несколько сложнее.<\/p>\n<p>Для начала нужно подсоединить новый диск и загрузится. В системе должны присутствовать 2 диска, первый с нашей системой, а второй пустой. Второй мы можем разметить по своему усмотрению или же скопировать разметку с первого диска(если второй диск идентичен первому). Как скопировать разметку можно прочесть <a href=\"http:\/\/anikin.pw\/all\/zamena-dika-v-programnom-raid1-v-linux\/#parttabl\">здесь<\/a>. Как разметить вручную думаю разберётесь сами, благо мануалов в интернете полно. После создания разметки разделы надо отформатировать примерно так.<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># mkfs.ext4 \/dev\/sdb1<\/code><\/pre><p>Затем примонтируем его в \/mnt<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># mount \/dev\/sdb1 \/mnt<\/code><\/pre><div class=\"e2-text-picture\">\n<div class=\"fotorama\" data-width=\"640\" data-ratio=\"1.3333333333333\">\n<img src=\"https:\/\/anikin.pw\/pictures\/hosting.jpg\" width=\"640\" height=\"480\" alt=\"\" \/>\n<img src=\"https:\/\/anikin.pw\/pictures\/hosting1.jpg\" width=\"640\" height=\"480\" alt=\"\" \/>\n<img src=\"https:\/\/anikin.pw\/pictures\/hosting2.jpg\" width=\"640\" height=\"480\" alt=\"\" \/>\n<img src=\"https:\/\/anikin.pw\/pictures\/hosting3.jpg\" width=\"640\" height=\"480\" alt=\"\" \/>\n<\/div>\n<\/div>\n<p>Теперь нам нужно создать дампы разделов, в данном случае нужно создать только дамп sda1. Установим утилиты dump\/restore.<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># apt-get install dump<\/code><\/pre><p>И создаем дамп раздела в файл \/mnt\/root.img<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># dump -0f \/mnt\/root.img \/<\/code><\/pre><p>Создание дампа в \/mnt\/root.img возможно когда на разделе используется менее 50% от \/dev\/sdb1. Иначе на разматывание дампа места не хватит. В остальных случаях нужно создавать дамп в другом месте, но не в разделе корня, чтобы дамп не мотал сам себя. Можно использовать раздел другой тачки примонтированный по sshfs, я проверял это прекрасно работает.<br \/>\nПереходим в \/mnt и разматываем дамп.<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># cd \/mnt\n# restore -rf \/mnt\/root.img<\/code><\/pre><p>Как видим раздел перенесся на \/dev\/sdb1. Если у нас \/boot на отдельном разделе, то переносим его аналогично.<\/p>\n<div class=\"e2-text-picture\">\n<div class=\"fotorama\" data-width=\"640\" data-ratio=\"1.3333333333333\">\n<img src=\"https:\/\/anikin.pw\/pictures\/hosting4.jpg\" width=\"640\" height=\"480\" alt=\"\" \/>\n<img src=\"https:\/\/anikin.pw\/pictures\/hosting5.jpg\" width=\"640\" height=\"480\" alt=\"\" \/>\n<\/div>\n<\/div>\n<p>Теперь нам нужно установить загрузчик.<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># grub-install --root-directory=\/mnt \/dev\/sdb<\/code><\/pre><p>Затем если требуется правим \/mnt\/etc\/fstab и меню grub в \/mnt\/boot\/grub\/grub.cfg.<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># nano \/mnt\/etc\/fstab\n# nano \/mnt\/boot\/grub\/grub.cfg<\/code><\/pre><p>Тут немного поясню зачем проверять и править эти файлы. У меня например в этих файлах были прописаны uuid разделов, и если мы уберем старый диск то ОС соответственно не загрузится, т.к у новых разделов у нас другие uuid. Я вместо uuid прописал реальные устройства корня и свопа \/dev\/sda1 и \/dev\/sda3. Все устройства sdb, станут у нас sda после извлечение первого диска.<\/p>\n<p>Теперь выключаем тачку, отсоединяем первый диск и загружаемся с нового диска.<\/p>\n<p><i>P.S. Утилиты dump и restore не ограничиваются переносом ОС с одного диска на другой. Таким образом можно переносить linux вообще на другую тачку с другим железом и дисками. Процедура почти такая же за небольшими изменениями.<\/i><\/p>\n<ol start=\"1\">\n<li><i>На первой тачке создаем дамп ОС;<\/i><\/li>\n<li><i>Загружаем вторую тачку с livecd;<\/i><\/li>\n<li><i>Размечаем и форматируем диски;<\/i><\/li>\n<li><i>Копируем туда дамп c первой тачки(по scp, например);<\/i><\/li>\n<li><i>Разворачиваем дамп с помощью restore;<\/i><\/li>\n<li><i>Устанавливаем загрузчик;<\/i><\/li>\n<li><i>Загружаемся.<\/i><\/li>\n<\/ol>\n",
            "date_published": "2015-03-19T13:56:12+03:00",
            "date_modified": "2015-03-19T15:38:12+03:00",
            "tags": [
                "centos",
                "debian",
                "dump",
                "Linux",
                "restore",
                "ubuntu"
            ],
            "image": "https:\/\/anikin.pw\/pictures\/hosting.jpg",
            "_date_published_rfc2822": "Thu, 19 Mar 2015 13:56:12 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "51",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "highlight\/highlight.js",
                    "highlight\/highlight.css",
                    "jquery\/jquery.js",
                    "fotorama\/fotorama.css",
                    "fotorama\/fotorama.js"
                ],
                "og_images": [
                    "https:\/\/anikin.pw\/pictures\/hosting.jpg",
                    "https:\/\/anikin.pw\/pictures\/hosting1.jpg",
                    "https:\/\/anikin.pw\/pictures\/hosting2.jpg",
                    "https:\/\/anikin.pw\/pictures\/hosting3.jpg",
                    "https:\/\/anikin.pw\/pictures\/hosting4.jpg",
                    "https:\/\/anikin.pw\/pictures\/hosting5.jpg"
                ]
            }
        },
        {
            "id": "49",
            "url": "https:\/\/anikin.pw\/all\/ustanovka-oblaka-mail-ru-v-linux\/",
            "title": "Установка облака mail.ru в linux",
            "content_html": "<p>Теперь облако mail.ru распространяется не бинарником, как я описывал в <a href=\"http:\/\/anikin.pw\/all\/oblako-mail-ru-kak-alternativa-ubuntu-one\/\">предыдущей статье<\/a>, а установочными файлами под разные дистрибутивы. Список дистрибутивов и ссылки на установочные файлы <a href=\"https:\/\/help.mail.ru\/cloud_web\/app\/about\">здесь<\/a>.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/anikin.pw\/pictures\/---2015-02-12-14:44:36.png\" width=\"932\" height=\"413\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Установка теперь очень простая. Например под Ubuntu 14.04 LTS скачиваем установочный .deb пакет и выполняем в консоли<\/div>\n<\/div>\n<pre class=\"e2-text-code\"><code class=\"\">$ sudo dpkg -i mail.ru-cloud_15.04.0021-trusty_amd64.deb<\/code><\/pre><p>Или просто запускаем через центр приложений ubuntu.<br \/>\nПосле установки бинарник будет находится в \/usr\/bin\/cloud, приложение будет в меню Dash, а после запуска иконка появится в трее.<\/p>\n<div class=\"e2-text-picture\">\n<div class=\"fotorama\" data-width=\"201\" data-ratio=\"0.93488372093023\">\n<img src=\"https:\/\/anikin.pw\/pictures\/---2015-02-12-14:40:02.png\" width=\"201\" height=\"215\" alt=\"\" \/>\n<img src=\"https:\/\/anikin.pw\/pictures\/---2015-02-12-14:38:40.png\" width=\"400\" height=\"328\" alt=\"\" \/>\n<img src=\"https:\/\/anikin.pw\/pictures\/---2015-02-12-14:39:01.png\" width=\"400\" height=\"328\" alt=\"\" \/>\n<\/div>\n<\/div>\n",
            "date_published": "2015-02-12T14:53:38+03:00",
            "date_modified": "2015-02-12T15:01:04+03:00",
            "tags": [
                "cloud",
                "cloud.mail.ru",
                "Linux",
                "ubuntu",
                "Облако"
            ],
            "_date_published_rfc2822": "Thu, 12 Feb 2015 14:53:38 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "49",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "highlight\/highlight.js",
                    "highlight\/highlight.css",
                    "jquery\/jquery.js",
                    "fotorama\/fotorama.css",
                    "fotorama\/fotorama.js"
                ],
                "og_images": []
            }
        },
        {
            "id": "47",
            "url": "https:\/\/anikin.pw\/all\/oshibka-pri-zapuske-apf-firewall\/",
            "title": "Ошибка при запуске apf-firewall",
            "content_html": "<p>Если при запуске apf получаем ошибку:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">apf(23061): {glob} activating firewall\nlibkmod: ERROR ..\/libkmod\/libkmod-module.c:1567 kmod_module_new_from_loaded: could not open \/proc\/modules: No such file or directory\nError: could not get list of modules: No such file or directory<\/code><\/pre><p>или<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">kmod_module_new_from_loaded: could not open \/proc\/modules: No such file or directory<\/code><\/pre><p>то в файле \/etc\/apf-firewall\/conf.apf надо изменить значение директивы с<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">SET_MONOKERN=&quot;0&quot;<\/code><\/pre><p>на<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">SET_MONOKERN=&quot;1&quot;<\/code><\/pre><p>После этого apf-firewall должен запустится без ошибок.<\/p>\n",
            "date_published": "2015-01-30T20:07:32+03:00",
            "date_modified": "2015-01-30T20:07:28+03:00",
            "tags": [
                "Advanced Policy Firewall",
                "APF",
                "APF-Firewall",
                "debian",
                "ubuntu"
            ],
            "_date_published_rfc2822": "Fri, 30 Jan 2015 20:07:32 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "47",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "highlight\/highlight.js",
                    "highlight\/highlight.css"
                ],
                "og_images": []
            }
        },
        {
            "id": "46",
            "url": "https:\/\/anikin.pw\/all\/could-not-find-device-for-boot-boot-not-found-or-not-a-block-dev\/",
            "title": "Ошибка при восстановлении загрузчика после замены диска в RAID1",
            "content_html": "<p>Если при установке grub вы получаете ошибку следующего содержания:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">root #grub-install --root-directory=\/boot \/dev\/sda\nCould not find device for \/boot\/boot: not found or not a block device<\/code><\/pre><p>Выполните:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">root #grep -v rootfs \/proc\/mounts &gt; \/etc\/mtab<\/code><\/pre>",
            "date_published": "2015-01-25T11:23:34+03:00",
            "date_modified": "2015-01-25T11:27:17+03:00",
            "tags": [
                "debian",
                "grub",
                "grub2",
                "raid",
                "raid1",
                "ubuntu"
            ],
            "_date_published_rfc2822": "Sun, 25 Jan 2015 11:23:34 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "46",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "highlight\/highlight.js",
                    "highlight\/highlight.css"
                ],
                "og_images": []
            }
        },
        {
            "id": "43",
            "url": "https:\/\/anikin.pw\/all\/modul-remoteip-v-ubuntu-14-04\/",
            "title": "Модуль remoteip в ubuntu 14.04",
            "content_html": "<p>Почему-то с модулем mod_rpaf для apache2 в ubuntu 14.04 у меня не срослось. Не хотел он нормально работать и все. Поэтому было решено использовать модуль remoteip, который, собственно, выполняет те же функции.<br \/>\nПодключаем модуль.<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># a2enmod remoteip<\/code><\/pre><p>Создаем конфигурационный файл<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># nano \/etc\/apache2\/conf-available\/remoteip.conf<\/code><\/pre><pre class=\"e2-text-code\"><code class=\"\">RemoteIPHeader X-Forwarded-For\nRemoteIPTrustedProxy 127.0.0.1 ip_сервера<\/code><\/pre><p>Применяем конфиг<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># a2enconf remoteip<\/code><\/pre><p>Перезапускаем apache2<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># service apache2 restart<\/code><\/pre>",
            "date_published": "2015-01-14T11:04:41+03:00",
            "date_modified": "2015-01-14T11:04:23+03:00",
            "tags": [
                "apache2",
                "mod_rpaf",
                "remoteip",
                "ubuntu"
            ],
            "_date_published_rfc2822": "Wed, 14 Jan 2015 11:04:41 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "43",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "highlight\/highlight.js",
                    "highlight\/highlight.css"
                ],
                "og_images": []
            }
        },
        {
            "id": "36",
            "url": "https:\/\/anikin.pw\/all\/monitoring-nagruzki-na-server\/",
            "title": "Мониторинг нагрузки на сервер утилитой atop.",
            "content_html": "<p>Самой удобной утилитой мониторинга нагрузки на сервере, на мой взгляд, является atop. Огромным плюсом данной утилиты является постоянное ведение логов нагрузки на сервер, это удобно т.к проблемы обычно происходят когда мы не следим за сервером прямо сейчас. А с atop можно отмотать «время назад» и посмотреть нагрузку на сервер в момент проблемы.  Данная утилита есть во всех дистрибутивах линукс, также она присутствует во FreeBSD.<br \/>\nРассмотрим установку утилиты для Ubuntu\/Debian, Cenos и FreeBSD.<\/p>\n<p>Ubuntu\/Debian:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># apt-get install atop -y<\/code><\/pre><p>Centos:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># yum install atop -y<\/code><\/pre><p>FreeBSD:<br \/>\nОпределяем местонахождение порта:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># whereis atop\natop: \/usr\/ports\/sysutils\/atop<\/code><\/pre><p>Переходим в каталог<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># cd  \/usr\/ports\/sysutils\/atop<\/code><\/pre><p>И устанавливаем порт<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># make install clean<\/code><\/pre><p>После установки мы можем запустить утилиту:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># atop<\/code><\/pre><p>После запуска мы увидим окно типа такого:<\/p>\n<div class=\"e2-text-picture\">\n<div class=\"fotorama\" data-width=\"1865\" data-ratio=\"1.9306418219462\">\n<img src=\"https:\/\/anikin.pw\/pictures\/---2014-09-24-16:09:25.png\" width=\"1865\" height=\"966\" alt=\"\" \/>\n<img src=\"https:\/\/anikin.pw\/pictures\/---2014-09-24-16:09:35.png\" width=\"1865\" height=\"966\" alt=\"\" \/>\n<\/div>\n<div class=\"e2-text-caption\">Дожидаемся когда посередине исчезнет надпись<\/div>\n<\/div>\n<pre class=\"e2-text-code\"><code class=\"\">*** system and process activity since boot ***<\/code><\/pre><p>теперь мы можем видеть нагрузку на сервер в реальном времени. Сверху мы видим нагрузку в процентах на основные узлы сервера: процессор, ядра процессора, память, своп, дисковые устройства и сетевые интерфейсы. Если на какой-либо узел будет повышенная нагрузка, то он будет подсвечен красным цветом.<\/p>\n<p>Снизу мы видим процессы с PID’ами, пользователями которым они принадлежат и данными нагрузки которые они создают. Если на какую-либо подсистему сервера идет повышенная нагрузка и нам нужно узнать какой процесс её создает, то мы можем сортировать эти процессы по нагрузке на определенный узел нажатием определенных клавиш.<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">m - сортировать по занимаемой памяти\nd - сортировать по создаваемой нагрузке на диск\nu - покажет таблицу нагрузки по пользователям\nv - покажет подробную информацию по процессам\ng - вернет вывод по умолчанию\nn - сортировать процессы по нагрузке на сеть(доступно только с установленным патчем ядра)<\/code><\/pre><p>Теперь разберёмся как смотреть логи atop. Тут все достаточно просто. Для просмотра лога за текущий день достаточно выполнить<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># atop -r<\/code><\/pre><p>Мы увидим обычное окно atop, как и при просмотре в реальном времени, только по состоянию на 00 часов 00 минут текущего дня. Время можно увидеть в верхней строке. Переместится вперед по времени можно с помощью клавиши <b><i>t<\/i><\/b>. Назад с помощью <b><i>shift+t<\/i><\/b>.<br \/>\nСразу перейти на нужное время можно нажав <b><i>-b<\/i><\/b>, и в появившемся диалоге ввести нужное время.<br \/>\nТакже хранятся логи нагрузки за предыдущие дни. В Ubuntu 14.04 они лежат в каталоге \/var\/log\/atop\/. Открыть можно примерно так.<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># atop -r \/var\/log\/atop\/atop_20140915<\/code><\/pre><p>Цифры в названии файла обозначают дату в формате ГГГГММДД.<\/p>\n",
            "date_published": "2014-09-25T12:38:33+03:00",
            "date_modified": "2014-09-25T12:37:34+03:00",
            "tags": [
                "atop",
                "centos",
                "debian",
                "Freebsd",
                "Linux",
                "ubuntu"
            ],
            "_date_published_rfc2822": "Thu, 25 Sep 2014 12:38:33 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "36",
            "_e2_data": {
                "is_favourite": true,
                "links_required": [
                    "highlight\/highlight.js",
                    "highlight\/highlight.css",
                    "jquery\/jquery.js",
                    "fotorama\/fotorama.css",
                    "fotorama\/fotorama.js"
                ],
                "og_images": []
            }
        },
        {
            "id": "35",
            "url": "https:\/\/anikin.pw\/all\/otpravka-pochty-s-sayta-cherez-smtp-yandex-ru-na-svoyom-domene-i\/",
            "title": "Отправка почты с сайта через smtp.yandex.ru на своём домене.(Иcправление)",
            "content_html": "<p>С 16 сентября 2014 года Яндекс.Почта полностью перешла на протокол SSL. При передаче данных по IMAP\/POP3\/SMTP сервис требует шифрование по SSL, соответственно статья <a href=\"http:\/\/anikin.pw\/all\/otpravka-pochty-s-sayta-cherez-smtp-yandex-ru-na-svoyom-domene\/\">Отправка почты с сайта через smtp.yandex.ru на своём домене.<\/a> потеляла свою актуальность. Сервисы настроенные с конфигом как в статье по ссылке больше не работают. При попытке отправки почты выдается ошибка типа<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># send-mail: Server didn't like our AUTH LOGIN (530 5.7.7 Email sending without SSL\/TLS encryption is not allowed.\nPlease see: http:\/\/help.yandex.ru\/mail\/mail-clients\/ssl.xml)<\/code><\/pre><p>Чтобы исправить эту проблему нужно изменить конфиг \/etc\/ssmtp\/ssmtp.conf<br \/>\nПравильный конфиг теперь выглядит так:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">mailhub=smtp.yandex.ru:465  #адрес и порт smtp сервера яндекса\nAuthUser=post@anikin.pw  #ящик с которого будем отправлять\nAuthPass=pAssw0rd #пароль к ящику\nrewriteDomain=anikin.pw #принудительное указание домена в поле From\nhostname=anikin.pw #hostname тачки\nUseTLS=YES #Использование шифрования SSL\/TLS\nFromLineOverride=NO #Запрещает скриптам «решать» с какого ящика отправлять письмо.\nRoot=admin@anikin.pw #ящик куда будет отправляться почта предназначенная root<\/code><\/pre>",
            "date_published": "2014-09-22T11:22:08+03:00",
            "date_modified": "2014-09-22T14:52:17+03:00",
            "tags": [
                "debian",
                "mail()",
                "smtp.yandex.ru",
                "ssmtp",
                "ubuntu",
                "почта"
            ],
            "_date_published_rfc2822": "Mon, 22 Sep 2014 11:22:08 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "35",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "highlight\/highlight.js",
                    "highlight\/highlight.css"
                ],
                "og_images": []
            }
        },
        {
            "id": "32",
            "url": "https:\/\/anikin.pw\/all\/zamena-dika-v-programnom-raid1-v-linux\/",
            "title": "Замена диска в програмном RAID1 в Linux",
            "content_html": "<p>Оглавление:<\/p>\n<p>\n<ol>\n\t<a href=\"http:\/\/anikin.pw\/all\/zamena-dika-v-programnom-raid1-v-linux\/#del\">I. Удаление диска из массива<\/a><\/br>\n\t<a href=\"http:\/\/anikin.pw\/all\/zamena-dika-v-programnom-raid1-v-linux\/#add\">II. Добавление диска в массив после замены<\/a><\/br>\n\t<a href=\"http:\/\/anikin.pw\/all\/zamena-dika-v-programnom-raid1-v-linux\/#parttabl\">&emsp;1. Определение таблицы разделов(GPT или MBR) и перенос её на новый диск<\/a><\/br>\n\t<a href=\"http:\/\/anikin.pw\/all\/zamena-dika-v-programnom-raid1-v-linux\/#adddisk\">&emsp;2. Добавление диска в массив<\/a><\/br>\n\t<a href=\"http:\/\/anikin.pw\/all\/zamena-dika-v-programnom-raid1-v-linux\/#grub\">III. Установка загрузчика<\/a>\n<\/ol><p>\nУ нас есть сервер в котором 2 диска: \/dev\/sda и \/dev\/sdb. Эти диски собраны у нас в софтверный RAID1 с помощью mdadm. Один из дисков вышел из строя, в нашем случае это \/dev\/sdb.<p>\n<a name=\"del\"><\/a>\n<b>I. Удаление диска из массива<\/b><p>\n\nПеред заменой диска желательно убрать диск из массива. Для начала проверим как размечен диск в массиве:<p>\n<pre class=\"e2-text-code\"><code class=\"\"># cat \/proc\/mdstat \nPersonalities : [raid1] [raid0] [raid6] [raid5] [raid4] \nmd2 : active raid1 sda4[0] sdb4[1]\n      1456504640 blocks super 1.2 [2\/2] [UU]\n      \nmd1 : active raid1 sda3[0] sdb3[1]\n      7996352 blocks super 1.2 [2\/2] [UU]\n      \nmd0 : active raid1 sda2[0] sdb2[1]\n      499392 blocks super 1.2 [2\/2] [UU]\n      \nunused devices: &lt;none&gt;<\/code><\/pre><p>\n\nВ данном случае массив собран так. Что md0 состоит из sda2 и sdb2, md1 из sda3 и sdb3, md2 из sda4 и sdb4. На этом сервере md0 это \/boot, md1 — своп, md2 — корень. Убираем sdb из всех устройств.<p>\n\n<pre class=\"e2-text-code\"><code class=\"\"># mdadm \/dev\/md0 --remove \/dev\/sdb2\n# mdadm \/dev\/md1 --remove \/dev\/sdb3\n# mdadm \/dev\/md2 --remove \/dev\/sdb4<\/code><\/pre><p>\n\nЕсли разделы из массива не удаляются, это как в нашем случае. Mdadm не считает диск неисправным и использует его, и при удалении мы увидим ошибку, что устройство используется. В этом случае перед удалением помечаем диск как сбойный.<p>\n\n<pre class=\"e2-text-code\"><code class=\"\"># mdadm \/dev\/md0 -f \/dev\/sdb2\n# mdadm \/dev\/md1 -f \/dev\/sdb3\n# mdadm \/dev\/md2 -f \/dev\/sdb4<\/code><\/pre><p>\n\nА затем снова выполним команды по удалению разделов из массива.\nВсе, мы удалили сбойный диск из массива. Теперь можем писать в датацентр запрос на замену диска.<p>\n<a name=\"add\"><\/a>\n<b>II. Добавление диска в массив после замены<\/b><p>\n<a name=\"parttabl\"><\/a>\n&emsp;&emsp;<b>1. Определение таблицы разделов(GPT или MBR) и перенос её на новый диск<\/b><p>\nПосле замены поврежденного диска нужно добавить новый диск в массив. Для этого надо определить какая у нас таблица разделов: GPT или MBR. Для этого будем использовать gdisk\nУстановим gdisk:<p>\n<pre class=\"e2-text-code\"><code class=\"\"># apt-get install gdisk -y<\/code><\/pre><p>\nВыполняем:<p>\n<pre class=\"e2-text-code\"><code class=\"\"># gdisk -l \/dev\/sda<\/code><\/pre><p>\nГде \/dev\/sda — исправный диск находящийся в raid.\nВ выводе будет примерно это для MBR:<p>\n<pre class=\"e2-text-code\"><code class=\"\">Partition table scan:\nMBR: MBR only\nBSD: not present\nAPM: not present\nGPT: not present<\/code><\/pre><p>\n\nИ примерно это для GPT:<p>\n<pre class=\"e2-text-code\"><code class=\"\">Partition table scan:\nMBR: protective\nBSD: not present\nAPM: not present\nGPT: present<\/code><\/pre><p>\n\nПеред добавлением диска в массив нам нужно на нем создать разделы в точности такие же как и  на sda. В зависимости от разметки диска это делается по разному.<p>\n<b>Копирование разметки для GPT:<\/b><p>\n<pre class=\"e2-text-code\"><code class=\"\"># sgdisk -R \/dev\/sdb \/dev\/sda<\/code><\/pre><p>\nЗдесь надо быть внимательным. Первым пишется диск на который копируется разметка, а вторым с которого копируют. Если перепутать их местами, то разметка на изначально исправном диске будет уничтожена.<\/br>\nДаем диску новый случайный UIDD:<p>\n<pre class=\"e2-text-code\"><code class=\"\"># sgdisk -G \/dev\/sdb<\/code><\/pre><p>\n<b>Копирование разметки для MBR:<\/b><p>\n<pre class=\"e2-text-code\"><code class=\"\"># sfdisk -d \/dev\/sda | sfdisk \/dev\/sdb<\/code><\/pre><p>\nЗдесь наоборот первым пишется диск с которого переносим разметку, а вторым на который переносим.\nЕсли разделы не видны в системе, то можно перечитать таблицу разделов командой:<p>\n<\/code># sfdisk -R \/dev\/sdb<\/code><p>\n<a name=\"adddisk\"><\/a>\n&emsp;&emsp;<b>2. Добавление диска в массив<\/b><p>\nКогда мы создали разделы на \/dev\/sdb, то можно добавлять диск в массив.<p>\n<pre class=\"e2-text-code\"><code class=\"\"># mdadm \/dev\/md0 -a \/dev\/sdb2\n# mdadm \/dev\/md1 -a \/dev\/sdb3\n# mdadm \/dev\/md2 -a \/dev\/sdb4<\/code><\/pre><p>\n<a name=\"grub\"><\/a>\n<b>III. Установка загрузчика<\/b><p>\nПосле добавления диска в массив нужно установить на него загрузчик. Если сервер загружен в нормальном режиме, то это делается одной командой:<p>\n<pre class=\"e2-text-code\"><code class=\"\"># grub-install \/dev\/sdb<\/code><\/pre><p>\nЕсли сервер загружен в recovery или rescue, т.е с live cd, то установка загрузчика выглядит следующим образом.<\/br>\nМонтируем корневую файловую систему в  \/mnt:<p>\n<pre class=\"e2-text-code\"><code class=\"\"># mount \/dev\/md2 \/mnt<\/code><\/pre><p>\nМонтируем boot:<p>\n<pre class=\"e2-text-code\"><code class=\"\"># mount \/dev\/md0 \/mnt\/boot<\/code><\/pre><p>\nМонтируем \/dev, \/proc и \/sys:<p>\n<pre class=\"e2-text-code\"><code class=\"\"># mount --bind \/dev \/mnt\/dev\n# mount --bind \/proc \/mnt\/proc\n# mount --bind \/sys  \/mnt\/sys<\/code><\/pre><p>\nЗатем делаем chroot в примонтированную систему:<p>\n<pre class=\"e2-text-code\"><code class=\"\"># chroot \/mnt<\/code><\/pre><p>\nИ устанавливаем grub на sdb:<p>\n<pre class=\"e2-text-code\"><code class=\"\"># grub-install \/dev\/sdb<\/code><\/pre><p>\nТеперь можно попробовать загрузится в нормальный режим.\n<p>\n<b>P.S.<\/b>\nЕсли при установке загрузчика возникнет ошибка Could not find device for \/boot\/boot: not found or not a block device то вам <a href=\"http:\/\/anikin.pw\/all\/could-not-find-device-for-boot-boot-not-found-or-not-a-block-dev\/\">сюда<\/a>.",
            "date_published": "2014-08-08T09:42:17+03:00",
            "date_modified": "2015-01-25T11:26:21+03:00",
            "tags": [
                "debian",
                "gdisk",
                "GPT",
                "mbr",
                "mdadm",
                "raid",
                "raid1",
                "ubuntu"
            ],
            "_date_published_rfc2822": "Fri, 08 Aug 2014 09:42:17 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "32",
            "_e2_data": {
                "is_favourite": true,
                "links_required": [
                    "highlight\/highlight.js",
                    "highlight\/highlight.css"
                ],
                "og_images": []
            }
        },
        {
            "id": "29",
            "url": "https:\/\/anikin.pw\/all\/server-status-na-apache2-httpd\/",
            "title": "Включение server-status на apache2\/httpd в ubuntu и centos",
            "content_html": "<p>server-status это модуль веб-сервера, который может помочь установить какой из сайтов на сервере создает нагрузку или даже покажет на какой именно скрипт на сайте идет больше всего обращений. В общем это модуль который помогает в мониторинге состояния веб-сервера. Разберёмся как его установить.<\/p>\n<p>В centos он обычно уже установлен. В ubuntu смотрим:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># ls \/etc\/apache2\/mods-enabled<\/code><\/pre><p><\/br><br \/>\nЕсли в выводе есть status.load и status.conf, то значит он тоже установлен. Если же нет, то выполняем:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># \/usr\/sbin\/a2enmod status<\/code><\/pre><p><\/br><\/p>\n<p>Затем открываем конфигурационный файл веб-сервера, в centos — \/etc\/httpd\/conf\/httpd.conf, в ubuntu — \/etc\/apache2\/apache2.conf. Добавляем туда:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">ExtendedStatus On\n&lt;Location \/server-status&gt;\n    SetHandler server-status\n    Order deny,allow\n    Deny from all\n    Allow from 127.0.0.1\n&lt;\/Location&gt;<\/code><\/pre><p>Затем перезапускаем апач.<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># service apache2 restart<\/code><\/pre><ul>\n<li>в ubuntu<\/li>\n<\/ul>\n<pre class=\"e2-text-code\"><code class=\"\"># service httpd restart<\/code><\/pre><ul>\n<li>в centos<\/li>\n<\/ul>\n<p>Устанавливаем:<br \/>\nВ centos:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># yum install links elinks<\/code><\/pre><p><\/br><br \/>\nВ ubuntu:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># apt-get install links elinks<\/code><\/pre><p><\/br><\/p>\n<p>Теперь мы можем посмотреть server-status. Для этого выполняем:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># elinks http:\/\/localhost\/server-status<\/code><\/pre><p><\/br><br \/>\nЕсли апач у нас висит не на 80 порту, например когда фронтэндом установлен nginx, то в эту команду нужно добавить порт апача. Например так, для порта 81:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># elinks http:\/\/localhost:81\/server-status<\/code><\/pre>",
            "date_published": "2014-08-04T13:08:03+03:00",
            "date_modified": "2014-08-29T11:40:50+03:00",
            "tags": [
                "apache2",
                "centos",
                "httpd",
                "mod_status",
                "server-status",
                "ubuntu"
            ],
            "_date_published_rfc2822": "Mon, 04 Aug 2014 13:08:03 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "29",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "highlight\/highlight.js",
                    "highlight\/highlight.css"
                ],
                "og_images": []
            }
        },
        {
            "id": "26",
            "url": "https:\/\/anikin.pw\/all\/shifrovanie-dannyh-v-oblake-s-pomoschyu-encfs-cryptkeeper\/",
            "title": "Шифрование данных в облаке с помощью encfs + cryptkeeper",
            "content_html": "<p>В <a href=\"http:\/\/anikin.pw\/all\/oblako-mail-ru-kak-alternativa-ubuntu-one\/\" target=\"_blank\">предыдущей статье<\/a> я расказывал как установить облако mail.ru в ubuntu. Теперь стоит рассказать о шифровании данных в облаках, т.к у многих пользователей есть такие данные которые нельзя выкладывать в общий доступ(файлы с паролями, личные записи, проекты и т. д.). Но для этих данных так же хотелось бы пользоваться преимуществами облака. Для этих целей я использую encfs и gui для неё cryptkeeper. Преимущество encfs для облаков в том что она не создает криптоконтейнер, а шифрует каждый файл по отдельности. Т.е при изменении одного файла не придётся перезаливать все зашифрованные данные. Ниже я кратко расскажу про установку.<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">$ sudo apt-get install encfs cryptkeeper<\/code><\/pre><p><d><\/p>\n<p>Затем создаем папку в облаке, которая будет зашифрована.<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">$ mkdir \/home\/user\/cloud\/encfs<\/code><\/pre><p><d><\/p>\n<p>И папку за пределами облака, в которую будет монтироваться наша зашифрованая папка.<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">$ mkdir \/home\/user\/data<\/code><\/pre><p><d><\/p>\n<p>Затем создаем зашифрованную папку \/home\/user\/cloud\/encfs с точкой монтирования \/home\/user\/data.<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">$ encfs \/home\/user\/cloud\/encfs \/home\/user\/data<\/code><\/pre><p><d><\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/anikin.pw\/pictures\/---2014-05-02-12:14:47.png\" width=\"644\" height=\"683\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Пароль запомните, т.к в случае если вы забудете пароль данные будут утеряны.<br \/>\nТеперь отмонтируем зашифрованный каталог.<\/div>\n<\/div>\n<pre class=\"e2-text-code\"><code class=\"\">$ fusermount -u \/home\/user\/data<\/code><\/pre><p><d><\/p>\n<p>Запускаем cryptkeeper, кликаем на значок в трее и выбираем «Импорт папки EncFS».<\/p>\n<div class=\"e2-text-picture\">\n<div class=\"fotorama\" data-width=\"305\" data-ratio=\"1.0971223021583\">\n<img src=\"https:\/\/anikin.pw\/pictures\/---2014-05-02-11:51:26.png\" width=\"305\" height=\"278\" alt=\"\" \/>\n<img src=\"https:\/\/anikin.pw\/pictures\/---2014-05-02-12:22:46.png\" width=\"478\" height=\"108\" alt=\"\" \/>\n<\/div>\n<\/div>\n<p>Выбираем нашу зашифрованную папку и папку в которую её смонтировать.<\/p>\n<div class=\"e2-text-picture\">\n<div class=\"fotorama\" data-width=\"957\" data-ratio=\"1.2932432432432\">\n<img src=\"https:\/\/anikin.pw\/pictures\/---2014-05-02-12:23:39.png\" width=\"957\" height=\"740\" alt=\"\" \/>\n<img src=\"https:\/\/anikin.pw\/pictures\/---2014-05-02-12:24:08.png\" width=\"958\" height=\"741\" alt=\"\" \/>\n<\/div>\n<\/div>\n<p>Теперь мы можем монтировать наш зашифрованный каталог через иконку cryptkeeper в трее.<\/p>\n<div class=\"e2-text-picture\">\n<div class=\"fotorama\" data-width=\"482\" data-ratio=\"3.5970149253731\">\n<img src=\"https:\/\/anikin.pw\/pictures\/---2014-05-02-12:24:59.png\" width=\"482\" height=\"134\" alt=\"\" \/>\n<img src=\"https:\/\/anikin.pw\/pictures\/---2014-05-02-12:25:30.png\" width=\"222\" height=\"157\" alt=\"\" \/>\n<\/div>\n<\/div>\n<p>После правильного ввода пароля, каталог будет смонтирован. Теперь cryptkeeper можно добавить в автозагрузку так же как приложение «Облако mail.ru» в <a href=\"http:\/\/anikin.pw\/all\/oblako-mail-ru-kak-alternativa-ubuntu-one\/\" target=\"_blank\">предыдущей статье<\/a>, чтобы при каждой загрузке не запускать его из меню dash. Если иконки в трее не появляются, там же есть комментарий как это починить.<\/p>\n",
            "date_published": "2014-05-02T11:42:39+03:00",
            "date_modified": "2014-05-02T13:05:46+03:00",
            "tags": [
                "cloud",
                "cryptkeeper",
                "encfs",
                "ubuntu",
                "Облако"
            ],
            "_date_published_rfc2822": "Fri, 02 May 2014 11:42:39 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "26",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "highlight\/highlight.js",
                    "highlight\/highlight.css",
                    "jquery\/jquery.js",
                    "fotorama\/fotorama.css",
                    "fotorama\/fotorama.js"
                ],
                "og_images": []
            }
        },
        {
            "id": "25",
            "url": "https:\/\/anikin.pw\/all\/oblako-mail-ru-kak-alternativa-ubuntu-one\/",
            "title": "Облако mail.ru как альтернатива ubuntu one.",
            "content_html": "<p><b>Теперь mail.ru предоставляет установочные пакеты под разные дистрибутивы. Правильный процесс установки описан <a href=\"http:\/\/anikin.pw\/all\/ustanovka-oblaka-mail-ru-v-linux\/\">здесь<\/a>.<\/b><\/p>\n<p>Как недавно стало известно canonical закрывает свой облачный сервис ubuntu one, поэтому мне пришлось искать альтернативу их облаку. Когда mail.ru раздавали терабайт в своем облаке, я его взял но не использовал. Но раз уж такое дело, то решил попробовать интегрировать его в ubuntu в качестве альтернативы ubuntu one. Как я это делал я расскажу ниже.<\/p>\n<p>Для начала установим сам клиент. На странице <a href=\"https:\/\/cloud.mail.ru\/home\/\">https:\/\/cloud.mail.ru\/home\/<\/a> скачиваем клиент.<br \/>\nКликаем «Скачай приложение для компьютера». И в открывшемся окне выбираем «Linux amd64» или «Linux i386» в зависимости от вашей архитектуры.<\/p>\n<div class=\"e2-text-picture\">\n<div class=\"fotorama\" data-width=\"248\" data-ratio=\"1.8787878787879\">\n<img src=\"https:\/\/anikin.pw\/pictures\/---2014-04-27-12:24:29.png\" width=\"248\" height=\"132\" alt=\"\" \/>\n<img src=\"https:\/\/anikin.pw\/pictures\/---2014-04-27-12:24:44.png\" width=\"675\" height=\"443\" alt=\"\" \/>\n<\/div>\n<div class=\"e2-text-caption\">Чтобы после установки облака в системном трее появился значок для управления облаком в терминале выполним следующие команды:<\/div>\n<\/div>\n<pre class=\"e2-text-code\"><code class=\"\">$ sudo add-apt-repository ppa:timekiller\/unity-systrayfix\n$ sudo apt-get update\n$ sudo apt-get upgrade\n$ gsettings set com.canonical.Unity.Panel systray-whitelist &quot;['all']&quot;<\/code><\/pre><p>\nЕсли у вас ubuntu 14.04, то вместо предыдущих команд выполняем:\n<pre class=\"e2-text-code\"><code class=\"\">$ sudo apt-add-repository ppa:gurqn\/systray-trusty\n$ sudo apt-get update\n$ sudo apt-get upgrade<\/code><\/pre><p>\nЗатем скопируем приложение в \/usr\/bin и сделаем его исполняемым\n<pre class=\"e2-text-code\"><code class=\"\">$ sudo cp ~\/Загрузки\/cloud \/usr\/bin\/\n$ sudo chmod +x \/usr\/bin\/cloud<\/code><\/pre><p>\nЗатем нам нужно создать пункт в меню dash. Создаем файл\n<pre class=\"e2-text-code\"><code class=\"\">$ sudo nano \/usr\/share\/applications\/cloud.desktop<\/code><\/pre><p>\nС текстом\n<pre class=\"e2-text-code\"><code class=\"\">[Desktop Entry]\nName=Cloud Mail\nComment=\nExec=cloud\nIcon=\/usr\/share\/icons\/Humanity-Dark\/status\/48\/weather-snow.svg\nMimeType=\nTerminal=false\nType=Application\nStartupNotify=true\nCategories=GNOME;GTK;<\/code><\/pre>\n\nТеперь нам нужно добавить облако в автозагрузку, чтобы не тыкать каждый раз приложение в меню dash. Находим в dash пункт «Автоматически загружаемые приложения».\n\n<p><img src=\"https:\/\/anikin.pw\/pictures\/pictures\/---2014-04-27-13:06:49.png\"><p>\n\nИ добавляем туда облако примерно так\n\n<p><img src=\"https:\/\/anikin.pw\/pictures\/pictures\/---2014-04-27-13:07:49.png\"><p>\n\nЕсли у вас не толстый канал интернета, то есть небольшая утилита trickle. Она позволяет ограничить канал интернета приложению облако, чтобы вы могли комфортно пользоваться интернетом, когда облако загружает данные.\nУстановить её просто\n<pre class=\"e2-text-code\"><code class=\"\">$ sudo apt-get install trickle<\/code><\/pre><p>\nТеперь в «Автоматически загружаемые приложения» пропишем команду вместо \/usr\/bin\/cloud\n<pre class=\"e2-text-code\"><code class=\"\">$ \/usr\/bin\/trickle -d 300 -u 150 \/usr\/bin\/cloud<\/code><\/pre><p>\nГде 300 и 150 скорость в килобайтах в секунду закачки и отдачи соответственно.\nЭту же команду пропишем в файле \/usr\/share\/applications\/cloud.desktop в строке Exec=, чтобы из меню dash облако так же запускалось с ограничением скорости.\nТеперь, когда мы всё настроили либо перезагружаемся либо перелогиниваемся, чтобы применились все изменения и добавился пункт в меню dash. Приложение должно запустится автоматически при загрузке.\n\n<p><img src=\"https:\/\/anikin.pw\/pictures\/pictures\/---2014-04-27-12:59:16.png\"><p>\n\nВводим свой логин и пароль к mail.ru. И система спросит какую папку синхронизировать.\n\n<p><img src=\"https:\/\/anikin.pw\/pictures\/pictures\/---2014-04-27-13:00:26.png\"><p>\n\nПосле запуска, в трее в правом верхнем углу появится значок в котором можно посмотреть статус синхронизации, приостановить\/запустить синхронизации и провести другие настройки.\n\n<p><img src=\"https:\/\/anikin.pw\/pictures\/pictures\/---2014-04-29-18:31:38.png\"><p>\n\nТеперь можете закачивать файлы в каталог, который был выбран для синхронизации, файлы будут автоматически закачиваться в облако.\nВ <a href=\"http:\/\/anikin.pw\/all\/shifrovanie-dannyh-v-oblake-s-pomoschyu-encfs-cryptkeeper\/\" target=\"_blank\">следующей статье<\/a> я расскажу как шифровать данные в облаке.<p>\n\n<b>P.S. Теперь mail.ru предоставляет установочные пакеты под разные дистрибутивы. Правильный процесс установки описан <a href=\"http:\/\/anikin.pw\/all\/ustanovka-oblaka-mail-ru-v-linux\/\">здесь<\/a>.<\/b>",
            "date_published": "2014-04-29T17:39:52+03:00",
            "date_modified": "2017-02-19T16:20:25+03:00",
            "tags": [
                "cloud.mail.ru",
                "ubuntu",
                "Облако"
            ],
            "image": "https:\/\/anikin.pw\/pictures\/pictures\/---2014-04-27-13:06:49.png",
            "_date_published_rfc2822": "Tue, 29 Apr 2014 17:39:52 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "25",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "jquery\/jquery.js",
                    "fotorama\/fotorama.css",
                    "fotorama\/fotorama.js",
                    "highlight\/highlight.js",
                    "highlight\/highlight.css"
                ],
                "og_images": [
                    "https:\/\/anikin.pw\/pictures\/pictures\/---2014-04-27-13:06:49.png",
                    "https:\/\/anikin.pw\/pictures\/pictures\/---2014-04-27-13:07:49.png",
                    "https:\/\/anikin.pw\/pictures\/pictures\/---2014-04-27-12:59:16.png",
                    "https:\/\/anikin.pw\/pictures\/pictures\/---2014-04-27-13:00:26.png",
                    "https:\/\/anikin.pw\/pictures\/pictures\/---2014-04-29-18:31:38.png"
                ]
            }
        },
        {
            "id": "20",
            "url": "https:\/\/anikin.pw\/all\/ustanovka-dnscrypt-v-ubuntu-13-10\/",
            "title": "Установка DNSCrypt в Ubuntu 13.10",
            "content_html": "DNSCrypt-proxy - это приложение позволяющее шифровать ваши DNS-запросы от вашего провайдера. Рассмотрим как его установить в ubuntu.<p>\r\nВсе действия будем производить под рутом. Переходим в root<p>\r\n\r\n<code>$ sudo su<\/code><p>\r\n\r\nДля начала установим build-essential<p>\r\n\r\n<code># apt-get install build-essential<\/code><p>\r\n\r\nСкомпилируем актуальную версию libsodium. Скачаем актуальную версию этой библиотеки со страницы <a href=\"https:\/\/download.libsodium.org\/libsodium\/releases\/\" target=\"_blank\">https:\/\/download.libsodium.org\/libsodium\/releases\/<\/a><p>\r\n\r\n<code># wget https:\/\/download.libsodium.org\/libsodium\/releases\/libsodium-0.4.5.tar.gz<\/code><p>\r\n\r\n<code># tar -xvzf libsodium-0.4.5.tar.gz<p>\r\n# cd libsodium-0.4.5<p>\r\n# .\/configure<p>\r\n# make && make install<\/code><p>\r\n\r\nСкачаем актуальную версию dnscrypt-proxy со страницы <a href=\"http:\/\/download.dnscrypt.org\/dnscrypt-proxy\/\" target=\"_blank\">http:\/\/download.dnscrypt.org\/dnscrypt-proxy\/<\/a><p>\r\n\r\n<code># wget http:\/\/download.dnscrypt.org\/dnscrypt-proxy\/dnscrypt-proxy-1.3.3.tar.gz<\/code><p>\r\n\r\n<code># tar -xvzf dnscrypt-proxy-1.3.3.tar.gz<p>\r\n# cd dnscrypt-proxy-1.3.3<p>\r\n# .\/configure<p>\r\n# make<p>\r\n# make install<\/code><p>\r\n\r\nСкачиваем и распаковываем архив dnscrypt-0.2.tar.gz<p>\r\n\r\n<code># wget http:\/\/anikin.pw\/pictures\/uploads\/dnscrypt-0.2.tar.gz<p>\r\n# tar -xvzf dnscrypt-0.2.tar.gz<\/code><p>\r\n\r\nКопируем скрипт<p>\r\n\r\n<code># cp dnscrypt.conf \/etc\/init\/<p>\r\n# ln -s \/lib\/init\/upstart-job \/etc\/init.d\/dnscrypt<\/code><p>\r\n\r\nЗапускаем<p>\r\n\r\n# service dnscrypt start<p>\r\n\r\nЕсли все запустилось, то пропишем DNS в network manager. Если возникли проблемы, то в конце статьи рассмотрены решения некоторых проблем.<p>\r\nПропишем наши DNS в network manager.<p>\r\n1. Кликаем по иконке соединений в правом верхнем углу и в выпадающем меню выбираем \"Изменить соединения\".<p>\r\n2. В открывшемся окне выделяем наше соединение и кликаем \"Изменить\"<p>\r\n3. Во вкладке \"Параметры ipv4\" прописываем в Сервера DNS - 127.0.0.2 у меня получилось примерно так<p>\r\n<a href=\"https:\/\/anikin.pw\/pictures\/uploads\/Snimok-e`krana-ot-2014-01-25-192320.png\"><img src=\"https:\/\/anikin.pw\/pictures\/uploads\/Snimok-e`krana-ot-2014-01-25-192320-300x246.png\" alt=\"Снимок экрана от 2014-01-25 19:23:20\" width=\"300\" height=\"246\" class=\"alignnone size-medium wp-image-72\" \/><\/a><p>\r\nВсё. Наши DNS запросы шифруются и провайдер их не видит.<p>\r\n\r\n<strong>P.S.(Важно)<\/strong><p>\r\n<strong>1.<\/strong> При запуске dnscrypt-proxy получаем ошибку:\r\nloading shared libraries: libsodium.so.4: cannot open shared object file: No such file or directory<p>\r\n\r\n<strong>Решение:<\/strong><p>\r\nЕсли libsodium был установлен без ошибок, но проблема возникает, то выполняем:<p>\r\n\r\n<code># .\/configure --libdir=\/usr\/local\/lib<\/code><p>\r\n\r\nЕсли проблема остается то выполняем:<p>\r\n\r\n<code># ln -s \/usr\/local\/lib\/libsodium.so.4 \/usr\/lib\/libsodium.so.4<\/code><p>\r\n\r\n<strong>2.<\/strong> При выполнении service dnscrypt start получаем:<p>\r\n\r\n<code># service dnscrypt start<p>\r\ndnscrypt stop\/waiting<p>\r\n<\/code><p>\r\n\r\nУ меня это было из за того что скрипт dnscrypt-proxy находится в \/usr\/local\/sbin\/dnscrypt-proxy, а скрипт его ищет в \/usr\/sbin\/dnscrypt-proxy.<p>\r\n\r\n<strong>Решение:<\/strong><p>\r\n\r\n<code># ln -s \/usr\/local\/sbin\/dnscrypt-proxy \/usr\/sbin\/dnscrypt-proxy<\/code><p>\r\n\r\n<strong>3.<\/strong> Как проверить что скрипт действительно работает и dns-трафик шифруется от провайдера?<p>\r\n\r\n<strong>Решение:<\/strong><p>\r\n\r\nЗаходим на сайт <a href=\"http:\/\/www.opendns.com\/welcome\/\" target=\"_blank\">http:\/\/www.opendns.com\/welcome\/<\/a> и проверяем.",
            "date_published": "2014-01-25T22:13:07+03:00",
            "date_modified": "2017-02-19T16:26:45+03:00",
            "tags": [
                "dnscrypt",
                "dnscrypt-proxy",
                "ubuntu"
            ],
            "_date_published_rfc2822": "Sat, 25 Jan 2014 22:13:07 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "20",
            "_e2_data": {
                "is_favourite": false,
                "links_required": null,
                "og_images": []
            }
        },
        {
            "id": "17",
            "url": "https:\/\/anikin.pw\/all\/ustanovka-mpm-itk-na-apache2-rabota-virtualnyh-hostov-pod-raznym\/",
            "title": "Установка mpm-itk на apache2. Работа виртуальных хостов под разными пользователями.",
            "content_html": "По умолчанию apache работает под пользователем www-data. При использовании isp-manager под пользователем apache, если я не ошибаюсь. И получается, что все сайты работают под одним пользователем. Иногда требуется чтобы каждый сайт работал под своим пользователем. Сделать это можно с помощью модуля mpm-itk. Модуль доступен во всех основных дистрибутивах линукс. Мы рассмотрим как установить и настроить его под ubuntu и centos, а так же рассмотрим настройку для серверов с isp-панелью.<p>\r\n\r\n<strong>Установка и настройка в ubuntu<\/strong><p>\r\n\r\nДля начала установим сам модуль<p>\r\n\r\n<code># apt-get install apache2-mpm-itk<\/code><p>\r\n\r\nДопустим, что сайты у нас уже есть и находятся в пользовательских каталогах. Сообтветственно нам не нужно создавать пользователей. Если это не так то можно создать пользователей для каждого сайта с помощью useradd с аргументом -d, в котором укажем каталог сайта в качестве домашнего каталога.<p>\r\n\r\nЗатем правим конфигурационный файл apache.<p>\r\n\r\n<code># nano \/etc\/apache2\/apache2.conf<\/code><p>\r\n\r\nВнутрь каждого виртуального хоста добавляем такие строки:<p>\r\n\r\n<code>&lt;IfModule mpm_itk_module&gt;<p>\r\nAssignUserId user1 user1<p>\r\n&lt;\/IfModule&gt;<\/code><p>\r\n\r\nГде user1 user1 - пользователь и группа соответственно.<p>\r\n\r\nПерезапускаем apache2<p>\r\n\r\n<code># service apache2 restart<\/code><p>\r\n\r\n<strong>Установка в CentOS<\/strong><p>\r\n\r\nУстановим модуль<p>\r\n\r\n<code># yum install httpd-itk<\/code><p>\r\n\r\nПравим конфигурационные файлы<p>\r\n\r\n<code># nano \/etc\/sysconfig\/httpd<\/code><p>\r\n\r\nРаскомментируем и изменяем строку на такую:<p>\r\n\r\n<code>HTTPD=\/usr\/sbin\/httpd.itk<\/code><p>\r\n\r\n<code># nano \/etc\/httpd\/conf.d\/php.conf<\/code><p>\r\n\r\nДобавляем:<p>\r\n\r\n<code>&lt;IfModule itk.c&gt;<p>\r\nLoadModule php5_module modules\/libphp5.so<p>\r\n&lt;\/IfModule&gt;<p><\/code>\r\n\r\nМеняем диррективу SuexecUserGroup на AssignUserID для существующих доменов.<p>\r\n\r\n<code># sed -i -e 's\/SuexecUserGroup\/AssignUserID\/g' \/etc\/httpd\/conf\/httpd.conf<\/code><p>\r\n\r\nДля вновь созданных доменов в виртуальном хосте нужно указывать<p>\r\n\r\n<code>AssignUserID user1 user1<\/code><p>\r\n\r\nГде user1 user1 - пользователь и группа соответственно.<p>\r\n\r\n<code># nano \/etc\/httpd\/conf\/httpd.conf<\/code><p>\r\n\r\nВставляем настройки модуля перед виртуальными хостами<p>\r\n\r\n<code>&lt;IfModule itk.c&gt;<p>\r\nStartServers 1<p>\r\nMinSpareServers 1<p>\r\nMaxSpareServers 25<p>\r\nServerLimit 25<p>\r\nMaxClients 25<p>\r\nMaxRequestsPerChild 4000<p>\r\n&lt;\/IfModule&gt;<p><\/code>\r\n\r\nПерезапускаем apache<p>\r\n\r\n<code># service httpd restart<\/code><p>\r\n\r\n<strong>Настройка для сервера с панелью isp.<\/strong><p>\r\n\r\nОткроем конфигурационный файл isp<p>\r\n\r\n<code># nano \/usr\/local\/ispmgr\/etc\/ispmgr.conf<\/code><p>\r\n\r\nИ в самом начале добавим строку:<p>\r\n\r\n<code>Option ApacheMPM<\/code><p>\r\n\r\nИ рестартим панель<p>\r\n\r\n<code># killall -9 ispmgr<\/code><p>\r\n\r\n<strong>Как проверить что все работает правильно?<\/strong><p>\r\n\r\nВ папке виртуального хоста создаем файл с расширением .php и примерно таким содержанием:<p>\r\n\r\n<code>&lt;?php<p>\r\n$userinfo = posix_getpwuid(posix_getuid());<p>\r\necho $userinfo['name'];<p>\r\n?&gt;<p><\/code>\r\n\r\nИли таким:<p>\r\n\r\n<code>&lt;?php echo exec('whoami'); ?&gt;<\/code><p>\r\n\r\nОткрываем этот файл в браузере и выводом этого файла должно быть имя пользователя под которым работает этот скрипт. Так же не забываем что если сервер функционирует давно то в подкаталогах куча фалов принадлежащих пользователю www-data. Неплохо бы сделать chown -R username на каталоги сайтов.",
            "date_published": "2013-11-08T18:05:50+03:00",
            "date_modified": "2014-04-04T13:47:25+03:00",
            "tags": [
                "apache2",
                "centos",
                "httpd",
                "httpd-itk",
                "isp-manager",
                "Linux",
                "mpm-itk",
                "ubuntu"
            ],
            "_date_published_rfc2822": "Fri, 08 Nov 2013 18:05:50 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "17",
            "_e2_data": {
                "is_favourite": false,
                "links_required": null,
                "og_images": []
            }
        },
        {
            "id": "11",
            "url": "https:\/\/anikin.pw\/all\/kak-zastavit-rabotat-apf-firewall-na-yadre-versii-3-x\/",
            "title": "Как заставить работать apf-firewall на ядре версии 3.x",
            "content_html": "Установил apf-firewall на один из серверов, столкнулся с проблемой. При запуске фаервола получил ошибку:<p>\r\n\r\nKernel version not equal to 2.4.x or 2.6.x, aborting.<p>\r\n\r\nФаервол не запустился и правила в iptables не добавились. Путём долгого гуления выяснилось что в коде скрипта стоит проверка версии ядра и на ядрах отличных от 2.4.х и 2.6.х apf отказывается работать. Обойти данное досадное недоразумение, как оказалось, достаточно просто. В файле \/etc\/apf-firewall\/internals\/functions.apf находим строку 68 и приводим условие к такому виду:<p>\r\n\r\n<code>elif [ \"$KREL\" == \"3.2\" ]; then<p>\r\nMEXT=\"ko\"<\/code><p>\r\n\r\nГде 3.2 ваша версия ядра. Версию ядра можно узнать выполнив:<p>\r\n\r\n<code># uname -a<\/code><p>\r\n\r\nПосле этих изменений apf запустился без проблем и правила добавились в iptables. Нормальная работа apf проверена на версии ядра 3.2.х и по информации в интернете 3.0.х. Решение вроде простое, но найти эту информацию оказалось довольно трудно. Поэтому сделал эту запись, возможно кому-то поможет.",
            "date_published": "2013-10-20T20:23:38+03:00",
            "date_modified": "2014-04-04T13:51:33+03:00",
            "tags": [
                "Advanced Policy Firewall",
                "APF",
                "APF-Firewall",
                "debian",
                "iptables",
                "Kernel",
                "Linux",
                "ubuntu"
            ],
            "_date_published_rfc2822": "Sun, 20 Oct 2013 20:23:38 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "11",
            "_e2_data": {
                "is_favourite": false,
                "links_required": null,
                "og_images": []
            }
        }
    ],
    "_e2_version": 4134,
    "_e2_ua_string": "Aegea 11.3 (v4134)"
}