Dklab_Realplexor для Apache и 2 IP
Допустим у нас есть 2 сетевые карты, обе видны в интернете. Переводим все сайты в DNS на IP 85.233.100.1
85.233.100.1
85.233.200.2
Создаём в DNS chat.localhost.com и указываем IP 85.233.200.2
Идем в директорию /etc/apache2/ и меняем в фаиле ports.conf строчку
Listen 80 на Listen 85.233.100.1:80 если её нет то добавляем.
NameVirtualHost 85.233.100.1:80
Чтобы Apache слушал порт 80 на итрерфейсе сетевой карты 85.233.100.1 а другой адрес не использовался.
В директории /etc/apache2/sites-available/
Создаём фаил localhost.com
Содержание:
Создаём символическую ссылку
Создаём директорию:
/var/www/localhost.com/
Проверяем правильность настроек конфигурации
Не должно быть ошибок
Запускаем сервис Apache2
В директории /var/www/localhost.com/ создаём фаил index.php
С содержанием
<?=phpinfo();?>
Заходим на localhost.com Должно отобразиться phpinfo() иначе localhost.com/index.php
Если не отобразилось то ищем логи Apache
/var/log/apache2/access.log
/var/log/apache2/error.log
Также можно смотреть:
/var/log/messages
/var/log/syslog
Для начала проверяем существование необходимых команд:
chkconfig
pear
php5-cgi или у кого php5
php5-dev
phpize
php-pear PEAR
dpkg-dev
re2c
gcc и g++
Установка chkconfig — его использовал для запуска сервисов
В Debian есть update-rc.d но я им не пользовался.
Вместе с chkconfig будет установлен insserv, если не поставиться автоматичести как зависимость то:
До установки PEAR и pcntl нам потребуются re2c dpkg-source dpkg-dev
Установка dpkg-source идет вместе с dpkg-dev
Установка re2c
Установка php5-dev
Установка PEAR
# apt-get install php-pear
Установка gcc и g++
Проверяем присутствие модулей PHP pcntl.so и sockets
Командами
Также при выводе команды не должно быть ошибок.
Ставим pcntl
Повторяем команды:
Если модуль pcntl отсутствует в списке то делаем:
Возможно:
в EV.pm на 82 строчке использует модуль: common::sense
Устанавливаем common::sense
Устанавливаем libevent2 из пакетов
Устанавливаем модуль perl EV, хотя наверно можно забросить его и с другого компьютера.
Скачиваем, переходим в каталог с dklab_realplexor
Создаём символическую ссылку конфигурационного фаила в /etc/dklab_realplexor.conf.
Чтобы при зауске сервиса в ручную и автоматически подгружался один и тотже конфигурационный фаил.
Меняем значения в фаиле: /etc/dklab_realplexor.conf
$CONFIG{WAIT_ADDR} = [ '0.0.0.0:80' ]; # IP address of chat.localhost.com
0.0.0.0:8088 на адрес второй сетевой карты 85.233.100.1:80
$CONFIG{WAIT_ADDR} = [ '85.233.100.1:80' ]; # IP address of chat.localhost.com
Теперь при обращении на chat.localhost.com мы будем попадать в Realplexor
IN_ADDR => ['127.0.0.1:10010']
Оставляем как есть: 127.0.0.1:10010
Проверяем работоспособность:
или с подргужением другого конфигурационного фаила
[code]# ./dklab_realplexor.pl /etc/dklab_realplexor.conf[/code]
Недолжно выводиться ошибок типа:
Либо других ошибок.
85.233.100.1
85.233.200.2
Создаём в DNS chat.localhost.com и указываем IP 85.233.200.2
Настройка Apache
Оставнавливаем Apache# /etc/init.d/apache2 stop
Идем в директорию /etc/apache2/ и меняем в фаиле ports.conf строчку
Listen 80 на Listen 85.233.100.1:80 если её нет то добавляем.
NameVirtualHost 85.233.100.1:80
Чтобы Apache слушал порт 80 на итрерфейсе сетевой карты 85.233.100.1 а другой адрес не использовался.
В директории /etc/apache2/sites-available/
Создаём фаил localhost.com
Содержание:
<VirtualHost localhost.com:80>
# Осн. настройки домена
ServerName localhost.com
ServerAlias www.localhost.com
DocumentRoot /var/www/localhost.com/
ServerAdmin himic@himc.ru
DirectoryIndex index.php index.html
# Пишем логи
#LogLevel warn
# Так Также создаём директорию и фаил, иначе закоментируем данные строчки
#ErrorLog /var/log/localhost.com/apache_error.log
#CustomLog /var/log/localhost.com/apache_access.log combined
</VirtualHost>
Создаём символическую ссылку
# ln -s /etc/apache2/sites-available/localhost.com /etc/apache2/sites-enabled/localhost.com
Создаём директорию:
/var/www/localhost.com/
Проверка Apache
Проверяем правильность настроек конфигурации
# apache2 -t
Syntax OK
Не должно быть ошибок
Проверяем настройку Apache
Запускаем сервис Apache2
# /etc/init.d/apache2 start
В директории /var/www/localhost.com/ создаём фаил index.php
С содержанием
<?=phpinfo();?>
Заходим на localhost.com Должно отобразиться phpinfo() иначе localhost.com/index.php
Если не отобразилось то ищем логи Apache
/var/log/apache2/access.log
/var/log/apache2/error.log
Также можно смотреть:
/var/log/messages
/var/log/syslog
Проверка нужных команд
Для начала проверяем существование необходимых команд:
chkconfig
pear
php5-cgi или у кого php5
php5-dev
phpize
php-pear PEAR
dpkg-dev
re2c
gcc и g++
Установка chkconfig — его использовал для запуска сервисов
# apt-get install chkconfig
В Debian есть update-rc.d но я им не пользовался.
Вместе с chkconfig будет установлен insserv, если не поставиться автоматичести как зависимость то:
# apt-get install insserv
До установки PEAR и pcntl нам потребуются re2c dpkg-source dpkg-dev
Установка dpkg-source идет вместе с dpkg-dev
# apt-get install dpkg-dev
Установка re2c
# apt-get install re2c
Установка php5-dev
# apt-get install php5-dev
Установка PEAR
# apt-get install php-pear
Установка gcc и g++
# apt-get install libc6-dev g++
Проверяем присутствие модулей PHP pcntl.so и sockets
Командами
# php5 -m
# php5-cgi -m
# php -m
Также при выводе команды не должно быть ошибок.
Ставим pcntl
# cd /opt/
# apt-get source php5
далее идем в папку с нашим модулем –
# cd php5*/ext/pcntl
и пробуем поставить отдельно :
#phpize
#./configure
#make
#make test
# make install
Повторяем команды:
# php5 -m
# php5-cgi -m
# php -m
Если модуль pcntl отсутствует в списке то делаем:
# echo "extension=pcntl.so" > /etc/php5/conf.d/pcntl.ini
Возможно:
Если пишет: PHP Warning: Module 'pcntl' already loaded in Unknown on line 0
Что означает что модуль pcntl подгружен 2 раза.
То немного ручками правим конфиги PHP с подключенным модулем pcntl.so
/etc/php5/apache2/php.ini
/etc/php5/cgi/php.ini
/etc/php5/cli/php.ini
/etc/php5/conf.d/php.ini
если в этих фаилах подключен модуль, то удаляем /etc/php5/conf.d/pcntl.ini возможно вы ошибочно его подключили 2 раза.
в EV.pm на 82 строчке использует модуль: common::sense
Устанавливаем common::sense
# perl -MCPAN -e "install common::sense"
Устанавливаем libevent2 из пакетов
# cd /opt
# wget http://ftp.ru.debian.org/debian/pool/main/libe/libevent/libevent2_2.0.3-alpha-1_i386.deb
# dpkg -i libevent2_2.0.3-alpha-1_i386.deb
Устанавливаем модуль perl EV, хотя наверно можно забросить его и с другого компьютера.
# wget http://search.cpan.org/CPAN/authors/id/M/ML/MLEHMANN/EV-3.9.tar.gz
# tar xf EV-3.9.tar.gz
# cd EV*
# perl Makefile.PL
# make
# make test
# make install
Настройка dklab_realplexor
Скачиваем, переходим в каталог с dklab_realplexor
# cd /opt
# wget http://github.com/DmitryKoterov/dklab_realplexor/tarball/master
# tar zxf *realplexor*.tar.gz
# mv *realplexor*/ dklab_realplexor
Создаём символическую ссылку конфигурационного фаила в /etc/dklab_realplexor.conf.
Чтобы при зауске сервиса в ручную и автоматически подгружался один и тотже конфигурационный фаил.
# ln -s /opt/dklab_realplexor/dklab_realplexor.conf /etc/dklab_realplexor.conf
Меняем значения в фаиле: /etc/dklab_realplexor.conf
$CONFIG{WAIT_ADDR} = [ '0.0.0.0:80' ]; # IP address of chat.localhost.com
0.0.0.0:8088 на адрес второй сетевой карты 85.233.100.1:80
$CONFIG{WAIT_ADDR} = [ '85.233.100.1:80' ]; # IP address of chat.localhost.com
Теперь при обращении на chat.localhost.com мы будем попадать в Realplexor
IN_ADDR => ['127.0.0.1:10010']
Оставляем как есть: 127.0.0.1:10010
Проверяем работоспособность:
#cd /opt/dklab_realplexor/
# ./dklab_realplexor.pl
или с подргужением другого конфигурационного фаила
[code]# ./dklab_realplexor.pl /etc/dklab_realplexor.conf[/code]
Недолжно выводиться ошибок типа:
Error: EV library is not found in your system:
http://search.cpan.org/~mlehmann/EV-3.9/EV.pm
You must install EV, e.g.:
yum install gcc
perl -MCPAN -e install EV
apt-get install gcc;
perl -MCPAN -e install EV
Либо других ошибок.
Нет комментариев