Автор Тема: Пошаговые инструкции для ALT Linux 4.0 Server  (Прочитано 96724 раз)

Оффлайн Salomatin

  • Модератор раздела
  • ****
  • Сообщений: 981
    • Пошаговые инструкции
    • Email
Убедительная просьба соблюдать правила форума и для каждого вопроса начинать новую тему.
А здесь размешать как написано вначале:

"в которой каждый желающий просто размещал бы свои пошаговые инструкции, удачно используемого у него сервиса на базе дистрибутива ALT Linux 4.0 Server"

Спасибо.
Хочешь понять сам, объясни другому.
"Если уже все испробовал и ничего не помогает - почитай инструкцию"


Оффлайн Salomatin

  • Модератор раздела
  • ****
  • Сообщений: 981
    • Пошаговые инструкции
    • Email
Пошаговая инструкция двадцать седьмая: Виртуальный хостинг

Шаг № 1: Устанавливаем  apache
Проверяем, установлен ли на нашем сервере apache
$rpm -qa | grep apache — если получаем пустую строку, то не установлен. Выбираем что будем ставить
$apt-cache search apache   читаем
apache - Самый популярный веб-сервер Internet
apache2 - Самый популярный веб-сервер Internet
ставим, root-ом. Для даем команду
$su -l 
вводим пароль и переходим в  рута
#apt-get install apache
проверяем:
$ rpm -qa | grep apache
apache-common-1.3.41rusPL30.23-alt4
apache-1.3.41rusPL30.23-alt4   - у вас могут отличаться названия

Шаг № 2: Запускаем apache
#apachectl start

Заходим http://10.0.0.1  - видим стартовую страницу
создаем каталог /var/www/html/sasha в который помещаем наш index.html и по адресу:  http://10.0.0.1/sasha , видим веб — страницу.

Шаг № 3:
Пусть DNS указывает один и тот же IP -адрес для нескольких хостов: Пинг с любого компьютера в инете посылает на один и тот же хост. Проверяем:
ping vvvv.ru
PING vvvv.ru (81.81.81.81) 56(84) bytes of data.
64 bytes from 81.81.81.81: icmp_seq=1 ttl=64 time=0.213 ms

ping pppp.ru
PING pppp.ru (81.81.81.81) 56(84) bytes of data.
64 bytes from 81.81.81.81: icmp_seq=1 ttl=64 time=0.213 ms

ping stat.pppp.ru
PING stat.ppppp.ru (81.81.81.81) 56(84) bytes of data.
64 bytes from 81.81.81.81: icmp_seq=1 ttl=64 time=0.213 ms

как мы помним в локальной сети наш сервер имеет адрес 10.0.0.1
и при помощи BIND локальные машины  видят виртуальные хосты под этим адресом.


 в  /etc/httpd/conf/vhosts/Vhosts.conf дописываем:

#############NameVirtualHost *

#########Include conf/vhosts.d/*.conf


################# Named VirtualHosts

NameVirtualHost 10.0.0.1
NameVirtualHost 81.81.81.81
<VirtualHost 10.0.0.1 81.81.81.81>
ServerName vvvv.ru
DocumentRoot  /var/www/vhosts/vvvv
<Directory /var/www/vhosts/vvvv>
          </Directory>
ErrorLog        /var/log/httpd/www-error.log
</VirtualHost>


NameVirtualHost 10.0.0.1
NameVirtualHost 81.81.81.81
<VirtualHost 10.0.0.1 81.81.81.81>
ServerName pppp.ru
DocumentRoot  /var/www/vhosts/pppp
<Directory /var/www/vhosts/pppp>
          </Directory>
ErrorLog        /var/log/httpd/www-error.log
</VirtualHost>


NameVirtualHost 10.0.0.1
NameVirtualHost 81.81.81.81
<VirtualHost 10.0.0.1 81.81.81.81>
ServerName stat.pppp.ru
DocumentRoot  /var/www/vhosts/stat
<Directory /var/www/vhosts/stat>
          </Directory>
ErrorLog        /var/log/httpd/www-error.log
</VirtualHost>

Include conf/vhosts.d/*.conf

Щаг № 4:
в etc/httpd/conf/httpd.conf комментируем: ###########DocumentRoot "/var/www/html"

перезапускаем: # service httpd restart

В директориях
/var/www/vhosts/vvvv
/var/www/vhosts/pppp
/var/www/vhosts/stat

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

Хочешь понять сам, объясни другому.
"Если уже все испробовал и ничего не помогает - почитай инструкцию"

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 251
  • Учиться .... Телепатами не рождаются, ими ....
    • Email

Оффлайн Salomatin

  • Модератор раздела
  • ****
  • Сообщений: 981
    • Пошаговые инструкции
    • Email
Пошаговая инструкция двадцать восьмая:  Сервер печати CUPS

Раздаем печать в локальной сети Linux и виндос машинам без самбы.

Устанавливаем ALT Linux 4.0 Server из коробки.
(Проверено, работает  для ALT Linux 4.1 Desktop и ALT Linux 4.0 office server)

Шаг № 1:  Редактируем /etc/cups/cupsd.conf  


# Administrator user group...
SystemGroup sys root

Port 631      ##добавляем это


# Only listen for connections from the local machine.
Listen localhost:631
Listen /var/run/cups/cups.sock

# Show shared printers on the local network.
Browsing On
BrowseOrder allow,deny
BrowseAllow all                 ##добавляем это
BrowseAddress @LOCAL     ##добавляем это

# Default authentication type, when authentication is required...
DefaultAuthType Basic

# Restrict access to the server...
<Location />
 Order allow,deny
 Allow all                ##добавляем это
</Location>

Правильнее разрешить не все, как в этом случае, а только нашей подсети

# Restrict access to the server...
<Location />
 Order Deny,Allow
 Deny From All
 Allow From 127.0.0.1
 Allow From 192.168.0.*
.
</Location>

# для того чтобы графически установить принтер на сервер
(в ALT Linux 4.1 Desktop это можно не делать, там работает своя графика)
 с любого компа локальной сети


# Restrict access to the admin pages...
<Location /admin>
  Encryption Required
  Order allow,deny
  Allow all                                     ##добавляем это, но после установки принтера уберем

</Location>

Далее по тексту


Далее в конфигах /etc/cups/mime.types и /etc/cups/mime.convs  раскомментировать строчку application/octet-stream

[root@testserv ~]# service cups restart


Шаг № 2: Устанавливаем принтер:

заходим в в ALT Linux 4.1 Desktop http://localhost:631

в  ALT Linux 4.0 Server   http://192.168.0.1:631    (192.168.0.1 - адрес сервера)

далее: Add Printer - Add New Printer - Name:  даем название принтера, в моем случае test_pr
остальное неважно, сервер сам увидит и установит, на  форуме это обсуждалось


Шаг № 3 :  Получаем печать на Linux  машине

Ничего настраивать не пришлось, все работает. По адресу
http://192.168.0.1:631/printers    видим принтер  и можем сразу распечатывать текстовый документ


Шаг № 4:  Получаем печать на видос хрю

Пуск - Панель управления - принтеры - Установка принтера - Сетевой принтер или принтер подключенный к другому компьютеру - Подключиться к принтеру в Интернете
Заполняем окно URL

 http://192.168.0.1:631/printers/test_pr    #важно как правильно мы назвали наш принтер

Дальше как принято  в винде, устанавливаем дрова и все такое.

« Последнее редактирование: 30.01.2010 15:09:28 от Salomatin »
Хочешь понять сам, объясни другому.
"Если уже все испробовал и ничего не помогает - почитай инструкцию"

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 251
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Port 631      ##добавляем это

Просто :
# control cups server

Оффлайн Salomatin

  • Модератор раздела
  • ****
  • Сообщений: 981
    • Пошаговые инструкции
    • Email
Пошаговая инструкция двадцать девятая:  Настройка сетевых карт.

Пример № 1: Статическое подключение
Получаем от провайдера статический IP-адрес  - 192.168.0.48 маска 255.255.255.0  Шлюз - 192.168.0.1
Настраиваем сервер с одной сетевой картой. Если есть еще сетевые карты, они должны быть  отключены, чтобы не влиять на наши настройки.

Открываем консоль и набираем:
$su -l вводим пароль root
Шаг № 1 Удаляем директорию и рекурсивно все ее содержимое
#rm -rf /etc/net/ifaces/eth0 Создаем каталог
#mkdir /etc/net/ifaces/eth0создаем три файла
#cat >>/etc/net/ifaces/eth0/ipv4address
192.168.0.48/24
сохранить (ctrl+d)
#cat >>/etc/net/ifaces/eth0/ipv4route
default via 192.168.0.1
сохранить (ctrl+d)
#cat >>/etc/net/ifaces/eth0/options
TYPE=eth
DISABLED=no
NM_CONTROLLED=no
BOOTPROTO=static
сохранить (ctrl+d)
Шаг № 2
перезагружаем сетевую карту
#service network restartЕдинственная сетевая карта настроена. Можно пинговать  провайдера.
Команда вывод адресов протокола
#ip a s
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
2: eth0: <BROADCAST,MULTICAST,PROMISC> mtu 1500 qdisc pfifo_fast qlen 1000
    link/ether 00:04:61:42:f4:bb brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.48/24 brd 192.168.0.255 scope global eth0
3: vboxnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
    link/ether 0a:00:27:00:00:00 brd ff:ff:ff:ff:ff:ff

Видим настройки нашей сетевой карты eth0

Команда вывод списка маршрутов
# ip r s
192.168.0.0/24 dev eth0  proto kernel  scope link  src 192.168.0.48
default via 192.168.0.1 dev eth0
все пакеты для локальной сети  192.168.0.0/24 отправляются через 192.168.0.48 сразу на адрес
Все остальные пакеты на 192.168.0.1, который должен знать что с ними делать.
#ip l s eth0 up
#ip l s eth0 down
- изменить параметры интерфейса up и down  изменяет состояние интерфейса на ВКЛЮЧЕН и ВЫКЛЮЧЕН.

Далее в примерах для краткости приводятся только содержание файлов. Редактировать можно любыми редакторами, Соблюдайте права при создании и редактировании файлов.
#ls -l
total 16
-rw-r--r-- 1 root root 16 Nov  2 20:47 ipv4address
-rw-r--r-- 1 root root 24 Nov  2 20:47 ipv4route
-rw-r--r-- 1 root root 36 Nov  2 20:47 options

Пример № 2 Использовать DHCP-клиента
В директории /etc/net/ifaces/eth0 должен быть всего один
file /etc/net/ifaces/eth0/options
TYPE=eth
DISABLED=no
NM_CONTROLLED=no
BOOTPROTO=dhcp
Шаг № 2 перезагружаем сетевую карту
#service network restartПроверяем информационными командами какой адрес нам присвоил провайдер и  тестируем

Пример № 3 Две сетевые карты.  
eth0 -  настроен по Пример № 1  или Пример № 2
eth1 -  локальная сеть,  по которой мы решили раздавать  инет.
Как раздавать инет это другая тема. Рассмотрим настройку сетевой карты.  
Локальная сеть у нас будет 176.16.0.0/24  и наш сервер с адресом 176.16.0.1 будет для нее шлюзом

Шаг № 1
file /etc/net/ifaces/eth1/ipv4address
176.16.0.1/24file /etc/net/ifaces/eth1/options
TYPE=eth
DISABLED=no
NM_CONTROLLED=no
BOOTPROTO=static
Шаг № 2 перезагружаем сетевые карты
#service network restart
Две сетевые карты настроены. Можем пинговать еще и локальный компьютер.
Сетевые карты могут поменяться местами, тогда переключаем провода. (как закреплять карты другая тема)

Пример № 4 Присвоение одной сетевой карте нескольких IP-адресов
Шаг № 1
file /etc/net/ifaces/eth1/ipv4address
176.16.0.1/24
176.16.0.120/.24
176.16.0.253/24
file /etc/net/ifaces/eth1/options  такой же
Шаг № 2 перезагружаем сетевые карты
#service network restart
Можно даже из разных подсетей:
file /etc/net/ifaces/eth1/ipv4address
176.16.0.1/24
192.168.10.1/.24
10.0.8.1/24

Из локальной сети все эти адреса пинговаться будут.

Пример № 5: Подключение внешней локальной сети для игр и обмена файлами
Мы решили подключить наш сервер к дворовой сети под названием "Суперюзер".
Получаем от них статический IP-адрес  - 10.0.2.148 маска 255.255.255.0  Шлюз - 10.0.2.1
Для доступа в инет использовать не планируем, но интересно по их сети качать файлы и играть.  
Мы не можем у себя прописать два шлюза. Так работать ничего не будет. Пакеты не могут каким либо чудесным образом узнавать в какой шлюз им отправляться. В инет мы ходим через eth0, поэтому шлюз остается прежним, что в Пр.1 и в Пр.2.
Мы узнаем, что "Суперюзер" использует несколько подсетей 10.0.0.0/4 ; 10.0.1.0/24 ; 10.0.2.0/24 ; 10.0.3.0/24
Если мы настроим сетевую карту как в Пр3, то не сможем оправить пакет на адрес подсети 10.0.0.3/24.  Наш шлюз не поймет куда его отправлять. Поэтому прописываем маршрут:

file /etc/net/ifaces/eth2/ipv4address
10.0.2.148/24file /etc/net/ifaces/eth2/ipv4route
10.0.0.0/24 via 10.0.0.1
10.0.1.0/24 via 10.0.0.1
10.0.2.0/24 via 10.0.0.1
10.0.3.0/24 via 10.0.0.1
file /etc/net/ifaces/eth2/options
TYPE=eth
DISABLED=no
NM_CONTROLLED=no
BOOTPROTO=static

Для краткости можно описать диапазон их адресов как сеть 10.0.0.0/22
и file /etc/net/ifaces/eth2/ipv4route получится короче
10.0.0.0/22 via 10.0.0.1
Пример № 6: Подключение внешней локальной сети DHCP- клиентом
Фирма "Суперюзер" растет и завела DHCP-сервер. Перешли на динамическую раздачу адресов. Если выявляют статические подключения, ходят и отключают.  Больше никакой информации.
Для доступа в инет этого провайдера использовать также не планируем, но не отказываемся  качать файлы и играть.

file /etc/net/ifaces/eth2/options
TYPE=eth
DISABLED=no
NM_CONTROLLED=no
BOOTPROTO=dhcp
DHCP_ARGS="-R"
Запись:
Цитировать
DHCP_ARGS="-R"
говорит о том, что мы не будем от них получать  DNS. Они у нас уже есть и пока не усложняем.
Шаг № 2 перезагружаем сетевую карту
#service network restartАвтоматически присвоен адрес
#ip a s
eth2: <BROADCAST,MULTICAST,NOTRAILERS,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
    link/ether 00:1a:92:16:5b:8b brd ff:ff:ff:ff:ff:ff
    inet 10.52.27.137/22 brd 10.52.27.255 scope global eth2
и появился второй шлюз
# ip r s
10.52.24.0/22 dev eth2  proto kernel  scope link  src 10.52.27.137
default via 10.52.24.1 dev eth2

который теперь нам будет мешать. Но мы можем этот шлюз отключить и отправлять туда только  пакеты  их подсетей. Диапазон можно узнать у провайдера. Либо вообще  пакеты всей сети 10.XX.XX.XX , для краткости описав  как сеть 10.0.0.0/8
file /etc/net/ifaces/eth2/ipv4route
10.0.0.0/8 via 10.52.24.1file /etc/net/ifaces/eth2/options
TYPE=eth
DISABLED=no
NM_CONTROLLED=no
BOOTPROTO=dhcp
DHCP_ARGS="-R -G"
опция -G не получать шлюз  

У нас работает инет, локальная сеть и мы общаемся с дворовой сетью.
« Последнее редактирование: 30.01.2010 15:09:59 от Salomatin »
Хочешь понять сам, объясни другому.
"Если уже все испробовал и ничего не помогает - почитай инструкцию"

Оффлайн Salomatin

  • Модератор раздела
  • ****
  • Сообщений: 981
    • Пошаговые инструкции
    • Email
Пошаговая инструкция тридцатая:  DNS-клиент, настройка и устранение неполадок.

Настроить DNS-клиент для рабочей станции или сервера правильнее графическими конфигураторами. Основной и дополнительный DNS-сервер провайдера получаем автоматически, если используем DHCP-клиент или прописываем вручную при статике.

Рассмотрим на примерах, как поступать, если происходят сбои, не  удалось подключится или не хочется часто менять записи   на локальных машинах.
Конечно много написано, но когда не работает, готов прочитать и больше. Лишнего  мало, а когда уже все испробовал и ничего не помогает — полезно почитать инструкцию.

Итак:
Графика нам не поможет, поэтому придется использовать консоль.  Все что вам нужно, это мышкой  копировать команды из этой инструкции, вставлять их и нажимать Ввод.

Для начала нам надо убедиться, что проблема в DNS.

Открываем консоль и пингуем публичный сервер в инете.

vova@vova ~]$ping ya.ruесли пинги не проходят, то пробуем пропинговать по IP-адресу
vova@vova ~]$ping 77.88.21.8пинги проходят.
Выносим приговор: У нас действительно проблемы с DNS доступом к провайдеру.  ( для окончательного диагноза надо продублировать команды на разные публичные сервера, если и по IP не проходят, то проблема общего подключения.)

DNS- сервера провайдера сообщаются цифрами и никогда не бывают типа http://dns.ru
Как узнать их? Спросить у провайдера, обычно они сообщают. Однако не факт, что телефонная барышня техподдержки назовет их правильно. Можно подсмотреть на работающей машине виндос: Пуск - Программы — Стандартные — Командная строка,  даем команду ipconfig /all  и читаем вывод, до соединения VPN, после, если оно есть.

Итак у нас,  для примера, два IP
Основной DNS  -  81.81.81.81
Дополнительный — 82.82.82.82
их два, потому что не может не работать, хотя бы один.

Попробуем пропинговать, обычно они не закрыты от пинга. Если пинги проходят, проверим каким маршрутом идут пакеты. Показываю свой пример:
vova@vova ~]$ traceroute 77.247.208.70
traceroute to 77.247.208.70 (77.247.208.70), 30 hops max, 40 byte packets
 1  10.0.0.1 (10.0.0.1) 0.161 ms  0.130 ms  0.152 ms
 2  77.247.209.129 (77.247.209.129) 1.414 ms  0.737 ms  1.001 ms
 3  77.247.211.25 (77.247.211.25) 1.574 ms  0.947 ms  0.855 ms
 4  mx.ural-it.com (77.247.208.70) 0.867 ms  1.025 ms  0.639 ms
 
Если вывод с точками, то лучше применить команду tracepath.
Мы видим, что пакет проходит через шлюз локальной сети, шлюз провайдера, еще пару шагов по его сети и на месте.
Это правильно. Неправильно, если таких шагов много и вы обращаетесь к DNS-серверу как бы снаружи, из инета.  Получается либо  вы обращаетесь к чужому DNS, либо у вас ошибка в маршрутизации.

Что еще можно проверить: Должен быть открыт 53 порт и сервер его слушает.
[vova@vova ~]$ nmap -p 53 77.247.208.70

Starting Nmap 4.20 ( http://insecure.org ) at 2009-11-06 12:06 YEKT
Interesting ports on ural-net.ru (77.247.208.70):
PORT   STATE SERVICE
53/tcp open  domain

Nmap finished: 1 IP address (1 host up) scanned in 0.375 seconds
Мы видим что открыт 53 порт. Это правильно.
Если там строка
53/tcp closed unknown   значит ошибка, если не отвечает ничего можем проверить еще и
[vova@vova ~]$ netcat -v -w 4 -z 77.247.208.70 53
Connection to 77.247.208.70 53 port [tcp/domain] succeeded!
#это правильно
[vova@vova ~]$ netcat -v -w 4 -z 77.247.208.70 53
netcat: connect to 77.247.208.70 port 53 (tcp) failed: Connection refused
Connection to 77.247.208.70 53 port [tcp/*] failed : Connection refused
Это не правильно.  Надо разбираться почему.

Если все хорошо, продолжаем:
Заходим суперпользователем, т.е даем команду
[vova@vova ~]$ su -l
Password:  набираем пароль root'a
[root@vova ~]# получаем приглашение в виде решетки # а не $ как было раньше

Нам надо проверить к какому dns фактически обращается наш компьютер. Информация хранится в
[root@vova ~]# cat /etc/resolv.conf
# Generated by dhcpcd for interface eth0
nameserver 81.81.81.81
search domain.org

Если там нет ничего похожего на известные нам IP, то разбираемся почему путаница, может дали не то.

Попробуем прописать сами.
На всякий случай сохраняем файл этот файл в каталоге roor, удалим и создадим новый.
[root@vova ~]# cp /etc/resolv.conf /root
[root@vova ~]#rm /etc/resolv.conf
[root@vova ~]#cat >>/etc/resolv.conf
nameserver 81.81.81.81
nameserver 82.82.82.82
сохранить (ctrl+d)

запускаем специальный скрипт resolv.all командой
[root@vova ~]#/etc/chroot.d/resolv.all
Все должно работать. DNS настроен.  Попробуйте открыть домашнюю страничку провайдера. Если открывает только ее, то значит у вас внутренний dns. Если заработало, но опять сбилось, можем прибить гвоздями.
Причин много, обновлялись, подгружали пакеты, потянулись связи, редактируют новые интерфейсы.

Даем команду

[root@vova ~]#chmod u-w /etc/resolv.conf и уже никто не сможет редактировать этот файл, даже сам root, пока право на запись не восстановит.

Это радикальный способ, если сбоев не будет и вас все устраивает, то можно на этом и все остановиться.

Как делать правильней:
Правильней поручить специальному сервису BIND. Сам это часто делаю на машинах ALT. Так проще, чем разбираться.
Для этого проделаем всего четыре простых шага:

Шаг № 1 Ставим bind
[root@vova ~]# apt-get install bind bind-utils
Шаг 2: правим /var/lib/bind/etc/options.conf
Нас интересуют всего две строки, мы их раскомментируем и запишем
listen-on {127.0.0.1; 10.0.0.1; };127.0.0.1 чтобы наш сервер мог обращаться к bind и 10.0.0.1 обязательно IP адрес той сетевой карты, которая стоит на нашем сервере и которую потом будем указывать на хостах локальной сети как сервер DNS
 и вторая строка
forwarders {81.81.81.81; 82.82.82.82; 83.83.83.83; };указываем все DNS, которые нам дал провайдер. Провайдер может быть не один.  BIND это не интересует, он будет перебирать по порядку указанные DNS, пока не получит ответ.

Шаг 3: запускаем bind и включаем его в список для автозагрузки

[root@vova ~]#service bind restart
[root@vova ~]#rndc reload
[root@vova ~]#chkconfig --level 35 bind on
Шаг № 4: уже нам знаком
[root@vova ~]#rm /etc/resolv.conf
[root@vova ~]#cat >>/etc/resolv.conf
nameserver 127.0.0.1
сохранить (ctrl+d)
и можем прибить гвоздями
[root@vova ~]#chmod u-w /etc/resolv.conf
Тестируем пингуя публичный сервер.
Останавливаем bind
[root@vova ~]#service bind stopне можем пинговать
Запускаем
[root@vova ~]#service bind stаrtпингуем, оставляем в строке forwarders всего один 81.81.81.81 и перезапускаем
[root@vova ~]#service bind restart таким образом выявляем нерабочие DNS, разбираемся и оставляем рабочие.

Теперь, если вы поменяли провайдера, вам не надо ничего менять на машинах локально сети, вносите изменения в /var/lib/bind/etc/options.conf , строку forwarders {та — та }, затем

[root@vova ~]#service bind restart и все опять работает.

Работает надежно, как правило, больше к этому не возвращаешься.

Если и после выполнения этой инструкции у вас не заработало, то значит скорее всего вы невнимательно ей следовали, и только в самую последнюю очередь дело в чем-то другом.
 
Описание тестовое, прошу подсказать увиденные ошибки и замечания.

Благодарю за внимание.
« Последнее редактирование: 30.01.2010 15:10:33 от Salomatin »
Хочешь понять сам, объясни другому.
"Если уже все испробовал и ничего не помогает - почитай инструкцию"

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 251
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Настройки /etc/resolv.conv должны перезаписываться из /etc/net/ifaces/ИМЯ_ИНТЕРФЕЙСА/resolv.conf при поднятии соответствующего интерфейса. Это сделано с тем прицелом, что каждый интерфейс может добавлять свой DNS. Перезаписывается полностью, или добавляется - зависит от настроек.
DNS по-умолчанию берётся из /etc/net/ifaces/default/resolv.conf, который перезаписывает текущий, при поднятии сети (если конечно текущий не прибит гвоздями, как в вашей инструкции). 

Оффлайн Salomatin

  • Модератор раздела
  • ****
  • Сообщений: 981
    • Пошаговые инструкции
    • Email
Настройки /etc/resolv.conv должны перезаписываться из /etc/net/ifaces/ИМЯ_ИНТЕРФЕЙСА/resolv.conf при поднятии соответствующего интерфейса. Это сделано с тем прицелом, что каждый интерфейс может добавлять свой DNS. Перезаписывается полностью, или добавляется - зависит от настроек.
DNS по-умолчанию берётся из /etc/net/ifaces/default/resolv.conf, который перезаписывает текущий, при поднятии сети (если конечно текущий не прибит гвоздями, как в вашей инструкции).  

Да, правильно. Спасибо, что обратили внимание.
Понял это, когда увидел resolv.conf в каталогах интерфейсов Альт Линукс 5.0 Ковчег Сервер.
Поэтому в самом начале предлагаю пользоваться графическими конфигураторами, которые все это ВРОДЕ как знают и умеют.

Но что далать если это не помогает, а об такое спотыкался и не раз.
Во-первых пример  для   ALT Linux 4.0 Server, а там интерфейсы пытаются перезаписывать напрямую /etc/resolv.conf, а не создают /etc/net/ifaces/ИМЯ_ИНТЕРФЕЙСА/resolv.conf
Потом,  если два провайдера или   если подключаем продвинутую локальную сеть со своими внутренним DNS. Конфигуратор сам никогда не сообразит кого и по какому принципу выбирать. Тем более по какому маршруту обращаться к своему DNS.

Проблемы возникают, даже если один провайдер.
Например is74.ru DHCP - клиентам выдает внутренние DNS , для посещений личного кабинета без PPTP соединения. Эти DNS даже иногда знают ip-адрес mail.ru. Но провайдер не хочет чтобы бесплатно использовали его DNS и обрезает их, а при платном соединении перезаписывает новые сервера.
Но и это еще не все.
Каким-то чудесным образом запрещает на них прокси и когда поднимаешь на сервере squid в локальной сети mail.ru  открывается, только когда указываешь IP - адрес напрямую цифрами.

На рабочей станции, при простом подключении конфигуратор подойдет, хотя и это уже не факт.
Но на сервере, при такой надежности и навязчивости провайдеров,  думаю все эти  /etc/net/ifaces/default/resolv.conf становятся малоинтересными и все-таки  разумнее сразу ставить BIND  и "прибивать гвоздиками" resolv.conf.  

 
  
Хочешь понять сам, объясни другому.
"Если уже все испробовал и ничего не помогает - почитай инструкцию"

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 251
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Обычно провайдер присылает новый dns по dhcp. Если это отразить в настройках, то это тоже работает.
настройка в 4.x и 5.x с dns отличается уже тем, что в 4.1 по-умолчанию включался сервер dnsmasq, который перезаписывал /etc/resolv на себя (кстати там не было по-умолчанию bind ) а в 5.0 появился openresolv, который всзял управление файлами resolv.conf на себя.

Оффлайн Salomatin

  • Модератор раздела
  • ****
  • Сообщений: 981
    • Пошаговые инструкции
    • Email
Обычно провайдер присылает новый dns по dhcp. Если это отразить в настройках, то это тоже работает.
настройка в 4.x и 5.x с dns отличается уже тем, что в 4.1 по-умолчанию включался сервер dnsmasq, который перезаписывал /etc/resolv на себя (кстати там не было по-умолчанию bind ) а в 5.0 появился openresolv, который всзял управление файлами resolv.conf на себя.
Вот видите, вы прекрасно иллюстрируете все разнообразие придуманного разработчиками, даже за период от версии 4.0 до 5.
Судя по уточнению
Только одно уточнение. Судя по этой теме, редактировать /etc/resolv.conf руками не рекомендуется.
разработчики и на этом не успокоятся.
Понятно, что это удобно для рабочей станции и идет поиск решения, но для сервера, такое многообразие и постоянные вводные начинают утомлять.

Почему вдруг, пусть даже многоуважаемый openresolv, будет управлять файлами resolv.conf. Он никогда не узнает сколько денег платят тому или иному провайдеру и что провайдер может выкинуть еще. Не всегда разумно, что даже root, который может просто выключить сервер из розетки,  не может иногда своей властью  сам решать, кто будет DNS, а его могут "втихоря" подправить. 

Поэтому решил для себя и рекомендую другим, при практическом использовании (если конечно не хотят проверять сборки у себя)  в ALT 4.0 server, не вспоминать, а в 4.1 и 5.0 забыть про openresolv.  "Прибивать гвоздиками" и поднимать BIND, хотя похоже скоро доберутся и до него.

Дело конечно вкуса, может кто хочет прибегать и узнавать, что у него DNSы перезаписали, но пока так неожиданностей в работе сервера будет меньше.
Хочешь понять сам, объясни другому.
"Если уже все испробовал и ничего не помогает - почитай инструкцию"

Оффлайн Salomatin

  • Модератор раздела
  • ****
  • Сообщений: 981
    • Пошаговые инструкции
    • Email
Пошаговая инструкция  тридцатая  Nginx - веб-сервер и почтовый прокси-сервер
По данным Netcraft за июнь 2009 года число сайтов, обслуживаемых nginx превысило 8,77 миллиона, что делает его пятым по популярности веб-сервером в мире.

Шаг №1:  Ставим Nginx
apt-get install nginx
Шаг №2:  Переключаем Apache для получения запросов от Nginx

В file /etc/httpd/conf/httpd.conf находим и запрещаем Apache слушать 80 порт, разрешая локальный, например, 8000

#Listen 3000
#Listen 12.34.56.78:80
###Listen 80
Listen 127.0.0.1:8000
перегружаем Apache
service httpd restart
Шаг №2:  Запускаем Nginx

Редактируем file /etc/nginx/nginx.conf

worker_processes  10;

error_log   /var/log/nginx/error.log;

events {
        worker_connections  1024;
}

http {
        types_hash_bucket_size 64;                                                            ### это добавили
        proxy_temp_path /var/spool/nginx/tmp/proxy;
        fastcgi_temp_path /var/spool/nginx/tmp/fastcgi;
        client_body_temp_path /var/spool/nginx/tmp/client;

        include       /etc/nginx/mime.types;
        default_type  application/octet-stream;

        sendfile  on;

        gzip  on;

        # text/html don't need to be defined there, it always compressed
        gzip_types text/plain text/css text/xml application/x-javascript application/atom+xml;

        # gzip_comp_level 9;

        server {
                listen  :80;                                                                           ### это изменили
                server_name localhost;                                                         ### это изменили

        location / {
            root /var/www/html;

                # autoindex off;
                # autoindex_exact_size on;
                # autoindex_localtime off;

                # expires off;

                # cooperate with mod_realip in apache-1.3 or mod_rpaf in apache-2.x
                #       proxy_redirect off;
                #       proxy_set_header Host $host;
                #       proxy_set_header X-Real-IP $remote_addr;
                #       proxy_set_header X-Forwarded-For $remote_addr;
                        proxy_pass http://127.0.0.1:8000;                                       ### это изменили
        }

#        charset         on;
#        source_charset  koi8-r;

                access_log  /var/log/nginx/access.log;
        }

}

Запускаем Nginx
service nginx restart
Nginx принимает соединение от клиента и открывает соединение к Apache. Последний выполняет свою работу, отдает свой ответ nginx и Apache освобождает ресурсы.
Далее nginx медленно отдает контент клиенту, тратя при этом на порядки меньше ресурсов, чем Apache.
Такая схема называется фронтэнд + бэкенд (frontend + backend).

Но Nginx умеет не только это.
« Последнее редактирование: 28.11.2009 02:43:54 от Salomatin »
Хочешь понять сам, объясни другому.
"Если уже все испробовал и ничего не помогает - почитай инструкцию"

Оффлайн Salomatin

  • Модератор раздела
  • ****
  • Сообщений: 981
    • Пошаговые инструкции
    • Email
Пошаговая инструкция  тридцать вторая: Nginx  на отдельном канале

Есть настроенный и проверенный веб-сервер Apache. Работает веб-хостинг, форумы,  несколько внешних IP.

Задача: Ничего не поломав, максимально сохранив настройки, разгрузить Apache используя  Nginx на отдельном канале.

Рассмотрим пример, когда сервер одной из сетевых карт смотрит в инет 81.81.81.81 (eth0) и работу только на этом канале мы хотим оптимизировать.

Шаг №1:  Ставим Nginx
apt-get install nginx

Шаг №2:  Запускаем Nginx

Редактируем file /etc/nginx/nginx.conf

worker_processes  10;

error_log   /var/log/nginx/error.log;

events {
        worker_connections  1024;
}

http {
        types_hash_bucket_size 64;                               ### это добавили
        proxy_temp_path /var/spool/nginx/tmp/proxy;
        fastcgi_temp_path /var/spool/nginx/tmp/fastcgi;
        client_body_temp_path /var/spool/nginx/tmp/client;

        include       /etc/nginx/mime.types;
        default_type  application/octet-stream;

        sendfile  on;

        gzip  on;

        # text/html don't need to be defined there, it always compressed
        gzip_types text/plain text/css text/xml application/x-javascript application/atom+xml;

        # gzip_comp_level 9;

        server {
                listen  :85;                                ### это изменили
                server_name localhost;            ### это изменили

        location / {
            root /var/www/html;

                # autoindex off;
                # autoindex_exact_size on;
                # autoindex_localtime off;

                # expires off;

                # cooperate with mod_realip in apache-1.3 or mod_rpaf in apache-2.x
                       proxy_redirect off;                                            ### убираем комментарий  
                       proxy_set_header Host $host;                           ### убираем комментарий  
                       proxy_set_header X-Real-IP $remote_addr;       ### убираем комментарий  
                       proxy_set_header X-Forwarded-For $remote_addr;   ### убираем комментарий    
                        proxy_pass http://81.81.81.81:80;                      ### это изменили
        }

#        charset         on;
#        source_charset  koi8-r;

                access_log  /var/log/nginx/access.log;
        }

}
   
Запускаем Nginx
service nginx restart

Шаг №3:  Организуем прохождение запросов на канале через Nginx

С помощью iptables перенаправляем входящий трафик на eth0 с 80 порта на 85, т.е. перенаправляем трафик на nginx, откуда он уже будет отдавать его apache, как обычно на 80 порт.

iptables -t nat -А PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 85

Тестируем. Все работает.

Шаг №4:  Модуль mod_rpaf для Apache

Появляется проблема: Nginx передает апачу не IP пользователя посетившего ресурс а IP самого сервера. Тогда во всех логах получается айпи сервера, что не есть хорошо. Решается проблема установкой модуля для Apache  mod_rpaf.

На сайте http://sisyphus.ru/ находим этот модуль, скачиваем и устанавливаем. Допустим так:

wget ftp://ftp.altlinux.org/pub/distributions/ALTLinux/Sisyphus/files/i586/RPMS/apache-mod_rpaf-0.6-alt2.i586.rpmapt-get install apache-mod_rpaf-0.6-alt2.i586.rpm
В самый конец file /etc/httpd/conf/httpd.conf добавляем

      LoadModule rpaf_module modules/mod_rpaf.so
       RPAFenable On
       RPAFsethostname On
       RPAFproxy_ips 127.0.0.1 81.81.81.81
и перегружаем Apache
service httpd restart
Тестируем как работает установленный модуль.
На любом из доменов, которые расположены на Вашем сервере, разместите файл test.php с содержимым:
<?
 echo $_SERVER['REMOTE_ADDR'];
 ?>
Далее заходим по ссылке http://Ваш_домен/test.php. Если как результат отображается IP, отличающийся от IP вашего сервера, модуль работает корректно.

Шаг №5:  Сохраняем изменения
Не забываем сохранить изменения, чтобы они вступили в силу после перезагрузки:

chkconfig nginx on
iptables-save > /etc/sysconfig/iptables

« Последнее редактирование: 30.01.2010 15:17:20 от Salomatin »
Хочешь понять сам, объясни другому.
"Если уже все испробовал и ничего не помогает - почитай инструкцию"

Оффлайн Salomatin

  • Модератор раздела
  • ****
  • Сообщений: 981
    • Пошаговые инструкции
    • Email
Пошаговая инструкция  тридцать вторая: Корпоративный сайт на Joomla

Устанавливаем ALT Linux 4.0 Server из коробки.


Шаг №1:  Добавляем недостающие программы
[root@server ~]#apt-get install apache apache-common apache-mod_php5
#[root@server ~]#apt-get install MySQL-server php5 php5-mysql unzip

Шаг №2:  Вносим изменения в PHP

Увеличиваем максимальное количество памяти, которое может потреблять наш PHP, изначально стоит 5M

В file /etc/php/5.2.2/apache-mod_php/php.ini находим строку (обычно 304)

memory_limit = 5M       ; Maximum amount of memory a script may consume (5MB)
и заменяем на

memory_limit = 128M
находим строку (обычно 226)

safe_mode = Onзаменяем на
safe_mode = Off
увеличиваем лимит загружаемых файлов, т.е находим и исправляем строки

post_max_size = 2M   
upload_max_filesize = 2M

post_max_size = 20M
upload_max_filesize = 20M

если конечно такие большие файлы решили разрешить загружать. Так 2M обычно хватает.
(показано, чтобы знать где изменять)


Шаг №3:  Запускаем сервисы

[root@server ~]#service httpd restart
[root@server ~]#service mysqld restart
включаем их в автозагрузку

[root@server ~]#chkconfig --level 35 mysqld on
[root@server ~]#chkconfig --level 35 httpd on

Заходим по адресу http://192.168.0.1/
видим тестовую страницу

Шаг №4:  Назначаем пароль и создаем базу в mysqld

Изначально пароля нет, поэтому входим

mysql -u root
получаем приглашение

mysql>задаем пароль
mysql>SET  PASSWORD  =  PASSWORD('some password');
Query OK, 0 rows affected (0.01 sec)
обязательно точка с запятой в конце команд, кроме выход
создаем новую базу под именем  DBName

mysql> create database DBName;
mysql> quit

[root@server ~]#service mysqld restart
Шаг №5:  Устанавливаем Joomla

скачиваем из инета скрипт Joomla, у меня он получился в таком виде
Joomla_1.5.14-Stable-Full_Package-Russian.zip

размещаем архив в каталоге /var/www/html и распаковываем его командой

unzip Joomla_1.5.14-Stable-Full_Package-Russian.zip
меняем название каталога

mv Joomla_1.5.14-Stable-Full_Package-Russian joomla
удаляем архив

устанавливаем права

chown -R apache:apache /var/www/html/joomla
chmod -R 660 /var/www/html/joomla
chmod -R u+X /var/www/html/joomla

Шаг №6:  Запускаем скрипт Joomla

Заходим по адресу http://192.168.0.1/joomla

отвечаем на вопросы и заполняем по шагам уже этого скрипта

Шаг 4 : База данных
заполняем

Название хоста 
localhost     
   Имя пользователя 
 root     
   Пароль:  пароль который мы задали в шаге № 4 
       
   Имя базы данных 
 DBName

Больше ничего необычного.
« Последнее редактирование: 05.02.2010 17:16:44 от Salomatin »
Хочешь понять сам, объясни другому.
"Если уже все испробовал и ничего не помогает - почитай инструкцию"