Veelal zullen beheerders er voor kiezen om middels 'virtual hosts' meerdere web pagina's beschikbaar te maken op eenzelfde server. Toch komt de vraag regelmatig voor om een tweede apache (of httpd) installatie op dezelfde server te draaien zodat deze afzonderlijk van elkaar gestopt en gestart kunnen worden.
Met de komst van Centos 7 zijn een aantal zaken drastisch op de schop gegaan. Zo wordt apache niet meer gestart via service httpd start, maar via systemctl start httpd.service. En ook de directory structuur van service bestanden en dergelijke zijn aangepast. Dus veranderd er ook het nodige in hoe een tweede apache installatie op te zetten.
De standaard configuratie staat in /etc/httpd en wordt gestart via systemctl start httpd.service.
U wilt nu een tweede apache installatie maken die gebruik maakt van dezelfde binaries als de originele httpd, zodat u ook geen problemen krijgt met verschillende versies op het systeem. In ons voorbeeld gaan we ervan uit dat deze tweede apache installatie httpd2 genoemd gaat worden.
Voer de volgende kopieer acties uit :
cp -r /etc/httpd /etc/httpd2
cp /usr/lib/systemd/system/httpd.service /usr/lib/systemd/system/httpd2.service
cp /etc/sysconfig/httpd /etc/sysconfig/httpd2
cp -r /var/log/httpd /var/log/httpd2
cp -r /var/cache/httpd /var/cache/httpd2
cp -r /usr/sbin/apachectl /usr/sbin/apachectl2
Maak een link naar de httpd binary :
ln -s /usr/sbin/httpd /usr/sbin/httpd2
Om verwarring te voorkomen, is het handig om de logs in /var/log/httpd2 schoon te maken.
echo > /var/log/httpd2/access_log
echo > /var/log/httpd2/error_log
Verwijder ook eventueel de bestanden in /var/cache/httpd2 (subdirectories laten staan)
Pas vervolgens de volgende configuratie bestanden aan :
in /etc/httpd2/conf/httpd.conf :
- PidFile wijzigen naar /run/httpd2
- ServerRoot wijzigen naar de door u gewenste locatie
- Listen poort wijzigen naar gewenste, andere poort
in /usr/lib/systemd/system/httpd2.service :
- EnvironmentFile=/etc/sysconfig/httpd2
- ExecStart=/usr/sbin/httpd2 -f /etc/httpd2/conf/httpd.conf $OPTIONS -DFOREGROUND
- ExecReload=/usr/sbin/httpd2 -f /etc/httpd2/conf/httpd.conf $OPTIONS -k gracefull
in /usr/sbin/apachectl2 :
vervang elke verwijzing naar /usr/sbin/httpd, /etc/sysconfig/httpd, en httpd.service voor de nieuwe waarde (/usr/sbin/httpd2, /etc/sysconfig/httpd2 en httpd2.service)
Het eenvoudigste is dit te bewerkstelligen door in 'vi' de volgende regel uit te voeren :
:%s/httpd/httpd2/g
U kunt nu uw tweede apache installatie starten middels
systemctl start httpd2