Talk:Veebiserveri labor
Legend
Firmale on vaja luua kaks veebilehte:
- www.firma.ee
- sales.firma.ee
Mõlemal lehel saab kasutada php'd
Lisaks tuleb konfigureerida mysql ja phpMyAdmin andmebaaside seadistamiseks
Üldinformatsioon
Allolev juhend sobib veebiserveri paigaldamiseks Ubuntu 9.04 operatsioonisüsteemis, kuid suure tõenäosusega ka uuemate/vanemate versioonidega.
Selle juhendi kasutajalt eeldatakse linuxi käsurea mõningast tundmist ning oskust kasutada käsurealt tekstieditori n. vi või nano.
Töö käik
Kuna enamus järgnevaist toimingutest vajavad root kasutaja privileege, on 2 võimalust:
1. Käivitada iga säherdune käsk root kasutaja õigustes sudo abil näiteks:
sudo apt-get update sudo nano /etc/hosts
2. Logime ennast root kasutajaks ning käivitame vajalikud toimingud. Kuna sudo-t sel juhul enam vaja ei lähe, hoiad selle arvelt pisut aega kokku. Samas on aga tunduvalt lihtsam midagi ära rikkuda, sest KÕIK käsud käivitatakse root kasutaja õigustes!
sudo -i apt-get update vi /etc/hosts
Kuidas keegi jätkab on igaühe enda valida. Järgnevas juhendis on root kasutaja õigustes käivitatavatel käskudel ees sudo. Kui otsustad ennast kohe root kasutajaks keerata, siis edaspidistes toimingutes võid (aga ei pea) sudo eest ära jätta. Kuna enamus konfiguratsioonifaile on root kasutaja omad, pead nende muutmiseks omama ka root kasutaja privileege - tekstieditor tuleb käivitada toot kasutaja õigustes nagu ülal näidatud.
Eeldused
Et üleüldse saaks veebisirvijaga minna aadressidele www.firma.ee ja sales.firma.ee on vaja seadistada nimelahendus nii, et eelpool nimetatud aadressidele vastaks serveri enda ip aadress.
- Uuri välja oma masina IP aadress. n ifconfig käsuga.
- lisa /etc/hosts faili read:
<MasinaIP> <www.firma.ee> <MasinaIP> <sales.firma.ee>
- Testimiseks pingi www.firma.ee ja sales.firma.ee Kui ping vastab, on nimelahendus õigesti seadistatud.
Installeerimine
Enne installeerimist tasub uuendada tarkvara nimekirja:
sudo apt-get update
Installeerime apt abil links veebissirvija, apache veebiserveri, mysql andmebaasi ning phpMyadmin kasutajaliidese:
sudo apt-get install links apache2 mysql-server phpmyadmin
Installeerimise käigus küsitakse:
- MySQL peakasutaja (root) parooli määramist
- Veebiserver, millele phpMyAdmin paigalda - vali apache2
- phpMyadmini administraatori parooli
- kas paigaldada vaikimisi seadistusega andmebaas - vali "yes"
Seadistamine
phpMyadmin
Seadistamiseks 2 varianti:
Lisa Apache konfiguratsioonifaili /etc/apache2/apache2.conf rida:
Include /etc/phpmyadmin/apache.conf
või
lingi phpmyadmin konfiguratsioonifail Apache seadistuste kataloogi:
ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf.d/phpmyadmin.conf
Nimepõhiste virtuaalserverite loomine
- Loo kataloogid www ja sales /var/www kausta.
sudo mkdir -p /var/www/www /var/www/sales
- Loo /etc/apache2/sites-available/default konfiguratsiooni failist koopiad nimedega www ja sales:
sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/sales sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/www
- Muuda sales ja www faile:
sales:
<VirtualHost *:80> ServerAdmin webmaster@localhost ServerName sales.firma.ee #Lisa see rida siia DocumentRoot /var/www/sales #Seda rida tuleb muuta <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/sales> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog /var/log/apache2/sales.error.log #Seda rida tuleb muuta # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /var/log/apache2/sales.access.log combined #Seda rida tuleb muuta Alias /doc/ "/usr/share/doc/" <Directory "/usr/share/doc/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 </Directory> </VirtualHost>
www:
<VirtualHost *:80> ServerAdmin webmaster@localhost ServerName www.firma.ee #Lisa see rida siia DocumentRoot /var/www/www #Seda rida tuleb muuta <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/www> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog /var/log/apache2/www.error.log #Seda rida tuleb muuta # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /var/log/apache2/www.access.log combined #Seda rida tuleb muuta Alias /doc/ "/usr/share/doc/" <Directory "/usr/share/doc/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 </Directory> </VirtualHost>
- sales ja www virtualhostide kasutamiseks tuleb keelata default lehekülg ja lubada sales ning www, sisestades käsurealt järgmised käsud:
a2ensite sales a2ensite www a2dissite default
SSL keskkonna loomine
Sertifikaadi genereerimine
Kõik allpool toodud käsud teha root kasutaja alt
sudo -i
Kõigepealt liikuda kataloogi /etc/apache2/ ja siis genereerida www.firma.ee võtmed
cd /etc/apache2/
Käivitada seal käsk:
openssl req -nodes -new -keyout www.firma.ee.key -newkey rsa:1024 > www.firma.ee.csr
Küsimustele vastata nii nagu allpool näidatud.
Country Name (2 letter code) [AU]:EE State or Province Name (full name) [Some-State]:Tallinn Locality Name (eg, city) []:Tallinn Organization Name (eg, company) [Internet Widgits Pty Ltd]:Firma Organizational Unit Name (eg, section) []: Common Name (eg, YOUR name) []:www.firma.ee Email Address []: A challenge password []: An optional company name []:
Käivitada need käsud
openssl x509 -req -days 3650 -in www.firma.ee.csr -signkey www.firma.ee.key -out www.firma.ee.crt
openssl x509 -in www.firma.ee.crt -noout -text
Nüüd genereerime sales.firma.ee võtmed
cd /etc/apache2/
Käivitada seal käsk:
openssl req -nodes -new -keyout sales.firma.ee.key -newkey rsa:1024 > sales.firma.ee.csr
Küsimustele vastata nii nagu allpool näidatud.
Country Name (2 letter code) [AU]:EE State or Province Name (full name) [Some-State]:Tallinn Locality Name (eg, city) []:Tallinn Organization Name (eg, company) [Internet Widgits Pty Ltd]:Firma Organizational Unit Name (eg, section) []: Common Name (eg, YOUR name) []:sales.firma.ee Email Address []: A challenge password []: An optional company name []:
Käivitada need käsud
openssl x509 -req -days 3650 -in sales.firma.ee.csr -signkey sales.firma.ee.key -out sales.firma.ee.crt
openssl x509 -in sales.firma.ee.crt -noout -text
SSL seadistamine
SSL mooduli lubamiseks järgmine käsk
a2enmod ssl
Seejärel restardime apache
/etc/init.d/apache2 restart
Seadistame apache2.
nano /etc/apache2/ports.conf
Failis ports.conf peab <IfModule mod_ssl.c> ja </IfModule> tagide vahel olema ainult järgmised read.
Listen 443 Listen 444
Järgnevalt muuta faili /etc/apache2/sites-enabled/www/
nano /etc/apache2/sites-enabled/www
Lisada faili lõppu peale viimast </VirtualHost> rida järgnev uus Virtualhosti sektsioon. Jälgida, et crt ja key failid oleks vastavates kataloogides.
<VirtualHost *:443> ServerAdmin webmaster@localhost ServerName www.firma.ee DocumentRoot /var/www/www <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/www> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog /var/log/apache2/www.error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /var/log/apache2/www.access.log combined Alias /doc/ "/usr/share/doc/" <Directory "/usr/share/doc/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 </Directory> ErrorLog /var/log/apache2/www.firma.ee-ssl-error.log TransferLog /var/log/apache2/www.firma.ee-ssl-access.log SSLEngine on SSLCertificateFile /etc/apache2/www.firma.ee.crt SSLCertificateKeyFile /etc/apache2/www.firma.ee.key SSLOptions +StdEnvVars </VirtualHost>
Nüüd tuleb muuta sales faili
nano /etc/apache2/sites-enabled/sales
Lisada faili lõppu peale viimast </VirtualHost> rida järgnev uus Virtualhosti sektsioon. Jälgida, et crt ja key failid oleks vastavates kataloogides.
<VirtualHost *:444> ServerAdmin webmaster@localhost ServerName sales.firma.ee DocumentRoot /var/www/sales <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/sales> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog /var/log/apache2/sales.error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /var/log/apache2/sales.access.log combined Alias /doc/ "/usr/share/doc/" <Directory "/usr/share/doc/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 </Directory> ErrorLog /var/log/apache2/sales.firma.ee-ssl-error.log TransferLog /var/log/apache2/sales.firma.ee-ssl-access.log SSLEngine on SSLCertificateFile /etc/apache2/sales.firma.ee.crt SSLCertificateKeyFile /etc/apache2/sales.firma.ee.key SSLOptions +StdEnvVars </VirtualHost>
Seejärel restardime apache
/etc/init.d/apache2 restart
Testimiseks käivitame järgmised käsud
links www.firma.ee links sales.firma.ee links https://www.firma.ee:443 links https://sales.firma.ee:444
Kui tulevad õiged lehed ette ja erroreid ei viska, siis on kõik OK.
Käivitamine
veebiserveri käivitamine:
sudo /etc/init.d/apache2 start
või
sudo service apache2 start
Siinkohal oleks mõistlik uurida, kas veebiserver peale serveri (re)starti automaatselt käivitub:
Üsna lihtne viis seda teha on kasutada chkconfig käsku. Kui sul seda ei ole, siis paigalda see apti abil:
sudo apt-get install chkconfig
Tee kindlaks, kas teenus serveri restardi puhul automaatselt käivitub:
chkconfig apache2
Kui eelneva käsu väljund on "apache2 on", siis käivitub see automaatselt, "apache2 off" puhul ei käivitu.
Teenuse automaatset käivitumist saab sisse-välja lülitada samuti chkconfig käsuga:
sudo chkconfig apache2 on sudo chkconfig apache2 off
Peale IGAT konfiguratsioonimuudatust peaks muudatused ka veebiserverisse laadima. Peale igat seetõttu, et kui midagi valesti läks, siis on viga lihtsam leida.
Selleks võib veebiserverile teha restardi: veebiserveri käivitamine:
sudo /etc/init.d/apache2 restart
või
sudo service apache2 restart
aga ei pea:
sudo /etc/init.d/apache2 reload
või
sudo service apache2 reload
reload eelis on selles, et see toimib kasutajatele märkamatult, kasutajate sessioonid säilivad. Näiteks kui sinu veebilehele on sisseloginud 100 kasutajat, siis restart puhul peaksid nad kõik uuesti sisse logima, reload puhul ei pea.
Tulemuse kontroll
Tuleb luua phpinfo.php leht, mille vaatamisel kuvatakse phpinfo funktsiooni väljund:
echo "<?php phpinfo(); ?>" > /var/www/phpinfo.php
Tuleb luua index.html fail nii /var/www/www/ kui /var/www/sales/ kataloogi:
echo "<h1>Firma pealeht</h1>" > /var/www/www/index.html echo "<h1>Myygiosakond</h1>" > /var/www/sales/index.html
- Kontrollimiseks mine veebilehitsejaga järgmistele aadressidele:
links http://www.firma.ee/phpinfo.php links http://www.firma.ee links http://sales.firma.ee phpMyadmini leht
Minnes http://www.firma.ee/phpinfo.php peaksid nägema standartset phpinfo lehte.
Minnes links abil lehele www.firma.ee peab kuvatama leht sisuga "firma pealeht". Külastusest peab jääma jälg logifaili
/var/log/apache2/www.firma.ee.access.log , vigadest peab jääma jälg faili /var/log/apache2/www.firma.ee.error.log
Minnes links abil lehele sales.firma.ee peab kuvatama leht sisuga "müügiosakond". Külastusest peab jääma jälg logifaili
/var/log/apache2/sales.firma.ee.access.log , vigadest peab jääma jälg faili /var/log/apache2/sales.firma.ee.error.log
phpMyAdmin abil peab saama luua andmebaase ja tabeleid
Varundus ja taastamine
Varundamiseks kopeeri allolevates kataloogides asuvad failid alternatiivsele andmekandjale.
Failiõiguste säilitamiseks ja andmete tihendamiseks kasuta tar käsku.
Andmete asukohad
Veebide sisu: /var/www Veebi sales.firma sisu: /var/www/sales Apache2 konfiguratsioon: /etc/apache2 Veebiserveri logifailid: /var/log/apache2
Varundamise ja taastamise näited
Varundame kõik veebid juurkataloogis asuvasse faili veebid.tar.gz
sudo tar -cvvf /veebid.tar.gz /var/www/*
Taastame kõik veebid juurkataloogis olevast failist veebid.tar.gz endisesse asukohta:
sudo tar -xvvf /veebid.tar.gz