centOS — Частин https://chast.in Свободной памяти нет - приходится записывать Mon, 29 Jul 2024 18:55:22 +0000 ru-RU hourly 1 https://wordpress.org/?v=6.6.2 Виртуальная машина kvm в Virtuozzo https://chast.in/vm-kvm-in-virtuozzo.html https://chast.in/vm-kvm-in-virtuozzo.html#respond Mon, 29 Jul 2024 18:07:30 +0000 https://chast.in/?p=1797

Если нужно быстро запустить виртуалку в уже установленном Virtuozzo 7, то действуем так:

# Создаем машину
# IP и MAC нужно указать свой
prlctl create $VM-name --distribution ubuntu  --vmtype vm
prlctl set $VM-name --description "Ubuntu 22.04 $VM-name"
prlctl set $VM-name --device-set net0 --network Bridged
prlctl set $VM-name --device-set net0 --ipadd $ip_add_set_here/24 --mac 02:00:00:85:6b:ff
prlctl set $VM-name --nameserver 8.8.8.8,1.1.1.1
prlctl set $VM-name --hostname $VM-name.vz.localhost
prlctl set $VM-name --memsize 2048
prlctl set $VM-name --cpus 2
prlctl set $VM-name --cpuunits 1000
prlctl set $VM-name --cpulimit 1024m
prlctl set $VM-name --cpumask 0-1
prlctl set $VM-name --ioprio 6
prlctl set $VM-name --iolimit 0
prlctl set $VM-name --iopslimit 0
prlctl set $VM-name --videosize 64
prlctl set $VM-name --autostart on

#
# CD - добавляем диск для установки. у меня это ubuntu 22.04
prlctl set $VM-name --device-connect cdrom0
prlctl set $VM-name --device-set cdrom --image "/vz/vmprivate/images/ubuntu-22.04.4-live-server-amd64.iso"
# VNC - включаем себе доступ к экрану виртуалки для установки ОС
prlctl set $VM-name --vnc-mode manual --vnc-port 5901 --vnc-passwd 256256Did

# Стартуем виртуалку..
prlctl start $VM-name

После приведенных манипуляций будет создана виртуалка, к экрану которой можно будет подключиться через VNC. Для этого нужно пробросить через SSH порт VNC 5901 себе на локальный компьютер

# Проброс порта через ssh
# 
ssh -L 5901:localhost:5901 root@Virtozzo_node_IP 

Установка ОС проходит как обычно, за исключением того, что потребуется назначить IP и маску сети на интерфейсе виртуалки, а также указать gateway вручную.

Все эти и многие другие манипуляции можно проверить на выделенных серверах компании vps-server.ru

]]>
https://chast.in/vm-kvm-in-virtuozzo.html/feed 0
Установка VLC на CentOS 5 https://chast.in/install-vlc-on-centos-5.html https://chast.in/install-vlc-on-centos-5.html#respond Sat, 01 Oct 2011 07:53:25 +0000 http://chast.in/?p=413 Missing ...]]>

Потребовалось установить VLC player на CentOS. Казалось бы — ничего сложного, все понятно. Подключается rpmfoge и устанавливается, проблем нет.

# wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.i386.rpm
# rpm -iHv rpmforge-release-0.5.2-2.el5.rf.i386.rpm
# yum install vlc

Но — то ли я такой фартовый, то ли звезды сложились по другому. Не ставится, ругается изощренно:

vlc-0.9.9a-7.el5.rf.i386 from rpmforge has depsolving problems
--> Missing Dependency: libdvdread.so.3 is needed by package vlc-0.9.9a-7.el5.rf.i386 (rpmforge)
Error: Missing Dependency: libdvdread.so.3 is needed by package vlc-0.9.9a-7.el5.rf.i386 (rpmforge)
You could try using --skip-broken to work around the problem
You could try running: package-cleanup --problems
package-cleanup --dupes
rpm -Va --nofiles --nodigest
The program package-cleanup is found in the yum-utils package.


Я пробовал создать симлинки с libdvdread.so на libdvdread.so.3, но это не помогло.
Библиотека установлена, но не годится 🙂

ll /usr/lib | grep libdv*
ll /usr/lib | grep libc*

Показывал установленные модули.
Погуглил, нашел решение одного испанского камрада. 🙂

# yum erase libdvdread
# yum erase libcaca

Очищаем кеши yum

# yum clean all

И устанавливаем vlc, используя только base, updates и rpmforge:

# yum --disablerepo \* --enablerepo base,updates,rpmforge install vlc

]]>
https://chast.in/install-vlc-on-centos-5.html/feed 0
Обновление tar в CentOS 5 https://chast.in/update-tar-in-centos.html https://chast.in/update-tar-in-centos.html#respond Sun, 04 Sep 2011 18:50:15 +0000 http://chast.in/?p=397

Иногда требуется обновлять tar, например, при возникновении вот таких ошибок при импорте пользователей ISPManager из FreeBSD в CentOS:

Sep 4 16:38:29 ----Restoring of user 'aebu' failed: Can't unpack files using command /bin/cat /tmp/pbkp_18702/aebu/getuser.tar.gz | /bin/gzip -d | /bin/tar -x -p -f- -C /tmp/pbkp_18702/aebu/ -T /tmp/pbkp_18702/aebu/PBKP_TEMP_LISTING. Error: /bin/tar: Ignoring unknown extended header keyword `SCHILY.dev'

И тому подобное.
Проблема в отсутствии совместимости tar для FreeBSD (bsdtar) и tar версии 1.15, который по умолчанию во всех дистрибутивах CentOS 5.

1. Получаем новую версию tar, на момент написания статьи это 1.26. Сведения о последней версии tar можно посмотреть здесь
# wget http://ftp.gnu.org/gnu/tar/tar-1.26.tar.gz
# tar xfz tar-1.26.tar.gz
2. Компилируем:
# yum install gcc make -y
# cd tar-1.*
# ./configure FORCE_UNSAFE_CONFIGURE=1
# make
# make install
3. Удаляем старую версию tar:
# yum remove tar
4. Добавляем линк на новую версию tar
# ln -s /usr/local/bin/tar /bin/tar
5 Проверяем:
# tar —version
tar (GNU tar) 1.26

Все, tar обновлен.

И, кстати, bsdtar на CentOS тоже работает теперь:
# whereis bsdtar
bsdtar: /usr/local/bin/bsdtar
# bsdtar —version
bsdtar 2.8.5 — libarchive 2.8.5

]]>
https://chast.in/update-tar-in-centos.html/feed 0
И снова про обновление php до 5.2.17 на CentOS 5 https://chast.in/again-about-the-update-up-5-2-17-on-centos.html https://chast.in/again-about-the-update-up-5-2-17-on-centos.html#respond Wed, 24 Aug 2011 11:53:23 +0000 http://chast.in/?p=387

Некоторое время назад писал статейку здесь, на блоге, как обновить php, но все течет и изменяется, приходится вносить коррективы и мне. Сейчас при обновлении php при подключенном репозитории atomic командой

# yum update php

система пытается обновить php до 5.3
Мне php 5.3 не нужно, хочу 5.2, поэтому я обновляю следующим образом..

Для начала, если вы уже обновились, удаляем php 5.3

# yum remove `rpm -qa | grep php | grep 5.3`

Затем добавляем репозиторий atomic:

# wget -q -O - http://www.atomicorp.com/installers/atomic | sh

И ставим php:
Для x86_64 :

yum install php-5.2.17-1.el5.art.x86_64 \
php-cli-5.2.17-1.el5.art.x86_64 \
php-common-5.2.17-1.el5.art.x86_64 \
php-bcmath-5.2.17-1.el5.art.x86_64 \
php-gd-5.2.17-1.el5.art.x86_64 \
php-mbstring-5.2.17-1.el5.art.x86_64 \
php-mcrypt-5.2.17-1.el5.art.x86_64 \
php-tidy-5.2.17-1.el5.art.x86_64 \
php-pdo-5.2.17-1.el5.art.x86_64 \
php-mysql-5.2.17-1.el5.art.x86_64 \
php-soap-5.2.17-1.el5.art.x86_64 \
php-odbc-5.2.17-1.el5.art.x86_64 \
php-xml-5.2.17-1.el5.art.x86_64 \
php-xmlrpc-5.2.17-1.el5.art.x86_64 \
php-mbstring-5.2.17-1.el5.art.x86_64 \
php-imap-5.2.17-1.el5.art.x86_64 \
php-snmp-5.2.17-1.el5.art.x86_64 \
php-ldap-5.2.17-1.el5.art.x86_64 \
php-dba-5.2.17-1.el5.art.x86_64 \
php-pgsql-5.2.17-1.el5.art.x86_64


Для i386:

# wget http://www6.atomicorp.com/channels/atomic/centos/5EL/x86_64/RPMS/php-5.2.17-1.el5.art.i386.rpm
# yum localinstall php-5.2.17-1.el5.art.i386.rpm --nogpgcheck
# yum install php-5.2.17-1.el5.art.i386 php-bcmath-5.2.17-1.el5.art.i386 php-common-5.2.17-1.el5.art.i386 php-gd-5.2.17-1.el5.art.i386 php-mbstring-5.2.17-1.el5.art.i386 php-mcrypt-5.2.17-1.el5.art.i386 php-mysql-5.2.17-1.el5.art.i386 php-odbc-5.2.17-1.el5.art.i386 php-soap-5.2.17-1.el5.art.i386 php-xmlrpc-5.2.17-1.el5.art.i386 php-xml-5.2.17-1.el5.art.i386 php-pdo-5.2.17-1.el5.art.i386 php-common-5.2.17-1.el5.art.i386 php-tidy-5.2.17-1.el5.art.i386

Если у вас ISPManager, то нужно будет обновить его кеш командой

# /usr/local/ispmgr/sbin/pkgctl -D -m ispmgr cache

]]>
https://chast.in/again-about-the-update-up-5-2-17-on-centos.html/feed 0
Изменение лимитов в nginx https://chast.in/limits-in-nginx.html https://chast.in/limits-in-nginx.html#respond Sun, 21 Aug 2011 11:50:25 +0000 http://chast.in/?p=347

При небольшой ddos атаке на сервер с CentOS в логе nginx стали появляться ошибки «failed (24: Too many open files)»
Стал вопрос об увеличении лимитов, тем более, что процессов было не много, памяти свободной достаточно, своп на нуле и процессор не был нагружен на 100%.
Решено было увеличить лимиты для nginx.

В сети нашлось неплохое решение. Используя его, а так же гугл, было пройден следующий путь :).

Определить текущее положение дел в системе, можно, давая команду:


for pid in `pidof nginx`; do echo "$(< /proc/$pid/cmdline)"; egrep 'files|Limit' /proc/$pid/limits; echo "Currently open files: $(ls -1 /proc/$pid/fd | wc -l)"; echo; done

В результате мы получаем отчет о количестве открытых файлов и текущих пределах.
1. Операционная система устанавливает некоторые лимиты на количество одновременно открытых файлов. Делается это с целью экономии памяти и ресурсов процессора, так как каждый открытый файл - это дополнительный дискриптор, под который отводится память. Мы можем самостоятельно устанавливать лимиты на количество открытых файлов, редактируя /etc/sysctl.conf:

# mcedit /etc/sysctl.conf

Добавляем в него строку

fs.file-max = 65535

Следом редактируем файл /etc/security/limits.conf:

# mcedit /etc/security/limits.conf

В нем мы устанавливаем мягкий и жестки лимиты для nginx:

nginx soft nofile 10000
nginx hard nofile 30000

Сохраняем оба файла и применяем изменения:

# sysctl -p

2. Все, что требовалось для ОС мы сделали, теперь обратимся к nginx:
Редактируем файл /etc/nginx/nginx.conf

# mcedit /etc/nginx/nginx.conf

Добавляем туда:

worker_rlimit_nofile 30000;

И делаем рестарт nginx:

# service nginx restart

]]>
https://chast.in/limits-in-nginx.html/feed 0
start-stop-daemon на CentOS https://chast.in/start-stop-daemon-on-centos.html https://chast.in/start-stop-daemon-on-centos.html#comments Sun, 21 Aug 2011 08:22:34 +0000 http://chast.in/?p=344

Потребовалось сделать start-stop-daemon на CentOS, чтобы пускать свои процессы в виде демонов. Самым простым решением показалось использование одноименного демона для Debian и сборка его под CentOS. Все написанное, вероятно, будет справедливо и для других дистрибутивов, но я не проверял 🙂

1. Для начала устанавливаем компилятор, линковщик и все остальное для сборки пакетов. Если у вас установлено, можно пропустить 🙂

# yum install gcc gcc-c++ m4 make automake libtool gettext openssl-devel

2. Теперь скачиваем нужный пакет, распаковываем его:

# mkdir /tmp/start-stop
# cd /tmp/start-stop
# wget http://ftp.de.debian.org/debian/pool/main/d/dpkg/dpkg_1.14.31.tar.gz
# tar xfz *.tar.gz

3. Компилируем и пробуем собрать:

# cd /tmp/start-stop/dpkg_1.14.31
./configure
./make
cd utils
./make install

У меня сразу не собралось, ругалось на отсутствие pkg-config, поэтому пришлось собрать pkg-config:

# mkdir /tmp/pkgconfig
# cd /tmp/pkgconfig
# wget http://pkgconfig.freedesktop.org/releases/pkg-config-0.23.tar.gz
# tar -xzfv pkg-config-0.23.tar.gz
# cd pkg-config-0.23
# ./configure
# make
# make install

И затем повторить пункт 2.
После этого start-stop-daemon работает, можно веселиться:

# start-stop-daemon
start-stop-daemon: need one of --start or --stop
Try `start-stop-daemon --help' for more information.

]]>
https://chast.in/start-stop-daemon-on-centos.html/feed 1
Установка VNC-сервера в CentOS https://chast.in/howto-install-vnc-server-in-centos.html https://chast.in/howto-install-vnc-server-in-centos.html#comments Wed, 19 Jan 2011 19:23:04 +0000 http://chast.in/?p=251

В общем, пошла тема администрировать не только Debian, но и CentOS через VNC. Все течет, все изменяется, каналы интернет ширятся, становятся безлимитнее… Решил написать заметочку, чтобы не забывать. Чтобы каждый раз — не гуглить и не вспоминать 🙂

Вначале обновляем все

yum update

Затем устанавливаем сервер VNC и заодно — клиента, а также нано-редактор, если они не установлены:

yum install vnc-server vnc nano

Можно сразу же установить, например, gnome:

yum groupinstall "GNOME Desktop Environment"

Собственно, на этом все с установкой 🙂 Конфигурируем:

В официальном howto рекомендуют сразу же добавить юзверей, добавляем:

# useradd jora
Для каждого пользователя нужно будет сделать следующее — зайти и выполнить
$ vncpasswd
При этом будет создан файл ~/.vnc/passwd с паролем:

$ ls ~/.vnc
passwd

Теперь снова от суперпользователя root редактируем файл /etc/sysconfig/vncservers
# nano /etc/sysconfig/vncservers
Включаем порты пользователям и определяем разрешение экрана:

VNCSERVERS="1:jora 2:root"
VNCSERVERARGS[1]="-geometry 640x480"
VNCSERVERARGS[2]="-geometry 800x600"

Создаем скрипт запуска иксов xstartup:

# /sbin/service vncserver start
# /sbin/service vncserver stop

Опять входим юзверем jora, и редактируем файл запуска иксов xstartup

$ nano ~/.vnc/xstartup

Нужно раскомментировать две строки, чтобы получилось так:

#!/bin/sh

# Uncomment the following two lines for normal desktop:
unset SESSION_MANAGER
exec /etc/X11/xinit/xinitrc

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
twm &

Сохраняем, выходим.. и запускаем VNC-сервер:

# /sbin/service vncserver start

Тестируем любимым vnc-viewером, не забывая, что — у жоры 1 порт, а у рута — 2.

Небольшое замечание для любителей русской локализации:
Проверяем наличие русской раскладки:
locale -a | grep ru
ru_RU
ru_RU.koi8r
ru_RU.utf8
ru_UA
ru_UA.utf8

если у вас так же, то исправляем файл /etc/sysconfig/i18n :
# nano /etc/sysconfig/i18n
Изменяем его содержимое на

LANG="ru_RU.UTF-8"
SUPPORTED="ru_RU.UTF-8:ru_RU:ru"
SYSFONT="latarcyrheb-sun16"

После перезапуска VNC-сервера командой

# /sbin/service vncserver restart

Наблюдаем русский язык в gnome — он подхватывает его на ходу.

]]>
https://chast.in/howto-install-vnc-server-in-centos.html/feed 2
Установка Awstats на CentOS и связка с ISPManager https://chast.in/install-awstats-centos-with-ispmanager.html https://chast.in/install-awstats-centos-with-ispmanager.html#respond Sat, 16 Oct 2010 18:42:34 +0000 http://chast.in/?p=155

Имеем Centos 5.4, ISPManager Pro, нужно установить awstats.
Тема довольно популярна, и разжевана неоднократно. Однако полного и пошагового руководства к действию нет. Поэтому решил записать все от начала и до конца, поскольку довольно часто приходится ставить, однако не так часто, чтобы помнить это наизусть.


1. Для начала — в ISPManager по умолчанию установлен анализатором логов webalizer. Первым делом идем в панели и в пункте возможности удаляем его 🙂

2. Пока происходит удаление пакета, идем на AWStats Download Page , скачиваем пакет

# cd ~
# mkdir awstats
# cd awstats
# wget http://sourceforge.net/projects/awstats/files/AWStats/6.95/awstats-6.95-1.noarch.rpm/download

При попытке установить этот пакет может появиться ошибка:

# rpm -ivh awstats-6.95-1.noarch.rpm
ошибка: Неудовлетворенные зависимости:
perl(LWP::UserAgent) нужен для awstats-6.95-1.noarch

Не теряемся, делаем так :
yum install perl perl-libwww-perl.noarch
и повторяем предыдущую команду.
Пакет установился, обновляем кеш ISPManager и перезапускаем его:

# /usr/local/ispmgr/sbin/pkgctl cache
# killall ispmgr

Смотрим в возможности панели — там должен появиться awstat. 🙂 Включаем awstats.

3. Далее — небольшая «магия» 🙂
3.1. Идем в доменные имена в панели. выбираем любой домен — нажимаем кнопочку «ротация логов WWW домена» выбираем в качестве анализатора логов awstats и период сбора статистики(каждый час). Я обычно еще ставлю галку «применить для всех доменов». Жмем ОК и ждем. При этом создаются логи конфиги анализатора, для выбранного(или для всех) домена. Все конфиги можно смотреть и исправлять в папке /etc/awstats

3.2. Редактируем /etc/httpd/conf.d/awstats.conf. убираем первые 4 строчки и пишем вместо них вот эти:


Alias /awstatsclasses /usr/local/awstats/wwwroot/classes
Alias /awstatscss /usr/local/awstats/wwwroot/css
Alias /awstatsicons /usr/local/awstats/wwwroot/icon
ScriptAlias /awstats/ /usr/local/awstats/wwwroot/cgi-bin/

Финалом | апофеозом 🙂 всех манипуляций является перезапуск апачи:


# service httpd restart

Смотрим на неутешительную статистику так. Убедившись, что этот блог никто, кроме меня, не читает, идем варить кофе 🙂

P.S. Случается, что иногда в конфиге апачи запрещено выполнение перл — скриптов. В таком случае вы будете наблюдать 500 ошибку — Internal Server Error. Для избавления от нее нужно в файле
/etc/httpd/httpd.conf найти строку

#AddHandler cgi-script .cgi

и заменить ее на

AddHandler cgi-script .cgi .pl

Если же вы не хотите использовать перл скрипты нигде, кроме этой статистики, то исправляйте файл /etc/httpd/conf.d/awstats.conf.

В нем нужно в

<Directory /usr/local/awstats/wwwroot/>
Options None
AllowOverride None
Order allow,deny
Allow from all
</Directory>

Добавить

Options ExecCGI
AddHandler cgi-script .pl

Чтобы вышло как то так:

<Directory /usr/local/awstats/wwwroot/>
Options ExecCGI
AddHandler cgi-script .pl
AllowOverride None
Order allow,deny
Allow from all
</Directory>

Еще добавлю, что awstats можно «научить» считать отдельно закачки файлов (например, mp3), и смотреть в логи nginx, что в некоторых случаях гораздо правильнее.

]]>
https://chast.in/install-awstats-centos-with-ispmanager.html/feed 0