Talk:Veebiserveri labor: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Aellisso (talk | contribs)
Aellisso (talk | contribs)
Line 22: Line 22:
<pre>
<pre>
sudo apt-get update
sudo apt-get update
sudo nano /etc/hosts
</pre>
</pre>
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!
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!
Line 27: Line 28:
sudo -i
sudo -i
apt-get update
apt-get update
vi /etc/hosts
</pre>
</pre>



Revision as of 11:09, 3 October 2009

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.

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
  • Kopeeri /etc/apache2/sites-available kaustas oleva default konfiguratsiooni faili ning loo koopiad www ja sales nimedega.
sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/sales
sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/www
  • Ava sales konfiguratsiooni faili nanoga.
sudo nano /etc/apache2/sites-available/sales
  • Muudetud sales fail peaks välja nägema selline :
<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>

  • Ava www konfiguratsiooni faili nanoga.
sudo nano /etc/apache2/sites-available/www
  • Muudetud www fail peaks välja nägema selline :
<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

/etc/init.d/apache2 reload

  • Testimine

Testimiseks tuleb luua index.html fail nii www kui ka sales kataloogi. Selleks tegutse järgmiselt:

    • Loo fail www kataloogi
nano /var/www/www/index.html
      • Kirjuta faili
<h1>Firma pealeht</h1>
    • Loo fail sales kataloogi
nano /var/www/sales/index.html
      • Kirjuta faili
<h1>Myygiosakond</h1>
  • Kontrollimiseks mine veebilehitsejaga järgmistele aadressidele:
links www.firma.ee
links sales.firma.ee

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.


Peale konfiguratsioonimuudatust peaks muudatused ka veebiserverisse laadima.

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.

Tulemuse kontroll

Tuleb luua phpinfo.php leht, mille vaatamisel kuvatakse phpinfo funktsiooni väljund.

Minnes links abil lehele www.firma.ee peab kuvatama leht sisuga "firma pealeht". Selle lehe log failid salvestada www.firma.ee.access.log ja www.firma.ee.error.log failidesse.

Minnes links abil lehele sales.firma.ee peab kuvatama leht sisuga "müügiosakond" Logfailid analoogselt eelnevaga (sales.firma.ee.access.log jne)

phpMyAdmin abil peab saama luua andmebaase ja tabeleid

phpinfo lehe loomine

Loo fail

nano /var/www/www/phpinfo.php

Kirjuta faili

<?php
phpinfo();
?>

Kontrollimiseks mine veebilehitsejaga aadressile

links http://www.firma.ee/phpinfo.php

Peaks nägema standartset phpinfo lehte.

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/*