Установка Lighttpd + PHP + Mysql + CentOS 5.5
lighttpd - веб-сервер, разрабатываемый с расчётом на быстроту и защищённость, а также соответствие стандартам. В lighttpd есть поддержка сжатия отдаваемого содержимого «на лету», HTTP-аутентификации, перезаписи URL, SSL и автоматической балансировки нагрузки (нагрузка может автоматически распределяться по нескольким запущенным серверам lighttpd). Веб-сервер также поддерживает интерфейсы CGI, SCGI, FastCGI и AJP (только в разрабатываемой сейчас версии 1.5), позволяя использовать приложения, написанные на любых языках программирования.
Что и говорить lighttpd достойная замена тяжеловесному Apache (не в обиду). Особенно для тех у кого хостинг на VPS/VDS, очень сильно экономит ресурсы сервера.
Итак приступим установке связки lighttpd + php + mysql. Все это хозяйство я поставля на ОС CentOS 5.5.
1. Подключаем и устанавливаем репозиторий Epel. Он нам понадобится для установки lighttpd и lighttpd-fastcgi.В зависимости от вашей системы это либо x86_64 или i386.
x86_64
# rpm -ihv http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-3.noarch.rpm
# rpm -Uvh epel-release-5-3.noarch.rpm
i386
# rpm -ihv http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm
# rpm -Uvh epel-release-5-3.noarch.rpm
2. Установим Mysql
# yum install mysql mysql-server
3. Добавим службу в автозагрузку и запустим службу
# chkconfig –level 3 mysqld on
# service mysqld start
4. Выставим пароль рута
# mysqladmin -u root password ‘новый-пароль’
5. Установим Lighttpd и добавим службу в автозагрузку и после запустим службу
# yum install lighttpd lighttpd-fastcgi
# chkconfig –level 3 lighttpd on
# service lighttpd on
6. Установим php и его модули. Устанавливать я буду стандартный для CentOS 5 – php-5.1. (Статья как установить версию 5.2.x, здесь!)
# yum install php-cli php-mysql php-gd php-pear php-xml php-xmlrpc php-pdo php-mcrypt
7. Настраиваем PHP и Lighttpd для работы с ним.
Открываем php.ini
# vi /etc/php.ini
В конец файла добавляем следующую строку
cgi.fix_pathinfo = 1
Теперь сконфигурируем Lighttpd
# vi /etc/lighttpd/lighttpd.conf
Раскомментируем необходимые нам модули
server.modules = (
«mod_rewrite»,
«mod_redirect»,
«mod_alias»,
«mod_access»,
«mod_setenv»,
«mod_fastcgi»,
«mod_accesslog» )
Прописываем наши хосты и указываем путь до document-root
$HTTP["host"] == «www.test.ru» { server.document-root = «/home/www/test.ru/» }
$HTTP["host"] == «test.ru» { server.document-root = «/home/www/test.ru/» }
Далее находите 212 строчку – fastcgi module и раскомментируйте строки с 215 по 222.
8. Создаем необходимые папки и назначаем права.
# mkdir /var/run/lighttpd (если нет, то создаем)
# chown lighttpd.lighttpd /var/run/lighttpd
# chmod 755 /var/run/lighttpd
# mkdir -p /home/www/test.ru/
9. Запускаем lighttpd
# service lighttpd start
10. Проверим работоспособность PHP. (по умолчанию root-директория Lighttpd – /srv/www/lighttpd)
Создадим директории test.ru новый файл:
# vi /home/www/test.ru/test.php
Добавим в него следующую строчку:
<?php phpinfo();?>
Открываем браузер и набираем – hhtp://адрес сервера/test.php
Это была настройка lighttpd с учетом одного сайта. Теперь я хотел бы рассмотреть настройку виртуальных хостов.
Итак допустим у вас два хоста – site1.ru и site2.ru.
1. Создаем необходимые директории.
Создаем директории для сайтов
# mkdir -p /home/www/site1
# mkdir -p /home/www/site2
Создаем директории для логов
# mkdir /var/log/lighttpd/site1
# mkdir /var/log/lighttpd/site2
2. Выставляем права
# chown -R lighttpd:lighttpd /home/www/
# chown -R lighttpd:lighttpd /var/log/lighttpd
3. Отредактируем конфигурационный файл lighttpd
# vi /etc/lighttpd/lighttpd.conf
Добавляем следующии строки:
Для хоста – site1.ru
$HTTP["host"] =~ "(^|\.)site1\.ru$" {
server.document-root = "/home/www/site1"
server.errorlog = "/var/log/lighttpd/site1/error.log"
accesslog.filename = "/var/log/lighttpd/site1/access.log"
server.error-handler-404 = "/e404.php"
}
Для хоста – site2.ru
$HTTP["host"] =~ "(^|\.)site2\.ru$" {
server.document-root = "/home/www/site2"
server.errorlog = "/var/log/lighttpd/site2/error.log"
accesslog.filename = "/var/log/lighttpd/site2/access.log"
server.error-handler-404 = "/e404.php"
}
Рассмотрим синтаксис:
- $HTTP["host"]… – данная строчка поддерживает запросы как к www.site1.ru, так и site1.ru.
- server.document-root – местонахождения файлов веб-сервера lighttpd.
- server.errorlog – где лежат логи об ошибках.
- accesslog.filename – где лежат логи об успешных операциях.
- server.error-handler-404 – местонахождения файла с 404 ошибкой.
Редирект.
Для редиректа раскомментируем и добавим в конфигурационном файле Lighttpd, следующии строки:
server.modules = (
"mod_rewrite",
"mod_redirect",
Редирект с www.test.ru >>> test.ru (без www)
$HTTP["host"] =~ "^www\.(.*)" {
url.redirect = ( "^/(.*)" => "http://%1/$1" )
}
Обратный редирект с test.ru >>> www.test.ru (принудительная подстановка www)
$HTTP["host"] =~ "^test\.ru$" {
url.redirect = ( "^/(.*)" => "http://www.test.ru/$1" )
}

