Här börjar de installationer som kan tyckas ha lite mer inriktning mot vad servern ska användas till. Ofta har man oavsett slutligt användningsområde nytta av en webserver som har installerat stöd för PHP (som i sin tur kan använda MySQL databaser).
För att göra PHP ännu mer användbart kompilerar jag in stöd för bildformaten JPEG och PNG, samt bildbearbetnings libraryt GD, och stöd för FTP. Apache får stöd för suexec samt laddningsbara moduler. I konfigurationen av Apache skapar jag en separat katalog för lagring av inställningar för virtual hosts, allt för att senare slippa ändra i Apachens huvudkonfiguration. Default siten är inte tänkt att innehålla något nyttigt alls, mest pga alla windows virus som attackerar web servrar på deras IP adresser. I och med att alla virtual hosts på servern har sina egna loggfiler, så kommer huvud-loggen bara att innehålla accesser från virus och sökmotorer.
Jag har även satt in instruktioner för att kompilera in IMAP stöd i PHP. Detta för att maskinen ska gå att använda som server för en webmail klient i ett senare skede. IMAP kan även komma till nytta i egna projekt, men det går alltid att kompilera in senare om du inte har behov av det eller vill testa IMAP funktionerna direkt.
Komfiguration av komponenterna (speciellt Apache) görs senare då allt är installerat.
Hämta och packa upp:
mkdir -p /usr/local/src cd /usr/local/src wget http://apache.dataphone.se/httpd/httpd-2.2.14.tar.gz tar xfz httpd-2.2.14.tar.gz cd httpd-2.2.14 ./configure --prefix=/usr/local/apache2 --enable-mods-shared=most \ --enable-suexec --with-suexec-docroot=/home/www \ --with-suexec-userdir=public_html \ --with-suexec-bin=/usr/local/apache2/bin/suexec \ --with-suexec-caller=www --enable-so --with-included-apr --enable-ssl make make install
Mycket av konfigurationen av Apache görs med fördel efter att PHP installerats, och en komplett konfiguration av web servern kommer beskrivas lite senare.
Byt ev. namn på medföljande Apache 1.3 startscript:
mv /usr/sbin/apachectl /usr/sbin/13_apachectl
Vill du ha kvar "gamla" apache (1.3) som följer med OpenBSD, så kan du köra den på en annan port. Ändra i /var/www/conf/httpd.conf
Sök efter "Port 80", och ändra till det du vill ha, ex. 8013 (som i 1.3).. Ändra också i <IfDefine SSL> blocket.
Hämta källkoden och packa upp:
cd /usr/local/src wget http://ftp.sunet.se/pub/unix/databases/relational/mysql/Downloads/MySQL-5.1/mysql-5.1.40.tar.gz tar xfz mysql-5.1.40.tar.gz cd mysql-5.1.40
Kompilera och installera
groupadd _mysql; useradd -m -d /usr/local/mysql -g _mysql _mysql CFLAGS="-O3" CXX=gcc CXXFLAGS="-O3 -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --enable-assembler \ --with-mysqld-ldflags=-static --with-client-ldflags=-static \ --with-plugins=federated --enable-thread-safe-client \ --without-comment --without-debug --without-libedit make make install
Installera mysql databasen, sätt lösenord för root
./scripts/mysql_install_db chown -R root /usr/local/mysql chown -R _mysql /usr/local/mysql/var chgrp -R _mysql /usr/local/mysql cp support-files/my-medium.cnf /etc/my.cnf /usr/local/mysql/bin/mysqld_safe --user=_mysql & /usr/local/mysql/bin/mysqladmin -u root password 'xxXXxxXX'
Lägg till i /etc/my.cnf under [mysqld] sektionen (minskar problem med för många öppna filer):
open-files-limit = 512
Ändra max_allowed_packed
till något större än 1M (för att kunna spara större mängder
data, exempelvis bilder direkt i ett fält i databasen.
max_allowed_packet = 20M
Lägg till/ändra i /etc/rc.conf.local, så att PHP hittar MySQL libraries:
shlib_dirs=/usr/local/mysql/lib/mysql
I /etc/login.conf lägger du till:
_mysql:\ :datasize=2G:\ :datasize-max=3G:\ :datasize-cur=2G:\ :maxproc=infinity:\ :openfiles=8192:\ :stacksize-cur=8M:\ :localcipher=blowfish,8:\ :tc=default:
Kör sen (för att ändra _mysql användarens inställningar för max open files m.m.)
usermod -L _mysql _mysql
För att kunna komma upp i den maxfiles gränsen måste man lägga till lite i /etc/sysctl.conf:
kern.maxfiles=8192 kern.maxproc=1024
kern.maxfiles
sätter den övre gränsen för antalet öppna filer, och
kern.maxproc
sätter gränsen för antalet processer som kan vara igång samtidigt
(apache kommer kanske behöva lite mer än default, och då är det lika att öka
här på en gång)