Kaptain.
Telegram /
LinkedIn /
Email /
GIT /
RSS /
GPG /
Заказ печатных плат

№ 6639 В разделе
Sysadmin
от August 22nd, 2014,
В подшивках: Apache, Linux, Nginx
Появилась задача держать php4 и php5 на одном сервере и дабы не разводить адский геморрой (о да, это тот еще секс) решил просто запустить 2 вебсервера. Благо дополнительный IP адрес на сервере уже был и не использовался совсем.
Итак, первое что делаем это смотрим netstat и видим вот такую хрень:
bash-3.2# netstat -tlpn Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name ... tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 15164/httpd ... tcp 0 0 :::22 :::* LISTEN 2592/sshd tcp 0 0 :::443 :::* LISTEN 15041/httpd
Apache висит сразу на всех интерфейсах. Его необходимо перевешать на первый IP адрес, на который смотрят домены апача. Не забывайте, что если домены смотрят на второй IP адрес, то их срочняком нужно переправлять на первый IP. Кроме тех, которые должны появиться внутри chroot, разумеется 😉
После изменения httpd.conf время установить специальный пакет yum-utils:
sudo yum install yum-utils
И вот сейчас можно наконец создать директорию, где будет находиться ваш chroot и создать окружение:
WCR=/var/chroot/2nd_apache mkdir $WCR rpm --root $WCR --initdb yumdownloader --destdir=~ centos-release rpm --root $WCR -ivh --nodeps ~/centos-release*.rpm yum --installroot=$WCR -y install httpd php
Если у вас вместо CentOS стоит Fedora или Redhat, то заменяете на fedora-release или redhat-release. Теперь ждем конца установки и завершаем окружение монтированием системных директорий и запуском apache. Для этого создадим скрипт, который необходимо запускать при старте системы:
#!/bin/bash WCR=/var/chroot/2nd_apache mount -o bind /dev/ $WCR/dev mount -o bind /sys/ $WCR/sys mount -t proc proc $WCR/proc/ chroot $WCR /etc/init.d/httpd start
Вуаля! Теперь делаете скрипт исполняемым, ложите в init.d и заставляете запускаться при старте системы.
Делаете netstat и видите как апачи тихо шуршат на выделеных IP адресах:
bash-3.2# netstat -tlpn Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name ... tcp 0 0 213.118.129.100:80 0.0.0.0:* LISTEN 15164/httpd tcp 0 0 213.118.128.100:80 0.0.0.0:* LISTEN 15041/httpd ...
Кстати, если у вас возникла потребность подключать дополнительные репозитории, то вот еще есть какой момент. Например, внутри chroot мне нужно иметь php 5.3, а в репозитории только 5.1. Значит нужно подключить другие репозитории с более новым PHP прямо внутри chroot. Сделать это можно так:
rpm --root=$WCR -Uvh http://dl.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm
rpm --root=$WCR -Uvh http://repo.webtatic.com/yum/centos/5/latest.rpm
Мы указали –root, который является нашей директорией для chroot. Внутри нее идем в /etc/yum.repos.d и в файле webtatic.repo в секции [webtatic] ставим enabled=1.
Теперь можно проверить какие версии PHP нам доступны для установки
yum --installroot=$WCR --showduplicates list php
Самая свежая поставится автоматически или укажите версию пакета рядом с его именем
yum --installroot=$WCR install php
Подробнее об установке конкретных версий можно почитать здесь. Не забудьте поставить дополнительные модули php 😉
Fortune cookie: "For the preservation of chastity, an empty and rumbling stomach and fevered lungs are indispensable." [St. Jerome (340?-420)]
Leave a Reply