• avatar mikhey
  • 0
Полезный мануал по настройке — wiki.archlinux.org/index.php/Lighttpd_%28%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9%29 на русском
  • avatar mikhey
  • 0
Пример одного из конфигов:
server.document-root = "/usr/local/www" #Корневая директория вашего веб-сервера
server.port = 80 # Порт слушаемый для http
server.username = "www" # Имя пользователя, от имени которого запускается сервер
server.groupname = "www" # Группа пользователя
server.bind  = "192.168.0.10" # Привязываем сервер к определенному адресу
server.tag ="lighttpd 1.4.27/FreeBSD 7.3" # Тут можно написать хоть "IIS/Win32" - это будет отображаться в строке идентификации сервера
server.event-handler = "freebsd-kqueue" # Метод разбивки на пуллы (!) Подходит только для FreeBSD, для других ОС методы свои

#Говорим куда писать логи
server.errorlog            = "/var/log/lighttpd/error.log"
accesslog.filename         = "/var/log/lighttpd/access.log"

# Подключаем модули
server.modules              = (
            "mod_access",
            "mod_accesslog",
            "mod_fastcgi",
            "mod_cgi",
            "mod_rewrite",
            "mod_auth",
            "mod_compress",
            "mod_alias"
)


# Расписываем типы файлов
mimetype.assign             = (
  ".pdf"          =>      "application/pdf",
  ".sig"          =>      "application/pgp-signature",
  ".spl"          =>      "application/futuresplash",
  ".class"        =>      "application/octet-stream",
  ".ps"           =>      "application/postscript",
  ".torrent"      =>      "application/x-bittorrent",
  ".dvi"          =>      "application/x-dvi",
  ".gz"           =>      "application/x-gzip",
  ".pac"          =>      "application/x-ns-proxy-autoconfig",
  ".swf"          =>      "application/x-shockwave-flash",
  ".tar.gz"       =>      "application/x-tgz",
  ".tgz"          =>      "application/x-tgz",
  ".tar"          =>      "application/x-tar",
  ".zip"          =>      "application/zip",
  ".mp3"          =>      "audio/mpeg",
  ".m3u"          =>      "audio/x-mpegurl",
  ".wma"          =>      "audio/x-ms-wma",
  ".wax"          =>      "audio/x-ms-wax",
  ".ogg"          =>      "audio/x-wav",
  ".wav"          =>      "audio/x-wav",
  ".gif"          =>      "image/gif",
  ".jpg"          =>      "image/jpeg",
  ".jpeg"         =>      "image/jpeg",
  ".png"          =>      "image/png",
  ".xbm"          =>      "image/x-xbitmap",
  ".xpm"          =>      "image/x-xpixmap",
  ".xwd"          =>      "image/x-xwindowdump",
  ".css"          =>      "text/css",
  ".html"         =>      "text/html",
  ".htm"          =>      "text/html",
  ".js"           =>      "text/javascript",
  ".asc"          =>      "text/plain",
  ".c"            =>      "text/plain",
  ".conf"         =>      "text/plain",
  ".text"         =>      "text/plain",
  ".txt"          =>      "text/plain",
  ".dtd"          =>      "text/xml",
  ".xml"          =>      "text/xml",
  ".mpeg"         =>      "video/mpeg",
  ".mpg"          =>      "video/mpeg",
  ".mov"          =>      "video/quicktime",
  ".qt"           =>      "video/quicktime",
  ".avi"          =>      "video/x-msvideo",
  ".asf"          =>      "video/x-ms-asf",
  ".asx"          =>      "video/x-ms-asf",
  ".wmv"          =>      "video/x-ms-wmv",
  ".bz2"          =>      "application/x-bzip",
  ".tbz"          =>      "application/x-bzip-compressed-tar",
  ".tar.bz2"      =>      "application/x-bzip-compressed-tar"
 )

# Делаем возможной http-авторизацию. Заморачиваться с шифрованием не стал - ктож меня будет из локалки-то ломать?
auth.debug = 2
auth.backend = "plain"
auth.backend.plain.userfile = "/usr/local/etc/lighttpd/.lighttpdpassword" # Файл с паролями

# Запускаем  FastCGI посредством php-fpm
fastcgi.server = ( ".php" =>
  ((
              "host" => "127.0.0.1",
                 "port" => 9000,
      )
    )
 )

#Подключаем модуль CGI для запуска перлов
cgi.assign                 = ( ".pl"  => "/usr/bin/perl",
                               ".cgi" => "/usr/bin/perl" )

# Определяем индексы
index-file.names = ( "index.html", "index.php", "index.pl", "index.cgi" )

# А вот теперь самое интересное - виртуалхосты
#Первый хост я использую для netams, который у меня использует базу данных на PostgreSQL, которая в свою очередь управляется через веб-морду phpPgAdmin
$HTTP["host"] =~ "(^|\.)stat\.svyaznoy\.kg$" {
server.document-root = "/usr/local/www/netams"
dir-listing.activate = "disable" # показывать-ли содержимое папки? Нет.
dir-listing.encoding = "utf-8" # Кодировка отображения содержимого папки
alias.url = ( "/pgadmin" => "/usr/local/www/phpPgAdmin") # Алиас для phpPgAdmin
server.errorlog = "/var/log/lighttpd/stat.error.log" # Куда же без логов  :)
accesslog.filename = "/var/log/lighttpd/stat.access.log"
server.error-handler-404 = "/e404.php" # Страница ошибки
# Для доступа к определенным папкам используется http-авторизация. Тут и расписываем что куда.
auth.require = ( "/cgi-bin/admin/" =>
(
"method" => "basic",
"realm" => "Password protected area",
"require" => "user=admin"
)
)
# Поскольку netams складывает свою перловую кашу с граблями в поддиректории, появилась необходимость расписать что куда.
$HTTP["url"] =~ "/cgi-bin/" {
      cgi.assign = ( ".pl" => "/usr/local/bin/perl",
      ".cgi" => "/usr/bin/perl" )
  }
$HTTP["url"] =~ "/cgi-bin/admin/" {
        cgi.assign = ( ".pl" => "/usr/bin/perl",
              ".cgi" => "/usr/bin/perl" )
                }
}

# А теперь собственно то, ради чего все и затевалось - SSL

$HTTP["host"] =~ "(^|\.)gate\.svyaznoy\.kg$" {
server.document-root = "/usr/local/www/test"
dir-listing.activate = "enable"
dir-listing.encoding = "utf-8"
server.errorlog = "/var/log/lighttpd/gate.error.log"
accesslog.filename = "/var/log/lighttpd/gate.access.log"
server.error-handler-404 = "/e404.php"
}

# При работе с SSL лайти не понимает имен сервера, так что придется использовать непосредственно IP-адресацию
$SERVER["socket"] == "192.168.0.10:443" {
  ssl.engine                  = "enable" # Включаем SSL
  ssl.ca-file                   = "/usr/local/etc/lighttpd/ca.crt" # Путь к кормевому сертификату (если у вас его нет можно просто исключить эту строчку)
  ssl.pemfile                   = "/usr/local/etc/lighttpd/ca.pem" # Путь к сертификату сервера
  server.name                 = "gate.svyaznoy.kg" # Описываем имя сервера
  server.document-root        = "/usr/local/www/secure/" # Папка, содержимое которой нам и надо защитить
  ssl.verifyclient.activate  = "enable" # Включаем проверку клиентского сертификата. Если эту и 2 последующие строки исключить, сервер не будет запрашивать проверку, а будет прописывать в браузер временную копию сертификата
  ssl.verifyclient.enforce   = "enable"
  ssl.verifyclient.depth     = "1"
# Алиас для phpMyAdmin
  alias.url = ( "/pma" => "/usr/local/www/secure/phpMyAdmin")
}
seckator@mail.ru
10% скидку на приобретение Gold статуса на Depositfiles на любой период!

Ваш купон: istl266k17hlpw78fwscidcfwj7lel9x

Действителен до: 2014-03-16 13:30:20
  • avatar mikhey
  • 0
Иногда при обновлении можно получить следующую ошибку:
root@server:~# apt-get upgrade
Reading package lists… Done
Building dependency tree
Reading state information… Done
The following packages will be upgraded:
nginx
1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 460 kB of archives.
After this operation, 964 kB of additional disk space will be used.
Do you want to continue [Y/n]? y
Get:1 nginx.org/packages/debian/ squeeze/nginx nginx amd64 1.4.5-1~squeeze [460 kB]
Fetched 460 kB in 2s (214 kB/s)
Reading changelogs… Done
(Reading database… 34498 files and directories currently installed.)
Preparing to replace nginx 1.2.1-2.2+wheezy2 (using .../nginx_1.4.5-1~squeeze_amd64.deb)…
Unpacking replacement nginx…
dpkg: error processing /var/cache/apt/archives/nginx_1.4.5-1~squeeze_amd64.deb (--unpack):
trying to overwrite '/etc/logrotate.d/nginx', which is also in package nginx-common 1.2.1-2.2+wheezy2
dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
Errors were encountered while processing:
/var/cache/apt/archives/nginx_1.4.5-1~squeeze_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

Исправить очень просто, нужно запустить команду:
sudo dpkg -i --force-all /var/cache/apt/archives/nginx_1.4.5-1~squeeze_amd64.deb
10% скидку на приобретение Gold статуса на Depositfiles

Ваш купон: 66kedxn2ib0qqskr73lxoxywoif7ajxh

Действителен до: 2014-02-08 19:40:44
  • avatar mikhey
  • 0
В последних версиях добавили обновление ПО (делает тоже самое что apt-get update & apt-get upgrade)
  • avatar mikhey
  • 0
Вам нужно связать все это с капчей (например такой — zloy.org/blog/php/637.html), сервисов капч куча и у каждого свои способы, поэтому тут вам нужно самому попробовать.
  • avatar mikhey
  • 0
Еще есть официальный мануал -> ru.ispdoc.com/index.php/Fatal_error:_Invalid_license
ок, спасиба… но теперь не как не могу сделать регестрацию с капчей((, подскажи пожалуйста еще как это реализовать?
  • avatar mikhey
  • 0
Вот это еще нада убрать в коде:
AND $_REQUEST[password]!=""
хз как, уже по разному пробывал не как не получаеться(((
убрал эту строчку, оно короче не работает так...(((
  • avatar mikhey
  • 0
эту строчку в форме тоже убрать, чтобы не мешалась:
<tr><td class="list" align="right"><input type="password" name="password" title="Пароль должен содержать от 6 до 20 символов. Можно использовать латинские буквы, цифры и символы из списка: ! @ # $ % ^ & * ( ) _ - + Пароль не может совпадать с логином."/></td><td class="list" align="left">пароль</td></tr>
  • avatar mikhey
  • 1
PermitRootLogin no

Match Host 192.168.5.*,127.0.0.1

PermitRootLogin yes

По дефолту доступ к серверу разрешен для всех групп и пользователей. С помощью параметров AllowUsers/AllowGroups, DenyUsers/DenyGroups можно указать, кому разрешены, а кому запрещены входящие SSH-подключения. В качестве примера создадим отдельную группу, членам которой и будет разрешен доступ:

$ sudo addgroup --gid 450 sshlogin

$ sudo adduser petja sshlogin

В конфиг OpenSSH прописываем:

AllowUsers admin@212.34.10.*

AllowGroups sshlogin

В Debian и Ubuntu для аутентификации по умолчанию используется GSSAPI (Generic Security Services Application Programming Interface), что обычно требует времени. Есть смысл использовать этот механизм только совместно с Kerberos 5, иначе его можно отключить, уменьшив задержку. Одновременно запретим использование одноразовых паролей на базе системы S/Key:

GSSAPIAuthentication no

ChallengeResponseAuthentication no

Несколько параметров в sshd_config позволяют контролировать время работы и бездействия клиента, но они не всегда так уж полезны. Например, по умолчанию TCPKeepAlive установлен в «yes»; это означает, что сервер будет периодически проверять, находится ли клиент «на линии» – если он не отвечает, соединение автоматически разрывается. И хотя с ним системные ресурсы не расходуются зря, в целях безопасности его лучше отключить:

TCPKeepAlive no

Хакер, анализируя такие пакеты, может провести ряд сетевых атак, поэтому вместо TCPKeepAlive лучше использовать директивы:

ClientAliveInterval 15

ClientAliveCountMax 3

Следующие два параметра позволяют контролировать неудачные подключения к серверу:

LoginGraceTime 60

MaxStartups 2:50:10

Параметр LoginGraceTime определяет, по истечению какого времени простаивающее подключение будет разорвано (в секундах). Значение по умолчанию (120) явно завышено. Количество параллельных неаутентифицированных подключений к серверу контролируется при помощи MaxStartups. Запись параметра имеет форму «start:rate:full». В нашем случае она означает отключение с вероятностью 50% при наличии двух неаутентифицированных связей с линейным ростом вероятности до 100% при достижении 10.

Установки в файлах /etc/ssh/sshrc или ~/.ssh/rc позволяют выполнить действия при регистрации пользователя. Здесь можно использовать любые команды оболочки. Например, отправляем на почту уведомление, что в систему по ssh зашел пользователь:

$ sudo vim /etc/ssh/sshrc

echo $(date) $SSH_CONNECTION $USER $SSH_TTY | mail -s «ssh login» admin@domain.ru

Таким образом, можно полностью контролировать подключения пользователей.
а еще скажи пожалуйста, что именно убрать чтоб только проверка была на занятость имени?
спасибо))
LoginGraceTime 10s
PermitRootLogin no
Эти параметры гораздо полезней.
  • avatar mikhey
  • 0
ну вот в этой строчке вписать mypassword и для всех будет один пароль.

$postData="token=".$token."&u_login=".$login."&u_password="mypassword""; // формируем запрос
а как именно в php коде?