Не ужился я как то с nginx, решил попробовать поэкспериментировать с Lighttpd, но что то все мануалы какие то кривые по нему. Я решил сделать так, настрою сервак сначала на PHP5 + Apache2 + MySQL, а потом просто прикручу ко всему этому Lighttpd. Прикручивать собрался согласно мануалу
Lighttpd + Apache.
Итак, у меня есть VDS на который я воткнул ubuntu 10.04 minimal. Дальше заползаю по ssh и устанавливаю редактор
nano и файловый менеджер
mc, предварительно обновив установщик.
apt-get update
apt-get install nano
apt-get install mc
Домен сразу припарковал на IP сервера, он будет у меня
serberg.ru
Ставлю апач:
apt-get install apache2 apache2-doc apache2-mpm-prefork apache2-utils apache2-suexec
Ставлю php5:
sudo apt-get install php5 php-pear libapache2-mod-php5 libapache2-mod-ruby libapache2-mod-auth-mysql php5-mysql libapache2-mod-python php5-dev php5-cgi php5-mcrypt php5-gd php5-cli php5-common php5-curl php5-idn php5-imagick php5-imap php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl libapache2-mod-evasive
Установка GD:
sudo apt-get install libpng12-dev libjpeg62-dev libxpm-dev libfreetype6-dev
Подключение модулей:
sudo a2enmod php5
sudo a2enmod mod-evasive
sudo a2enmod ssl
sudo a2enmod rewrite
sudo a2enmod suexec
sudo a2enmod include
Редактирую конфиг хостов:
sudo nano /etc/apache2/sites-available/default
Изменяем параметр:
AllowOverride None на
AllowOverride All
Перезапускаю апач:
sudo service apache2 restart
Ставлю MySQL:
sudo apt-get install mysql-server
Установка phpMyAdmin для апача:
sudo apt-get install phpmyadmin
Проверяю его сразу обращаясь по IP/phpmyadmin - пашет.
Создаю виртуальный хост для апача, предварительно создав нужные папки:
sudo mkdir /var/www/serberg.ru
sudo mkdir /var/www/serberg.ru/www
sudo mkdir /var/www/serberg.ru/log
sudo mkdir /var/www/serberg.ru/sess
sudo mkdir /var/www/serberg.ru/tmp
На папки
log и
sess даю права 777.
Создаю конфиг виртуального хоста serberg.ru:
sudo nano /etc/apache2/sites-available/serberg.ru
Со следующим содержимым:
<VirtualHost *:80>
ServerName serberg.ru
ServerAlias www.serberg.ru
DocumentRoot /var/www/serberg.ru/www
ServerAdmin admin@serberg.ru
ErrorLog /var/www/serberg.ru/log/apache_error.log
CustomLog /var/www/serberg.ru/log/apache_access.log combined
<Directory /var/www/serberg.ru/www>
Options FollowSymLinks
Options -Indexes
AllowOverride All
Order allow,deny
Allow from all
</Directory>
php_admin_value upload_tmp_dir /var/www/serberg.ru/tmp
php_admin_value error_log /var/www/serberg.ru/log/php.log
php_admin_value session.save_path /var/www/serberg.ru/sess
</VirtualHost>
Активируем виртуальный хост на сервере
sudo a2ensite serberg.ru
Вношу сайт в хосты сервера:
sudo nano /etc/hosts
в строчку строчку
127.0.0.1 localhost
дописываю через пробел:
serberg.ru www.serberg.ru
Чтобы Apache не ругался, вношу строчку в один из конфигурационных файлов Apache (начиная с версии 11.04 не требуется)
sudo nano /etc/apache2/httpd.conf
Следующее содержимое:
ServerName localhost
Отключаю дефолтный сайт в корневой директории www
sudo a2dissite default
Перезапускаю Apache
sudo service apache2 restart
Обращаюсь на домен - все тип топ, т.е. виртуальный хост пашет.
Дальше шаг 2, в котором я особо не уверен.
Останавливаю апач.
sudo service apache2 stop
Переназначаю порт апача с 80 на 8080.
sudo nano /etc/apache2/ports.conf
Меняю на:
NameVirtualHost *:8080
Listen 8080
<IfModule mod_ssl.c>
# If you add NameVirtualHost *:443 here, you will also have to change
# the VirtualHost statement in /etc/apache2/sites-available/default-ssl
# to <VirtualHost *:443>
# Server Name Indication for SSL named virtual hosts is currently not
# supported by MSIE on Windows XP.
Listen 443
</IfModule>
<IfModule mod_gnutls.c>
Listen 443
</IfModule>
Для виртуального хоста проделываю тоже самое:
sudo nano /etc/apache2/sites-available/serberg.ru
<VirtualHost *:8080>
ServerName serberg.ru
ServerAlias www.serberg.ru
DocumentRoot /var/www/serberg.ru/www
ServerAdmin admin@serberg.ru
ErrorLog /var/www/serberg.ru/log/apache_error.log
CustomLog /var/www/serberg.ru/log/apache_access.log combined
<Directory /var/www/serberg.ru/www>
Options FollowSymLinks
Options -Indexes
AllowOverride All
Order allow,deny
Allow from all
</Directory>
php_admin_value upload_tmp_dir /var/www/serberg.ru/tmp
php_admin_value error_log /var/www/serberg.ru/log/php.log
php_admin_value session.save_path /var/www/serberg.ru/sess
</VirtualHost>
Устанавливаю Lighttpd
apt-get install lighttpd ruby
Корректирую конфиг Lighttpd:
nano /etc/lighttpd/lighttpd.conf
Кусок с модулями делаю такой:
Код:
server.modules = (
"mod_access",
"mod_alias",
"mod_accesslog",
"mod_compress",
"mod_rewrite",
"mod_redirect",
"mod_proxy",
# "mod_evhost",
# "mod_usertrack",
# "mod_rrdtool",
# "mod_expire",
# "mod_flv_streaming",
# "mod_evasive"
)
В самый конец следуя
рекомендациям добавляю:
$HTTP["url"] =~ "^.*(html|php|cgi|/|\?|\?.*)$" {
proxy.server = ("" => ( (
"host" => "127.0.0.1",
"port" => 8080 ) ) )
}
+ добавляю кусок конфига для моего виртуального хоста:
$HTTP["host"] =~ "(^|\.)serberg\.ru$" {
server.document-root = "/var/www/serberg.ru/www"
accesslog.filename = "/var/www/serberg.ru/log/access1.log"
server.errorlog = "/var/www/serberg.ru/log/error1.log"
}
Читаю манал, написано:
В конфиге Apache httpd.conf нужно всего лишь изменить следующие строки:
Код:
Listen 127.0.0.1:8080
Port 8080
На этом настройка связки закончена.
Но если это добавить - то старте апач будет ругаться на Port 8080, поэтому ничего не добавлял.
Не забудьте добавить в /etc/rc.conf: lighttpd_enable="YES"
А этого фала вообще не нашел по данному адресу, он лежит в папке
init. Надо ли его добавлять вообще ? ХЗ.
Дальше запускаю апач и перезапускаю Lighttpd:
sudo service apache2 start
sudo service lighttpd restart
Обращаюсь на serberg.ru - все работает, но как проверить - работает ли Lighttpd в качестве прокси для отдачи статики ?