Поднятие IPv6 сетевого интерфейса на Debian/Ubuntu в облачном сервере компании Selectel

Пусть в информации о сервере даны следующие параметры IPv6 сети

Доступный диапазон IPv6-адресов: 2a00:ab00:107:46:182:24:54:0000 — 2a00:ab00:107:46:182:24:54:FFFF

Маска: /48

Шлюз: 2a00:ab00:107::1

Тогда в консоли надо выполнить следующее:

# ip -6 addr add 2a00:ab00:107:46:182:24:54:1/48 dev eth0
# ip -6 route add ::/0 via 2a00:ab00:107::1 dev eth0


Настройка отправки почты через sendmail из php в Debian(Ubuntu)

1. Устанавливаем sendmail

apt-get install sendmail-base sendmail-bin

2. Настраиваем php

Правим в /etc/php5/apache2/php.ini

sendmail_path  = /usr/sbin/sendmail -t -i -f mail@mail.r

где mail@mail.ru любой реально существующий email, который в отправляемых письмах будет указан, если from не указано.

3. Перезапускаем apache

/etc/init.d/apache2 restart

Как восстановить(сбросить) root(postgres) пароль для PostrgeSQL в Debian(Ubuntu)

Случалось ли вам забывать root-пароль от PostgreSQL-сервера? Если это произошло, вам необходимо сделать следующее(для Debian или Ubuntu, другие дистрибутивы Linux отличаются разве что расположением конфигов и скриптов запуска)
Continue reading


Скрипт определения какие сайты из списка отдаются с определённого сервера.

Задача такая. Есть файл domains.txt, куда выведен выхлоп команды

ls -1 /etc/apache2/sites-enabled/

То есть список всех виртуалхостов. Требуется узнать, какие их них реально отдаются с этого сервера, а какие просто висят.  Все файлы этого каталога имеют имя то же самое, что и домен. Что позволяет обойтись в написании скрипта очень малой кровью.

Пишем небольшой скрипт domain_checker.pl

#!/usr/bin/perl
 
my @lines = ();
my $ip = $ARGV[0];
while(<STDIN>){
    chomp;
    @lines = `host $_`;
    chomp @lines;
    print $_."\n" if $lines[0]=~m/$_\s+has\s+address\s+$ip/i;
}

И пускаем его в таким образом

cat domains.txt | ./domain_checker.pl server_ip

А он нам выводит список доменов, отдающихся с этого сервера.

 


Простой шлюз на iptables для раздачи интернета с модемного соединения (ppp0) в Linux(Debian и Ubuntu).

В данной статье рассмотрен пример скрипта iptables для организации шлюза. Должен признать, что для организации совсем простого выхода в интернет через компьютер на Linux, подключенный к интернету через модемное соединение (например 3G модем) она содержит много лишнего и поначалу может запутать. Поэтому опишу совсем простой случай.
Continue reading


Установка нескольких версий PHP на один сервер (с помощью CGI и suexec)

  1. поставить для apache модуль suexec
  2. нужно собрать необходимые исполняемые файлы php(нужных версий)
  3. Надо найти в каталоге собранного php файлик asapi.cgi/php-cgi и скопировать, например, сюда /var/www/cgi-bin под именем php5.2 или php4.4 (для соответствующих версий php)
  4. Выставить нужные права для /var/www/cgi-bin/php5.2 или /var/www/cgi-bin/php4.4, владелец и группа у исполняемого файла И КАТАЛОГА В КОТОРОМ ОН ЛЕЖИТ должны быть такие-же как у web-сервера, например для debian — это www-data, а права — 775 (если мы хотил, чтобы php исполнялся от другого пользователя — назначаем во владельца и группы его)
  5. Прописать в виртуалхосте(или .htaccess) неодходимые строчки
  6. Перезапустить apache

Необходимые строчки для виртуалхоста apache

ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
AddType application/x-httpd-php .php
Action  application/x-httpd-php /cgi-bin/php5.2
#Action  application/x-httpd-php /cgi-bin/php4.4
SuexecUserGroup www-data www-data

Установка Zend Optimizer на PHP

Качаем

Находим там ZendOptimizer.so, копируем в нащежное песто и прописываем полный путь к нему в php.ini

zend_extension=/{Надёжное место}/ZendOptimizer.so

Не забудьте перепустить Apache, если php собран к нему модулем


Сборка php(типовой configure)

Качаем:

Конфигурируем:

./configure \
    --with-mysql \
    --with-mysqli \
    --with-zlib \
    --with-curl \
    --with-bz2 \
    --with-gd \
    --with-config-file-path=/var/www/hosts/domain.ru/cgi-bin/php.ini \
    --enable-mbstring \
    --with-xsl \
    --with-jpeg-dir=/usr/include \
    --with-freetype-dir=/usr/include \
    --with-xpm-dir=/usr/include

Собираем:

make

Ищем исполняемый файл в каталоге asapi


Настройка DNS-сервера(Bind)

Установка bind

# apt-get install bind9

Создание файла зоны

Создадим файл для зоны local (наша локальная сеть)

;
; BIND data file for local loopback interface
;
$TTL    604800
@       IN      SOA     local. root.local. (
                              2         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      local.
@       IN      A       192.168.1.1
debmybook       IN      A       192.168.1.64
baza            IN      A       192.168.0.128
desktop1        IN      A       192.168.0.1

Подключение зоны

Добавим в /etc/bind/named.conf.default-zones

Следующие строчки

zone "local"{
        type master;
        file "/etc/bind/db.local";
};

То есть определим зону и её файл

Назначение серверов перенаправления запросов

То есть пропишем следующие DNS-серверы, которым будет перенаправлен запрос, если наш не сможет его обработать. Для этого в файле cat /etc/bind/named.conf.options раскомментируем(или пропишем в секции options{ … }) следующие строчки

        forwarders {
                83.149.19.123;
        };

Запуск

# /etc/init.d/bind9 restart

Настройка Samba

Конфиг samba-сервера

[global]
workgroup = local
netbios name = baza
server string = baza
bind interfaces only = yes
;interfaces = eth0 192.168.1.5 192.168.1.1 127.0.0.1
;hosts deny = ALL
;hosts allow = 192.168.1.1 192.168.1.5 127.0.0.1
printcap name = /etc/printcap
;printing = cups
;cups options = raw
log file = /var/log/samba/log.smbd
max log size = 50
debug level = 5
security = user
encrypt passwords = yes
smb passwd file = /etc/samba/smbpasswd
socket options = TCP_NODELAY SO_SNDBUF=8192 SO_RCVBUF=8192
;local master = yes
;preferred master = yes
;domain master = no
wins support = no
dns proxy = no
guest ok = yes
guest account = nobody
unix charset = utf8
dos charset = cp866
display charset = cp866

[storage]
path = /media/storage
writable = yes
guest ok = no
valid users = r-asian
create mask = 0664
directory mask = 0775
read only = no

Монтирование samba-шары

Пропишем на монтирующей машине в /etc/fstab

//baza.local/storage    /mnt/storage    cifs    iocharset=utf8,codepage=cp866,username=***,password=***,uid=1000,gid=1000 0 0

Где //baza.local/storage — имя хоста и расшаренного каталога

Для такого монтированиея пакет cifs-utils должен быль установлен

# apt-get install cifs-utils