Pisut know-how veebiserveri installeerimiseks

Kindlasti leidub selle saidi külastajate seas kasutajaid, kes teeksid alltoodut hoopis teisiti, kuid ka nendele on antud võimalus siia täiendavaid artikleid üles panna ja miks mitte alternatiivseid ning konkureerivaid.

Tänapäeval on veebiserverid enamjaolt dünaamilised: andmed hoitakse andmebaasis ning nendest genereeritakse html vorming serveripoolsete skriptide abil. Sageli saadetakse andmeid kliendi brauserisse krüptitud kujul.

Vabavara areng toimub väga kiirelt st. uute alltoodud komponentide versioone antakse välja keskmiselt kaks korda kvartalis. Kindlaim viis endale sobivalt server häälestada, on installeerida tarkvara lähtekoodist.

Autor kasutab veebiserveri installeerimiseks järgnevaid komponente, sulgudes on viide komponendi allalaadimiseks:

Zlib 1.2.1  (http://www.zlib.net/zlib-1.2.1.tar.gz)
OpenSSL 0.9.7d  (http://www.openssl.org/source/openssl-0.9.7d.tar.gz)
Apache 2.0.49  (http://apache.datanet.ee/httpd/httpd-2.0.49.tar.gz)
MySQL 4.0.18  (http://mysql.mirror.ok.ee/Downloads/MySQL-4.0/mysql-4.0.18.tar.gz)
PHP 4.3.6  (http://ee2.php.net/distributions/php-4.3.6.tar.gz)
Lae enda arvutisse Zlib 1.2.1:
wget http://www.zlib.net/zlib-1.2.1.tar.gz
Paki zlib-1.2.1 arhiiv lahti:
tar xzf zlib-1.2.1.tar.gz
Muuda jooksev kataloog zlib-1.2.1:
cd zlib-1.2.1/
Staatiline (static) Zlib-1.2.1 installeerimine:
./configure && make test && make install
Jagatud (shared) Zlib-1.2.1 installeerimine:
make clean && ./configure --shared && make test && make install
Paigalda kaks faili:
mv -f zutil.h /usr/local/include
mv -f zutil.c /usr/local/include
Veendu et failis:
/etc/ld.so.conf
on rida:
/usr/local/lib
Kui ei ole, siis lisa see sinna juurde:
echo /usr/local/lib >> /etc/ld.so.conf
Teavita ka süsteemi uute teekide olemasolust:
ldconfig -v
ZLib 1.2.1 on installeeritud, lähtekoodi pole praegu rohkem vaja:
cd ../
rm -rf zlib-1.2.1/
Siin me kohvipausi ei tee, kuna Zlib installeerimine toimub küllalt kiirelt
Teiste komponentide installeerimisprotsess aga võtab sõltuval masina võimsusest oluliselt rohkem aega

Lae enda arvutisse OpenSSL 0.9.7d:
wget http://www.openssl.org/source/openssl-0.9.7d.tar.gz
Paki openssl-0.9.7d arhiiv lahti:
tar xzf openssl-0.9.7d.tar.gz
Muuda jooksev kataloog openssl-0.9.7d:
cd openssl-0.9.7d/
OpenSSL 0.9.7d installeerimine:
./config --prefix=/usr/local/ssl shared zlib-dynamic && ./config -t && make test && make install
KOHVIPAUS 5 minutit ;)

Veendu et failis:
/etc/ld.so.conf
on rida:
/usr/local/ssl/lib
Kui ei ole, siis lisa see sinna juurde:
echo /usr/local/ssl/lib >> /etc/ld.so.conf
Teavita ka süsteemi uute teekide olemasolust:
ldconfig -v
OpenSSL 0.9.7d on installeeritud, lähtekoodi pole praegu rohkem vaja:
cd ../
rm -rf openssl-0.9.7d/
Veendu, et sul on õige versioon OpenSSL kasutusel:
openssl version
peab väljastama:
OpenSSL 0.9.7d 17 Mar 2004


Lae enda arvutisse Apache 2.0.49:
wget http://apache.datanet.ee/httpd/httpd-2.0.49.tar.gz
Paki httpd-2.0.49.tar.gz arhiiv lahti:
tar xzf httpd-2.0.49.tar.gz
Muuda jooksev kataloog httpd-2.0.49:
cd httpd-2.0.49/
Apache 2.0.49 installeerimine:
Täieliku ülevaate saamiseks võimalikest võtmetest konfiguratsioonis saad:
./configure -h
Kuivõrd valik on tõelisel mahukas, soovitan selle õpetusega eelnevalt tutvuda, et selgitada enda jaoks vajalikud võtmed
./configure \
--prefix=/usr/local/apache2 \
--enable-mods-shared=most \
--enable-deflate \
--enable-ssl \
--with-ssl=/usr/local/ssl \
--enable-mime-magic \
--enable-cgi \
--enable-vhost-alias \
--enable-rewrite && make && make install
KOHVIPAUS 5 minutit ;)

Sertifikaadi loomine:
Loo kataloogid:
mkdir /usr/local/apache2/conf/ssl.crt
mkdir /usr/local/apache2/conf/ssl.key
Koosta sertifikaat:
openssl req -new -out server.csr
Eemalda parool privaatvõtmest, koosta serveri võti:
openssl rsa -in privkey.pem -out server.key
Koosti iseallkirajstav sertifikaat, avalik võti kehtivusega 365 päeva:
openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 365
Paiguta loodud failid varem loodud sertifikaadi ja võtme kataloogi:
mv -f server.crt /usr/local/apache2/conf/ssl.crt
mv server.key /usr/local/apache2/conf/ssl.key
Apache 2.0.49 on installeeritud, lähtekoodi pole praegu rohkem vaja:
cd ../
rm -rf httpd-2.0.49/
Veendu, et on olemas kasutaja apache.apache:
id apache
Kui vastuseks on umbes midagi taolist:
uid=1000(apache) gid=102(apache) groups=102(apache)
on kõik OK! Kui vastuseks on:
id: apache: No such user
tuleb luua kasutaja ja grupp apache.apache:
groupadd apache
useradd -g apache apache
Üldjuhul hoitakse kõik konfiguratsioonifailid kataloogis: /etc
Apache paigutab oma konfiguratsiooni PREFIX/conf kataloogi
Et järgida hea tava, tee sümboolne link PREFIX/conf jaoks
ln -s /usr/local/apache2/conf /etc/httpd
Muuda failis /etc/httpd/httpd.conf read:
User nobody
Group #-1
ümber:
User apache
Group apache
Apache käivitamine, taaskäivitamine ja peatamine käib skripti abil, mis asub PREFIX/bin/apachectl
Kopeeri see fail algkäivituse skriptide kataloogi:
Slackware:

ln -s /usr/local/apache2/bin/apachectl /etc/rc.d/rc.httpd

RedHat/Fedora:

ln -s /usr/local/apache2/bin/apachectl /etc/rc3.d/S92apachectl
ln -s /usr/local/apache2/bin/apachectl /etc/rc5.d/S92apachectl
ln -s /usr/local/apache2/bin/apachectl /etc/rc0.d/K92apachectl
ln -s /usr/local/apache2/bin/apachectl /etc/rc6.d/K92apachectl
Minu näites (enamlevinud võtmetega):
/etc/rc.d/rc.httpd (start|restart|startssl|stop)


MySQL 4.0.18 võib installeerida kahel moel: a) eelkompileeritud b) lähtekoodist c) paketist: rpm | tgz | deb
eelkompileeritud variant on algajale turvalisem, kuid sisaldab ka üldiselt mittevajalikku (minu näites viimased 3 omadust);
paketist installeeritud variandid võivad probleeme tekitada hilisemal PHP installeerimisel

a) Installeerimine lähtekoodist:
Lae enda arvutisse MySQL 4.0.18:
wget http://mysql.mirror.ok.ee/Downloads/MySQL-4.0/mysql-4.0.18.tar.gz
Paki mysql-4.0.18.tar.gz arhiiv lahti:
tar xzf mysql-4.0.18.tar.gz
Muuda jooksev kataloog mysql-4.0.18:
cd mysql-4.0.18/
MySQL 4.0.18 installeerimine:
Täieliku ülevaate saamiseks võimalikest võtmetest konfiguratsioonis saad:
./configure -help
CFLAGS="-O3 -march=i686" \
CXX=gcc CXXFLAGS="-O3 -march=i686 -felide-constructors -fno-exceptions -fno-rtti" \
./configure \
--prefix=/usr/local/mysql \
--enable-assembler \
--with-mysqld-ldflags=-all-static \
--localstatedir=/sql.data \
--enable-thread-safe-client \
--with-extra-charsets=complex \
--without-debug \
--without-bench \
--without-isam \
--without-innodb \
&& make && make install
Märkused:
minu näide kasutab andmebaasi asukohana kataloogi /sql.data
-march=i686 sõltub su arvutist:
uname -m
annab sulle vastuse, mida kasutada i686 asemel
Veendu et failis:
/etc/ld.so.conf
on rida:
/usr/local/mysql/lib/mysql
Kui ei ole, siis lisa see sinna juurde:
echo /usr/local/mysql/lib/mysql >> /etc/ld.so.conf
Teavita ka süsteemi uute teekide olemasolust:
ldconfig -v
b) Installeerimine eelkompileeritud kujul:
Lae enda arvutisse MySQL 4.0.18:
wget http://mysql.mirror.ok.ee/Downloads/MySQL-4.0/mysql-standard-4.0.18-pc-linux-i686.tar.gz
Paki mysql-standard-4.0.18-pc-linux-i686.tar.gz arhiiv lahti:
tar xzf mysql-standard-4.0.18-pc-linux-i686.tar.gz
Paigalda failid kataloogi /usr/local
mv mysql-standard-4.0.18-pc-linux-i686 /usr/local
Üldjuhul teisi MySQL versioone samas masinas ei kasutata ning ümberpaigutatud kataloogi võib lõplikult ümbernimetada
mv /usr/local/mysql-standard-4.0.18-pc-linux-i686 /usr/local/mysql
Muuda jooksev kataloog /usr/local/mysql:
cd /usr/local/mysql/

Lõpphäälestus mõlema variandi jaoks:
Veendu, et on olemas kasutaja mysql.mysql:
id mysql
Kui vastuseks on umbes midagi taolist:
uid=27(mysql) gid=27(mysql) groups=27(mysql)
on kõik OK! Kui vastuseks on:
id: mysql: No such user
tuleb luua kasutaja ja grupp mysql.mysql:
groupadd mysql
useradd -g mysql mysql
Jooksvast kataloogist lahkumata kopeeri vaikimisi konfiguratsioonifail:
cp support-files/my-medium.cnf /etc/my.cnf
Konfiguratsioonifaili /etc/my.cnf [mysqld] sektsiooni võid lisada rea:
default-character-set=estonia
kui soovid eesti keele tuge andmete sorteerimisel
MySQL installatsiooniskriptide käivitamine:
scripts/mysql_install_db
Omanikuõigused:
chown -R root /usr/local/mysql
chgrp -R mysql /usr/local/mysql

a) kompileeritud lähtekoodist:
chown -R mysql.mysql /sql.data

b) eelkomileeritud paigaldamine:
chown -R mysql /usr/local/mysql/data
MySQL käivitamine, taaskäivitamine ja peatamine käib skripti abil, mis asub support-files/mysql.server
Kopeeri see fail algkäivituse skriptide kataloogi:
Slackware:

a) kompileeritud lähtekoodist:
cp support-files/mysql.server /etc/rc.d/rc.mysqld

b) eelkomileeritud paigaldamine:
ln -s /usr/local/mysql/support-files/mysql.server /etc/rc.d/rc.mysqld

RedHat/Fedora:

a) kompileeritud lähtekoodist:
cp support-files/mysql.server /etc/init.d/mysqld
ln -s /etc/init.d/mysqld /etc/rc3.d/S91mysqld
ln -s /etc/init.d/mysqld /etc/rc5.d/S91mysqld
ln -s /etc/init.d/mysqld /etc/rc0.d/K91mysqld
ln -s /etc/init.d/mysqld /etc/rc6.d/K91mysqld

b) eelkomileeritud paigaldamine:
ln -s /usr/local/mysql/support-files/mysql.server /etc/rc3.d/S91mysqld
ln -s /usr/local/mysql/support-files/mysql.server /etc/rc5.d/S91mysqld
ln -s /usr/local/mysql/support-files/mysql.server /etc/rc0.d/K91mysqld
ln -s /usr/local/mysql/support-files/mysql.server /etc/rc6.d/K91mysqld
Minu näites (enamlevinud võtmetega):
/etc/rc.d/rc.mysqld (start|restart|stop)
Kui MySQL installeeriti lähtekoodist kompileerides, võib kustutada ka kataloogi
cd ../
rm -rf mysql-4.0.18/

Lae enda arvutisse PHP 4.3.6:
wget http://ee2.php.net/distributions/php-4.3.6.tar.gz
Paki php-4.3.6.tar.gz arhiiv lahti:
tar xzf php-4.3.6.tar.gz
Muuda jooksev kataloog php-4.3.6:
cd php-4.3.6/
PHP 4.3.6 installeerimine:
Täieliku ülevaate saamiseks võimalikest võtmetest konfiguratsioonis saad:
./configure --help
Kuivõrd valik on tõelisel mahukas, soovitan selle õpetusega eelnevalt tutvuda, et selgitada enda jaoks vajalikud võtmed
./configure \
--prefix=/usr/local/php \
--with-apxs2=/usr/local/apache2/bin/apxs \
--with-openssl=/usr/local/ssl \
--with-zlib \
--with-mysql=/usr/local/mysql \
--with-mime-magic \
--enable-mbstring \
--enable-mbregex \
--with-gettext \
--enable-track-vars \
--enable-force-cgi-redirect && make && make install
Kopeeri PHP konfiguratsioonifail õigesse kohta:
cp php.ini-recommended /usr/local/php/lib/php.ini
ln -s /usr/local/php/lib/php.ini /etc/php.ini
PHP 4.3.6 on installeeritud, lähtekoodi pole praegu rohkem vaja:
cd ../
rm -rf php-4.3.6/
Veendu, et failis /etc/httpd/httpd.conf on read:
LoadModule php4_module modules/libphp4.so
DirectoryIndex index.html index.html.var index.php
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
Muuda failis /etc/php.ini read:
output_buffering = On
output_handler =
zlib.output_compression = Off
expose_php = Off
Tekita üks lihtne PHP testfail:
echo "<?php phpinfo(); ?>" > /usr/local/apache2/htdocs/index.php
/etc/rc.d/rc.httpd restart
Kui kõik on sujunud vigadeta, peaks olema näha PHP konfiguratsiooni kokkuvõttev tabel
lynx localhost
või graafilisemast brauserist:
http://serveri_hostname_või_IP_mida_ma_just_konfisin


Kokkuvõtteks:
See kirjutis on minu jaoks esimene sellelaadne dokument.
Linux'ga kogemust on ka vaid paari aasta jagu
Kõik nüansid, niipalju kui ma neid siia kribasin, on saadud isiklike kogemuste, googeldamise, e.a.u.l.vestlus ja e.a.u.l.install vestluse ja abi tulemusena.
Oleks meeldiv sellelaadseid eestikeelseid kirjutisi rohkem kohata. Kõikvõimalikud kommentaarid, märkused on väga teretulnud!

TM

Kommentaarid

Apachi sain jooksma släckis, jälgides seda õpetust :)... Nyyd hakkan siis mysqli ja phped paigaldama... igastahes suured tänud selle manuaali valmistamise eest :)!

Väga asjalik õpetus :) kahju ainult, et endal pole võimalust oma masinast veebiserver teha... y0
y0

Suured tänud manuaali eest. Tõesti kasulik asi. Mina arvan et kõik kes midagi teavad võiksid seda ka avalikustada :P Jätka samas vaimus.
Kas sa oled administreerinud juba tõelist OP Süsteemi? www.linux.ee