ПЕРЕМЕННЫЕ ОКРУЖЕНИЯ

Написано: среда, 24 ноября 2010 г. автор shumer
0

DOCUMENT_ROOT

Корневой каталог документов веб-сервера. Например, если при запросе http://www.my-web-server.ru/ сервер пересылает посетителю файл d:/www/index.html, значением переменной DOCUMENT_ROOT будет d:/www. Это обычно совпадает с тем, что указано в директиве DocumentRoot конфигурационного файла сервера Apache.

CONTENT_LENGTH

Длина тела запроса. Обычно это поле анализируют, если получен запрос типа POST.

CONTENT_TYPE

Тип принятых данных. Например, multipart/form-data.

GATEWAY_INTERFACE

Имя и версия CGI-протокола. Например: CGI/1.1. Эта переменная может оказаться полезной, чтобы определить, откуда запущена программа. Если значение переменной отсутствует, то программа, скорее всего, вызвана не через веб, а запущена из командной строки на сервере.

HTTP_ACCEPT

Список mime-типов, которые способен принять браузер. Переменная может содержать только маску */*, либо список значений, разделенных запятыми: text/html, image/png, image/jpeg, image/gif, image/x-xbitmap, application/msword.

HTTP_ACCEPT_CHARSET

Список воспринимаемых браузером кодировок. Например, windows-1251;q=1.0, utf-8;q=1.0, utf-16;q=1.0, iso-8859-1;q=0.6, *;q=0.1. Обратите внимание, что после каждой кодировки указан ее «вес», который расставляет кодировки в порядке предпочтения.

HTTP_ACCEPT_ENCODING

Список типов кодирования, которые понимает браузер. Например: gzip, deflate, x-gzip.

HTTP_ACCEPT_LANGUAGE

Список языков, которые принимает браузер. Например: ru, en.

HTTP_CACHE_CONTROL

Способ кэширования документов (или указание о его отсутствии). Например: no-cache. В ранних версиях Netscape Navigator это значение доступно в переменной HTTP_PRAGMA.

HTTP_CONNECTION

Тип соединения. Например: Keep-Alive.

HTTP_COOKIE

Список пар вида имя=значение, содержащихся в cookiе для текущей страницы или сервера. Значения cookie устанавливает веб-сервер, а браузер клиента сохраняет их и передает серверу при следующих запросах, ведущих на тот же сервер.

HTTP_HOST

Запрошенное доменное имя. Часто бывает так, что один и тот же сервер доступен по нескольким адресам, например, http://www.my-web-server.ru и http://my-web-server.ru. Переменная примет значения www.my-web-server.ru и my-web-server.ru, соответственно. Переменную можно использовать, чтобы автоматически перенаправлять браузер на другой адрес, например, если вы приобрели новое, более красивое, доменное имя.

HTTP_REFERER

Адрес страницы, с которой пользователь попал на сервер. Например, если на странице http://www.web-server-1.ru/index.html стоит ссылка на ресурс http://www.web-server-2.ru/index.html, то второй веб-сервер получит в этой переменной значение http://www.web-server-1.ru/index.html. С помощью переменной HTTP_REFERER можно узнать, кто ссылается на ваш сервер. Более того, если посетитель пришел с поисковой системы, часто в переменной виден тот запрос, по которому вас нашли.

HTTP_USER_AGENT

Идентификатор клиентской программы (браузера) и операционной системы. Значение этой переменной не стандартизировано и формируется браузером так, что в ней содержится имя и версия браузера одновременно с версией операционной системы. Например, Microsoft Internet Explorer 6.0 под управлением Windоws XP передает такую строку: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3705).

QUERY_STRING

Строка запроса. Если пользователь запросил документ и указал дополнительные параметры, например, http://www.my-web-server.ru/index.html?var1=name1, переменная получит значение var1=name. Эта переменная активно применяется при обработке веб-форм.

REDIRECT_QUERY_STRING

Эта и две следующие переменные появляются в том случае, если при запросе некоего ресурса веб-сервер выполнил внутреннее перенаправление, например, на скрипт, который указан в качестве индексного файла для текущего каталога, либо при вызове CGI-программы директивой SSI. В переменной REDIRECT_QUERY_STING содержатся те же данные, что и в переменной QUERY_STRING.

REDIRECT_STATUS

При перенаправлении в этой переменной указан код ответа, например, 200.

REDIRECT_URL

Если на сервере выполнено перенаправление, эта переменная содержит запрошенный URI.

REMOTE_ADDR

IP-адрес пользователя. В том случае, если между пользователем и веб-сервером находится прокси-сервер, переменная скорее всего будет содержать адрес прокси-сервера.

REMOTE_HOST

Имя узла пользователя или его прокси-сервера. Если эта переменная не установлена, можно воспользоваться значением переменной REMOTE_ADDR.

REMOTE_PORT

Номер порта клиента. Если на машине клиента одновременно работают несколько браузеров, значение этой переменной окажется различной для каждого из них. Интересно отметить, что, например, устаревший ныне браузер Netscape Navigator 2 увеличивает номер порта при каждом обновлении страницы.

REQUEST_METHOD

Текущий метод HTTP-запроса. Например: GET или HEAD.

REQUEST_URI

URI запрошенного документа. Понятие URI часто путают с URL. Если запрошена страница http://www.my-web-server.ru/dir/index.html, переменная примет значение /dir/index.html. Если в запросе содержится строка запроса (помещаемая в переменную QUERY_STRING), она останется и в переменной REQUEST_URI.

SCRIPT_FILENAME

Путь к скрипту на веб-сервере. Переменная устанавливается, если пользователь запросил CGI-скрипт или программу, а не html-документ. Например: d:/www/cgi/2/c2.exe.

SCRIPT_NAME

URI скрипта, если запрошен CGI-скрипт или программа, а не html-документ. В отличие от переменной REQUEST_URI, строка запроса теряется.

SERVER_ADDR

IP-адрес веб-сервера.

SERVER_ADMIN

Адрес электронной почты администратора сервера. Значение переменной зависит от того, что указано в файле конфигурации.

SERVER_NAME

Имя сервера. Оно может не совпадать с доменным именем. Значение этой переменной указано в конфигурационном файле.

SERVER_PORT

Номер порта веб-сервера, по которому он ожидает запросы. Наиболее вероятное значение — 80.

SERVER_PROTOCOL

Имя и версия протокола, согласно которому веб-сервер общается с клиентом. Например: HTTP/1.1.

SERVER_SOFTWARE

Название и версия веб-сервера. Здесь также может содержаться упоминание об операционной системе. Например: Apache/1.3.14 (Win32).

Как отключить SELinux

Написано: автор shumer
0

1. Открываем файл /etc/sysconfig/selinux
2. Устанавливаем параметр SELinux = disabled
3. Сохраняем изменения файла.

Linux маршрут по умолчанию

Написано: автор shumer
0

Что бы просмотреть информацию о маршрутах в системе нужно выполнить комманду

$ /sbin/route -n

Для добавления маршрута по умолчанию используется
# route add default gw 192.168.1.254 eth0

Gnome кнопки в заголовке окна

Написано: воскресенье, 14 февраля 2010 г. автор shumer Ярлыки:
0


Сместились как-то кнопки в левый угол искал как исправить и таки нашел >> 
кнопки в смысле управления окном - "Свернуть", "Распахнуть", "Скрыть".
Оказывается все настройки гнома лежат в ветке/apps/metacity/general/ в базе конфигурации Гнома
А ключ /apps/metacity/general/button_layout
(увидеть можно через "Редактор конфигурации - general" в меню,
или запустив gconf-editor в консоли)
отвечает за (взято из описания этого ключа в той же базе): "Расположение кнопок в заголовке окна.
Значение должно быть строкой, например, «menu:minimize,maximize,close».
Двоеточие разделяет левый и правый углы окна, имена кнопок разделяются запятыми.
Дублирование кнопок не допускается. Неизвестные имена кнопок всегда
игнорируются без уведомления, так что кнопки могут быть добавлены
в будущих версиях, не нарушая предыдущих."

nf_conntrack: table full, dropping packet в dmesg

Написано: суббота, 13 февраля 2010 г. автор shumer Ярлыки:
2

Имеем до:

# sysctl -a | grep conntrack_max
net.ipv4.netfilter.ip_conntrack_max = 65536
net.netfilter.nf_conntrack_max = 65536
net.nf_conntrack_max = 65536
Открываем конфиг ядра:
vi /etc/sysctl.conf 

Вносим туда (все три выше указанных опции, как я понял, являются алиясами и изменяя один, изменяются все другие):
net.ipv4.netfilter.ip_conntrack_max=1548576

Применяем настройки:
sysctl -p

В итоге имеем увеличенное число отслеживаемых соединений:
sysctl -a | grep conntrack_max
net.ipv4.netfilter.ip_conntrack_max = 1548576
net.netfilter.nf_conntrack_max = 1548576
net.nf_conntrack_max = 1548576

Linux автоматическое монтирование сетевых дисков

Написано: воскресенье, 3 мая 2009 г. автор shumer Ярлыки:
0

Возникла необходимость примонтировать сетевые диски а каждый раз это делать вручную нет никаких сил, поэтому решил автоматизировать данный процесс. Итак приступаем
1. Пишем скрипт вида

#!/bin/sh
sudo mount -t cifs <Откуда> <Куда> -o user=guest,password=,iocharset=utf8
2. Теперь вторая проблема, у Linux возникает проблема с размонтированием сетевых дисков при выключении поэтому нам еужен второй скрипт вида:
#!/bin/sh
sudo umount <что размонтировать>
3. Далее идем /etc/sudoers и дописываем в конец файла
<имя пользователя> ALL=NOPASSWD: /<путь до первого скрипта>
<имя пользователя> ALL=NOPASSWD: /<путь до второго скрипта>
4. Теперь добавляем оба скрипта в атозагрузку с учетом того что первый скрипт нам надо запускать при старте KDE а второй при завершении сеанса.

SSH автологин на удаленный сервер (для Linux систем)

Написано: пятница, 1 мая 2009 г. автор shumer Ярлыки:
2

Наверное всем знакома ситуация когда каждый день приходиться заходить на различные сервера, использование открытого ключа недоступно в силу некоторых обстоятельств, а постоянный набор комбинации логин/пароль до скрипа зубов доводит. Но теперь с помощью замечательной утилиты expect мы можем сильно упростить себе жизнь.

Итак устанавливаем пакет expect, а теперь делаем небольшой скрипт который обеспечит нам автоматический вход в систему:


#!/usr/bin/expect -f
# в переменную хост идет имя или ip сервера который
# передается скрипту первым параметром
set host [lindex $argv 0]
# теперь выполняем ssh
spawn ssh user_name@$host
# ожидаем приглашения на ввод пароля
expect "assword:"
# и собственно пароль вводим
send "password"
# если нужно получить привилегии рута продолжим
expect "~ "
send "su - \r"
# снова ожидаем приглашение
expect ":"
# отправляем пароль
send "root_password"
# и переходим в режим интерактивной работы с консолью
interact
# End ssh_login.sh.

Вот таким нехитрым способом можно сильно упростить себе жизнь, тем более что подвергнув скрипт небольшой модификации можно сразу автоматизировать выполнение необходимых команд на удаленной машине