{
    "version": "https:\/\/jsonfeed.org\/version\/1.1",
    "title": "Аникин: заметки с тегом centos",
    "_rss_description": "Блог об администрировании Linux, BSD и не только",
    "_rss_language": "ru",
    "_itunes_email": "",
    "_itunes_categories_xml": "",
    "_itunes_image": "",
    "_itunes_explicit": "",
    "home_page_url": "https:\/\/anikin.pw\/tags\/centos\/",
    "feed_url": "https:\/\/anikin.pw\/tags\/centos\/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": "98",
            "url": "https:\/\/anikin.pw\/all\/sborka-php-7-na-centos-6\/",
            "title": "Сборка php 7 на Centos 6",
            "content_html": "<p>Пример configure<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">.\/configure  --prefix=\/opt\/php73 --with-config-file-path=\/etc --with-mysql-sock=\/var\/lib\/mysql\/mysql.sock --with-mysqli=mysqlnd --with-pdo-mysql --with-pdo-sqlite --enable-calendar --enable-sysvsem --enable-sysvshm --enable-sysvmsg --enable-bcmath --with-bz2 --enable-ctype --enable-shmop --enable-soap --enable-mbstring --enable-soap --enable-sockets --enable-wddx --enable-exif --enable-ftp --enable-pdo --enable-pcntl --enable-mbregex --with-gettext --with-iconv --with-mhash --with-gd --with-curl --with-libxml-dir=\/usr --with-jpeg-dir=\/usr --with-png-dir=\/usr --with-freetype-dir=\/usr --with-zlib --without-libzip --enable-mbstring --with-xsl --with-openssl  --enable-ftp --enable-exif --enable-cgi --enable-zip --with-readline --enable-simplexml --enable-intl --with-pcre-regex=\/opt\/pcre2 --with-config-file-scan-dir=\/opt\/php73\/etc<\/code><\/pre><p>Для его успешного выполнения ставим devel пакеты на основе получаемых ошибок.<br \/>\nPcre2 собираем из исходников, т.к нужной версии в репах centos 6 нет.<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># wget ftp:\/\/ftp.pcre.org\/pub\/pcre\/pcre2-10.30.tar.gz\n# tar -xf pcre2-10.30.tar.gz\n# cd pcre2-10.30\n# .\/configure --prefix=\/opt\/pcre2                       \\\n            --docdir=\/usr\/share\/doc\/pcre2-10.30 \\\n            --enable-unicode                    \\\n            --enable-pcre2-16                   \\\n            --enable-pcre2-32                   \\\n            --enable-pcre2grep-libz             \\\n            --enable-pcre2grep-libbz2           \\\n            --enable-pcre2test-libreadline      \\\n            --disable-static    \n# make\n# make install<\/code><\/pre><p>После успешного configure для php делаем make и make install<\/p>\n<p><b>UPD:<\/b> Если у вас в wordpress не отправляется почта через контактную форму функцией mail(), то pcre2 качаем версии 10.33.<\/p>\n",
            "date_published": "2020-02-03T19:32:18+03:00",
            "date_modified": "2020-04-23T16:15:50+03:00",
            "tags": [
                "centos",
                "pcre",
                "pcre2",
                "php",
                "php7"
            ],
            "_date_published_rfc2822": "Mon, 03 Feb 2020 19:32:18 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "98",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "highlight\/highlight.js",
                    "highlight\/highlight.css"
                ],
                "og_images": []
            }
        },
        {
            "id": "94",
            "url": "https:\/\/anikin.pw\/all\/ne-startuet-mysql-v-centos-6-posle-obnovleniya\/",
            "title": "Не стартует mysql в centos 6 после обновления.",
            "content_html": "<p>После обновления mysql до 5.7 он не стартует с ошибкой<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">[ERROR] Fatal error: mysql.user table is damaged. Please run mysql_upgrade.<\/code><\/pre><p>Добавляем в my.cnf в секцию [mysqld]<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">skip-grant-tables<\/code><\/pre><p>С этим параметром стартуем mysql и делаем mysql_upgrade<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">service mysqld start\nmysql_upgrade<\/code><\/pre><p>Затем убираем skip-grant-tables из конфига и рестартим mysql<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">service mysql restart<\/code><\/pre><p>Mysql должен запустится без ошибок<\/p>\n",
            "date_published": "2019-06-17T16:35:55+03:00",
            "date_modified": "2019-06-17T16:35:26+03:00",
            "tags": [
                "centos",
                "mysql"
            ],
            "_date_published_rfc2822": "Mon, 17 Jun 2019 16:35:55 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "94",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "highlight\/highlight.js",
                    "highlight\/highlight.css"
                ],
                "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": "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": "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": "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": "7",
            "url": "https:\/\/anikin.pw\/all\/smena-parolya-admin-v-vdsmanager\/",
            "title": "Смена пароля admin в vdsmanager.",
            "content_html": "Vds manager хранит пароли в виде хеша в файле \/usr\/local\/ispmgr\/etc\/vdsmgr.conf<p>\r\n\r\nДля смены пароля на понадобится известный хеш. Возьмем например хеш root пароля из файла \/etc\/shadow<p>\r\n\r\n<code># cat \/etc\/shadow|grep root<\/code><p>\r\n\r\nКопируем строчку с хеш пароля и заменяем старый хеш в vdsmgr.conf. Затем перезапускаем панель<p>\r\n\r\n<code># killall -9 vdsmgr<\/code><p>\r\n\r\nЗаходим в панель с логином admin и паролем root. И меняем пароль на новый.<p>",
            "date_published": "2013-10-20T11:06:05+03:00",
            "date_modified": "2014-04-04T13:53:42+03:00",
            "tags": [
                "centos",
                "debian",
                "Freebsd",
                "Linux",
                "passwd",
                "password",
                "ubuntu",
                "vds-manager",
                "vdsmgr"
            ],
            "_date_published_rfc2822": "Sun, 20 Oct 2013 11:06:05 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "7",
            "_e2_data": {
                "is_favourite": false,
                "links_required": null,
                "og_images": []
            }
        }
    ],
    "_e2_version": 4134,
    "_e2_ua_string": "Aegea 11.3 (v4134)"
}