Категория: Linux, Хостинг Автор: Hottab :: Понедельник 28 ноября 2011 в 10:00

Обнаружилась проблема.

На чистой установке ISPManager (Centos 5.7, php-5.1.6) не подключается php.ini пользователя (если php для домена переключен в режим php-cgi).

Решение - костыль, но работает.
Перезаписываем файл php-bin/php (в директории пользователя) на сам бинарный php-cgi.
Т.е.
mv /usr/bin/php-cgi ./php

и не забываем сделать chown.
В таком варианте - конфиг подхватывается

Про багу отписал на форуме ISP - http://forum.ispsystem.com/ru/showthread.php?t=17160 , они ее даже приняли :)

Но судя по changelog`у ждать придется не меньше месяца , а это напрягает.. бага весьма критичная.


Категория: FreeBSD, Хостинг Автор: Hottab :: Вторник 29 марта 2011 в 11:13

В рамках некрофилии и прочих извращений :)
Добавляем поддержку frontpage на web-сервер под управлением hsphere

Все делается на самом сервере:

www# cd /hsphere/pkg
www# fetch http://www.psoft.net/shiv/HS/FBSD6/hsphere-frontpage-5.0_11.tgz
www# pkg_add -f hsphere-frontpage-5.0_11.tgz
www# /usr/local/etc/rc.d/apache.sh restart

Hsphere - 2.6
web-сервер - FreeBSD 6.2


Категория: Linux, Хостинг Автор: Hottab :: Воскресенье 20 марта 2011 в 8:58

Обнаружил интересный баг.
Есть два сервера PSBM, на каждом крутится по 5-6 VM (виртуальных машин). VM подключены к сети в режиме bridge.
Выяснилось что скорость передачи по tcp между VM-ами на разных серверах не превышает 40-60 кб/c. При этом скорость с внешними ресурсами и на самих серверах была вполне нормальной.

Оказалось, проблема с generic-receive-offload на адаптере, на котором висят бриджи.

Решение достаточно простое.
Во первых, обновляем ethtool, нужна версия больше 6.3

vm# yum info ethtool
...
Installed Packages
Name : ethtool
Arch : x86_64
Version : 6
Release : 4.el5
Size : 149 k
Repo : installed
Summary : Ethernet settings tool for PCI ethernet cards
URL : http://sourceforge.net/projects/gkernel/
License : GPL
Description: This utility allows querying and changing of ethernet card settings, such as speed, port, autonegotiation, and PCI locations.

vm# yum update ethtool

Во вторых, отключаем собственно gro

vm# ethtool -K eth0 gro off

Проверяем

vm# ethtool -k eth0

Offload parameters for eth0:
Cannot get device udp large send offload settings: Operation not supported
rx-checksumming: on
tx-checksumming: on
scatter-gather: on
tcp segmentation offload: on
udp fragmentation offload: off
generic segmentation offload: off
generic-receive-offload: off

И добавляем строку в /etc/rc.local, чтобы при перезагрузке отключалось

vm# echo -e "ethtool -K eth0 gro off" >> /etc/rc.local

Должно помочь :)

З.ы.
Если при выполнении команды

vm# ethtool -K eth0 gro off

Появится такое - “no offload settings changed” , значит ethtool старой версии.

Надеюсь что Parallels эту багу пофиксят.


Категория: Linux, Хостинг Автор: Hottab :: Среда 9 марта 2011 в 12:40

Довольно часто , при переносе сайтов с виртуального хостинга на VPS , нужно менять DOC_ROOT в suexec.
Небольшая инструкция для Centos ( но в принципе, на других дистрибутивах все аналогично).

Устанавливаем gcc (если не установлен):

serv# yum install gcc

Сначала узнаем какой версии установленный у нас Apache:

serv# httpd -v
Server version: Apache/2.2.3
Server built: Aug 30 2010 12:32:08

Потом скачиваем исходники нужного apache, например отсюда :
http://archive.apache.org/dist/httpd/

serv# wget http://archive.apache.org/dist/httpd/httpd-2.2.3.tar.gz

Распаковываем и конфигурируем с нужными параметрами (так как нам нужен только suexec - указываем параметры только для suexec):

serv# tar -xzf ./httpd-2.2.3.tar.gz
serv# cd httpd-2.2.3
serv# ./configure --enable-suexec --with-suexec-caller=apache --with-suexec-userdir=cgi-bin --with-suexec-docroot=/home --with-suexec-uidmin=500 --with-suexec-gidmin=500 --with-suexec-logfile=/var/log/httpd/suexec.log

И собираем, !но не устанавливаем! :

serv# make

Дальше смотрим права и владельца на установленный в системе suexec

serv# ls -lah /usr/sbin/suexec
-r-s--x--- 1 root apache 12K Aug 30 2010 /usr/sbin/suexec

Копируем на место старого новый suexec, ставим нужные права и владельца, и проверяем:

serv# cp ./support/suexec /usr/sbin/suexec
serv# chown root:apache /usr/sbin/suexec
serv# chmod 4510 /usr/sbin/suexec

serv# ls -lah /usr/sbin/suexec
-r-s--x--- 1 root apache 23K Mar 9 12:45 /usr/sbin/suexec

Рестартуем apache и все :)

До модификации:

serv# suexec -V
-D AP_DOC_ROOT="/var/www"
-D AP_GID_MIN=500
-D AP_HTTPD_USER="apache"
-D AP_LOG_EXEC="/var/log/httpd/suexec.log"
-D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin"
-D AP_UID_MIN=500
-D AP_USERDIR_SUFFIX="cgi-bin"

После:

serv# suexec -V
-D AP_DOC_ROOT="/home"
-D AP_GID_MIN=500
-D AP_HTTPD_USER="apache"
-D AP_LOG_EXEC="/var/log/httpd/suexec.log"
-D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin"
-D AP_UID_MIN=500
-D AP_USERDIR_SUFFIX="cgi-bin"


Категория: Linux, Хостинг Автор: Hottab :: Вторник 16 ноября 2010 в 12:01

Возникла проблема при запуске сервера виртуализации от Parallels.
Использовал сервер Parallels Server 4 Bare Metal.
Версия установочного диска взята с сайта, 697-5612 (17 декабря 2009).

Сервер просетапился корректно, проблем при установке не возникло.
Но, при первом запуске, сервер не загрузился, повис на моменте запуска сервиса Parallels services. Причем повис так, что не реагировал на Ctrl-Alt-Del, выключился только по кнопке питания.

Картинка выглядит примерно так:

parallels-fail

Решение проблемы было найдено опытным путем :)
Загружаемся в интерактивном режиме (используя кнопку “I”) и отказываемся от запуска “Parallels services“.

Проверям что на сервере доступен интернет.
Обновляем ядро и систему утилитой vzup2date:
# vzup2date

Но это еще не все :)

Обновление будет проходить в несколько этапов.

При обновлении на сервер будет корректно установлено новое ядро , но в процессе установки обновлений для утилит Parallels сервер опять зависнет (видимо попробует запустить сервис “Parallels services”).

Опять ребутим сервер и в при загрузке не забываем выбрать новое ядро (в grub`e по умолчанию будет стартовать старое).

Снова входим в режим интерактивной загрузки, отказываемся от запуска сервиса ps.

Опять запускаем vzup2date.
И вот теперь обновление завершится корректно.

Правим /boot/grub/grub.conf для загрузки нового ядра и ребутим сервер.

Вообщем то ничего особо страшного, оибки бывают у всех.

Но почему на сайте Parallels выложен кривой дистрибутив, и нигде нет ни слова о подобной проблеме, ни на форуме, ни в разделе помощи - мне непонятно.


Категория: FreeBSD, Хостинг Автор: Hottab :: Воскресенье 30 мая 2010 в 15:16

Проблема возникла в следующем.
После установки eAccelerator на FreeBSD 6.2 некоторые php-скрипты (в частности bitrix) стали выдавать ошибку:

PHP Fatal error: Out of memory (allocated 13369344) (tried to allocate 3145968 bytes) ...
PHP Warning: [eAccelerator] Can not create shared memory area in Unknown on line 0
PHP Fatal error: Unable to start eAccelerator module in Unknown on line 0

Решение вопроса простое - уменьшаем значение параметра “eaccelerator.shm_size

Он был установлен в 128 Мб. Меняем значение на 32 (в моем случае) и все работает :)
(далее…)


Категория: FreeBSD, Хостинг Автор: Hottab :: Понедельник 29 марта 2010 в 10:39

При установке ISPmanager на FreeBSD 7.2 не ставится apache2.
По всем требованием стал устанавливать ISPmanager на чистый сервер.
Если в устанавливаемых пакетах отметить apache1.3 установка проходит нормально.
А если же выбрать apache2 - панель не ставится.

Просмотр логов установки показал следующее - для установки apache2 нужен libtool2.2, а по умолчанию устанавливается libtool1.5.26 . Менеджер пакетов в этом случае не может поставить apache2 и, соотвественно, не ставится и сама панель.

Решение проблемы - простое.
Перед установкой панели необходимо выполнить следующее:

serv# cd /usr/ports/devel/libtool22 && make install clean

После этого сетап пройдет нормально.
Не знаю, почему такие тривиальные вещи не проверяют разработчики… :)


Категория: FreeBSD, Хостинг Автор: Hottab :: Среда 10 марта 2010 в 16:45

Ну и чтобы два раза не вставать.. :) (предыдущий пост - не ставятся расширения php)

Проблема:

Не ставится PhpMyAdmin из панели ISP manager. Симптомы - в панели пишет что установился, а при попытке пройти по ссылке - Forbidden.

Система: FreeBSD 7.2
Панель: ISPmanager-Lite 4.3.38
php: PHP 5.2.12

Решение:
(далее…)


Категория: FreeBSD, Хостинг Автор: Hottab :: Среда 10 марта 2010 в 16:04

Суть проблемы:

При установке расширения Gd для php возникла проблема - расширение просто не ставилось, на экран ничего не писалось.

Система: FreeBSD 7.2
Панель: ISPmanager-Lite 4.3.38
php: PHP 5.2.12

Решение:
(далее…)


Категория: Linux, Хостинг Автор: Hottab :: Вторник 2 марта 2010 в 16:19

Потребовалось тут подключить два сервера к Nagios`у.
В числе прочих параметров необходимо мониторить состояние Raid массива.
Оба сервера - Centos 5.4

# uname -a
Linux serv.serv 2.6.18-164.2.1.el5.028stab066.10ent #1 SMP Sat Dec 12 13:31:54 MSK 2009 i686 i686 i386 GNU/Linux
# lsb_release -a
LSB Version: :core-3.1-ia32:core-3.1-noarch:graphics-3.1-ia32:graphics-3.1-noarch
Distributor ID: CentOS
Description: CentOS release 5.4 (Final)
Release: 5.4
Codename: Final

Контроллеры разные: 3ware 9650SE и Adaptec 2405, оба SATA.
(далее…)


Категория: FreeBSD, Хостинг Автор: Hottab :: Четверг 10 сентября 2009 в 12:13

Обновил тут Nagios до 3.2 (система FreeBSD 7.2) . И обнаружил что пункт “Map” в меню не работает. При более детальном рассмотрении оказалось что не собрались некоторые cgi-скрипты.

Как оказалось, configure при обновлении не увидел библиотек gd.

Лечится просто. Во-первых, убедитесь что gd установлена.
Во-вторых выполните configure со следующими параметрами:

# ./configure --with-command-group=nagios --with-gd-lib=/usr/local/lib --with-gd-inc=/usr/local/include

и потом

# make clean && make && make install

должно работать :)


Категория: Хостинг Автор: Hottab :: Понедельник 10 августа 2009 в 11:52

Nagios. Все ок.

Отлично когда вот так :)
Скоро статья по настройке нагиоса и плагинов :)


Категория: Linux, Хостинг Автор: Hottab :: Среда 27 мая 2009 в 13:25

Довольно часто на одном VE сервере должны работать несколько нод, с разным приоритетом (в зависимости от выполняемых задач, тарифных планов и т.п.).

Было опробовано два метода разделения ресурсов.

Первый - жестко задавался CPULIMIT.

Этот метод выделяет ноде как бы виртуальный процессор (в процентах CPULIMIT от реального процессора), то есть нода работает, к примеру, на процессоре 200Mzh .

Второй - CPULIMIT устанавливается в ноль, то есть не ограничевается, но для каждой ноды прописывается ее “удельный вес“, параметр CPUUNITS. Объясню данный метод на примере.

Есть две ноды, одна с критичными задачами, другая - техническая, к примеру, для бэкапов. Первой ноде присваиваем CPUUNITS=200, второй CPUUNITS=100.

В результате получаем следующую ситуацию. При загрузке обоих нод на 100 процентов, первой ноде (CPUUNITS=200) будет выделено 66% процессорных ресурсов, а второй (CPUUNITS=100) - 33% .

Резюме:
Теперь о том что получилось на практике.

При балансировке первым методом каждой ноде выделялось определенное количество процессорных ресурсов, которых с трудом хватало на выполнение задач (apache, mysql). В результате высокий LA на самой ноде, ошибки TCP на VE, и более высокий LA, как следствие, на всем VE.

При использовании второго метода ресурсы CPU для каждой ноды не имеют жестких ограничений. Это значит что каждая нода может использовать процессор на максимальную мощность, в каждый момент времени (в соотвествии с “удельным весом“). Так как в реальности idle процессора достаточно большой, то это позволяет каждой ноде использовать весь объем процессорной мощности, и ограничения вступают в силу только в момент одновременной высокой нагрузке нескольких нод.

Для разных задач можно использовать как каждый метод по отдельности, так и комплексно.


Copyright © 2009 Горячий [TAB].