Категория: FreeBSD Автор: Hottab :: Среда 30 марта 2011 в 12:14

Обновлял мир и ядро на FreeBSD 6.2.
После обновления решил обновить и пакеты.

Не собрался mc, как выяснилось из-за glib
glib вылетал с такой ошибкой:

./de.po:15: keyword “msgctxt” unknown
./de.po:15: parse error

Проблема была с gettext, т.е. сначала надо было обновить его.
Потом все взлетело :)


Категория: 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"


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