HOWTO: opgradering fra apache2 til apache22

From: Erik Nordstrom Andersen (none@erik--erik-n-andersen.dk.lh.bsd-dk.dk)
Date: Wed 28 Dec 2005 - 23:17:53 CET


Date: Wed, 28 Dec 2005 23:17:53 +0100
From: Erik Nordstrom Andersen <none@erik--erik-n-andersen.dk.lh.bsd-dk.dk>
To: bsd-dk@bsd-dk.dk
Subject: HOWTO: opgradering fra apache2 til apache22

Hej alle

Nu hvor Apache 2.2 er den anbefalede version af apache, satte jeg mig
ned for at opgradere min Apache2 + PHP5 installation. Det burde være
simpelt, men jeg stødte ind i nogle småproblemer, og derfor har jeg
skrevet en lille howto, som andre måske kan have glæde af. Jeg er
relativt newbie, så mange ting her kan sikkert gøres bedre. Forslag er
velkomne :-)

Mvh Erik

--------------------
HOWTO: Opgradering af Apache2+PHP5 til Apache22+PHP5

Først: Det burde ikke være nødvendigt at sige, men husk at tage backup
af httpd.conf, htpasswd, /usr/local/www/data, ~/public_html osv. inden
du går i gang.

Start med en helt frisk cvsup af ports. Der er vigtige ændringer til
Apache22, som netop er committed:
> su
Password:
# cvsup -L 2 /etc/stable-supfile
# portsdb -Uu

Afinstallér Apache2 og installér Apache22
# cd /usr/ports/www/apache20
# make deinstall
# cd ../apache22
# make install clean

Den gamle http.conf kan ikke bruges direkte, bl.a. fordi mange moduler
har skiftet navn og placering, så det er bedre at flytte egne rettelser
over manuelt. I apache22 er flere dele af den velkendte
/usr/local/etc/apache2/httpd.conf splittet op i mindre config-filer, som
ligger i /usr/local/etc/apache22/extras/. Det gælder f.eks. virtual
hosts (httpd-vhosts.conf) og user homedirs (httpd-userdir.conf). Disse
ekstra config-filer skal inkluderes explicit nederst i
/usr/local/etc/apache22/httpd.conf. Jeg er ikke stødt på nogen ændringer
i syntaksen, men man skal alligevel holde tungen lige i munden.

Se efter at DocumentRoot peger det rigtige sted, den er
"/usr/local/www/apache22/data" som default nu. Hvis du vil beholde den
gamle struktur skal DocumentRoot rettes til "/usr/local/www/data", og
følgende symlink tilføjes:
# cd /usr/local/www
# ln -s data-dist data

Tag backup, og ret dine config-filer:
# cd /usr/local/etc/apache22
# mv httpd.conf httpd.conf.bak
# ee httpd.conf
(lav dine rettelser)

# httpd -k restart
Når apache starter får jeg en "[warn] (2)No such file or directory:
Failed to enable the 'httpready' Accept Filter", som ser ud til at være
harmløs.

Nu burde følgende folder kunne fjernes:
# rm -r /usr/local/etc/apache2

Installering og opsætning af PHP:
Det ser ud til at man ikke længere behøver "WITH_APACHE2= true" i
/etc/make.conf

Geninstallér mod_php5:
# cd /usr/ports/www/mod_php5
# make deinstall
# make install clean

Rettelser til httpd.conf:

I LoadModule-afsnittet tilføjes:
LoadModule php5_module libexec/apache22/libphp5.so

I afsnittet "<IfModule dir_module>" tilføjes:
     DirectoryIndex index.html index.html.var index.php

I afsnittet "<IfModule mime_module>" tilføjes:
         AddType application/x-httpd-php .php
         AddType application/x-httpd-php-source .phps

Nu burde følgende folder kunne fjernes:
# rm -r /usr/local/libexec/apache2

For at rette eventuelle afhængigheder fra den gamle til den nye apache:
# pkgdb -F

Til sidst:
# httpd -k restart



This archive was generated by hypermail 2b30 : Wed 15 Nov 2006 - 18:24:55 CET