Veebiserver labor 2

From ICO wiki

Autorid

  • Niina Stsetnikova
  • Viktoria Mulina

Versioonide ajalugu

Versioon 1(20% valmis): 24.11.2009

Versioon 2(50% valmis): 30.11.2009

Versioon 3(85% valmis): 01.12.2009

Versioon 4(100% valmis): 07.12.2009

Versioon 5(muudetud): 15.12.2009

Sissejuhatus

Meil on vaja luua veebiserveri, ehk interneti püsiühendusega arvuti, milles hoitakse veebisaite:

  • www.album.ee
  • photo.album.ee

Eeldused

Ubuntu server 9.10

Apache 2.2.12

OpenSSL 0.9.8g

Nõuded

  • Konfigureerida kaks veebilehte
  • Mõlemal lehel peab olema võimalik kasutada php'd
  • Konfigureerida mysql ja phpMyAdmin andmebaaside seadistamiseks
  • Seadistada SSL
  • Seadistada SNI
  • Monitooring - valida millega monitoorida

Installeerimise ja konfigureerimise juhend

Logime ennast root kasutajaks:

sudo -i

Enne installerimist tasub uuendada tarkvara nimekirja:

apt-get update

Kuna nõudeks on uuem Ubuntu versioon siis on vaja meie oma uuendada

apt-get install update-manager
apt-get install update-manager-core 
apt-get dist-upgrade 
do-release-upgrade 

Veersiooni kontrollimiseks:

lsb-release 

Testimiseks paigalda links veebisirvija

apt-get install links

Veebiserveri installeerimine

Kui on juba olemas mingi varem tehtud veebiserver, siis on vaja lihtsalt uuendada .conf failid, uus installeerimine ei ole tarvis.

Installeerimine apt abil:

apt-get install apache2

Teenuse taaskäivitamine:

/etc/init.d/apache2 restart

MySQL installeerimine

MySQL installeerimiseks tuleb sisestada Shelli käsk:

apt-get install mysql-server

Installeerimisel küsitakse MySQL root parooli määramist.

phpMyAdmin installeerimine

Paigaldamine

apt-get install phpmyadmin

Installeerimise käigus palutakse valida:
1) veebiserver, millele phpMyAdmin paigalda - vali apache2
2) administraatori parool
3) kas paigaldada vaikimisi seadistusega andmebaas - yes

Seadistamine

Muudame Apache konfiguratsioonifaili /etc/apache2/apache2.conf

nano /etc/apache2/apache2.conf

Lisa sinna rida:

Include /etc/phpmyadmin/apache.conf

Apache teenus tuleb taaskäivitada:

/etc/init.d/apache2 restart

Kontroll

Kontrollida saab käsureaga:

links http://masinanimi_või_IP/phpmyadmin

Alternatiivne seadistamine

Include lause lisamise asemel võib lihtsalt linkida phpmyadmin konfiguratsioonifaili Apache seadistuste kataloogi:

ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf.d/phpmyadmin.conf

Nimelahenduse loomine

1) Uurida välja oma masina IP käsuga

ifconfig

2) Muuta 'hosts' faili käsuga

 nano /etc/hosts

3) Lisada read

<MasinaIP> www.album.ee
<MasinaIP> photo.album.ee

4) Testimiseks pingida www.album.ee ja photo.album.ee

ping www.album.ee
ping photo.album.ee

Neid veebilehti saab pingida/testida ainult kohalikust serverimasinast. Kui ping vastab, on nimelahendus õigesti seadistatud

Nimepõhiste virtuaalserverite loomine

  • Loo kataloogid www ja photo /var/www kausta.
mkdir -p /var/www/www /var/www/photo
  • Kopeeri /etc/apache2/sites-available kaustas oleva default konfiguratsiooni faili ning loo koopiad www ja photo nimedega.
cp /etc/apache2/sites-available/default /etc/apache2/sites-available/photo
cp /etc/apache2/sites-available/default /etc/apache2/sites-available/www
  • Ava photo konfiguratsiooni faili nanoga.
nano /etc/apache2/sites-available/photo
  • Muudetud photo fail peaks välja nägema selline :
<VirtualHost *:80>
       ServerAdmin webmaster@localhost
       ServerName photo.album.ee
       DocumentRoot /var/www/photo
       <Directory />
               Options FollowSymLinks
               AllowOverride None
       </Directory>
       <Directory /var/www/photo>
               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/photo.error.log
       # Possible values include: debug, info, notice, warn, error, crit,
       # alert, emerg.
       LogLevel warn
       CustomLog /var/log/apache2/photo.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>
</VirtualHost>


  • Ava www konfiguratsiooni faili nanoga.
nano /etc/apache2/sites-available/www
  • Muudetud www fail peaks välja nägema selline :
<VirtualHost *:80>
       ServerAdmin webmaster@localhost
       ServerName www.album.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>
</VirtualHost>
  • photo ja www virtualhostide kasutamiseks tuleb keelata default lehekülg ja lubada photo ning www, sisestades käsurealt järgmised käsud:

a2ensite photo
a2ensite www
a2dissite default

/etc/init.d/apache2 reload

Kui teil on mõni veebileht ka olemas siis seda tuleb ka välja lülitada

  • Testimine

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

1. Loo fail www kataloogi

nano /var/www/www/index.html

1.1 Kirjuta faili

<h1>Tere tulemast www.album.ee veebilehele!</h1>

2. Loo fail photo kataloogi

nano /var/www/photo/index.html

2.1 Kirjuta faili

<h1>Siin saab fotod vaadata</h1>
  • Kontrollimiseks mine veebilehitsejaga järgmistele aadressidele:
links www.album.ee
links photo.album.ee

Kui ei tööta siis kontrollige, et kõik failid oleks korralikult muudetud. Võib olla veebilehe nimi on juba olemas, selle kontrollimiseks vaadake mis IP aadressile läheb signaal:

ping www.album.ee

kui IP on teie arvuti oma, siis viga ei ole selles!

phpinfo lehe loomine

Loo fail

nano /var/www/www/phpinfo.php

Kirjuta faili

<?php
phpinfo();
?>

Kontrollimiseks mine veebilehitsejaga aadressile

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

Peaks nägema standartset phpinfo lehte.


SSL keskkonna loomine

Sertifikaadi genereerimine

Kõigepealt liikuda kataloogi /etc/apache2/ ja siis genereerida www.album.ee võtmed

cd /etc/apache2/

Käivitada seal käsk:

openssl req -nodes -new -keyout www.album.ee.key -newkey rsa:1024 > www.album.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]:Album
Organizational Unit Name (eg, section) []:
Common Name (eg, YOUR name) []:www.album.ee
Email Address []:
A challenge password []:
An optional company name []:

Käivitada need käsud

openssl x509 -req -days 3650 -in www.album.ee.csr -signkey www.album.ee.key -out www.album.ee.crt

Kuvada sertifikaadi sisu:

openssl x509 -in www.album.ee.crt -noout -text

Nüüd genereerime photo.album.ee võtmed

cd /etc/apache2/

Käivitada seal käsk:

openssl req -nodes -new -keyout photo.album.ee.key -newkey rsa:1024 > photo.album.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]:Album
Organizational Unit Name (eg, section) []:
Common Name (eg, YOUR name) []:photo.album.ee
Email Address []:
A challenge password []:
An optional company name []:

Käivitada need käsud

openssl x509 -req -days 3650 -in photo.album.ee.csr -signkey photo.album.ee.key -out photo.album.ee.crt

Kuvada sertifikaadi sisu:

openssl x509 -in photo.album.ee.crt -noout -text

SNI Seadistamine

Kasutades Server Name Indication, ehk SNI, saab ühe IP ja pordi pealt suunata päringuid erinevatele https veebilehtedele.
Tekitame uue faili nimega 000-default, kataloogis /etc/apache2/sites-enabled/ :

nano /etc/apache2/sites-enabled/000-default

Konfiguratsioonifaili sisuks on:

NameVirtualHost *:443
SSLStrictSNIVHostCheck off

<VirtualHost *:443>
        ServerAdmin webmaster@localhost
        ServerName www.album.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.album.ee-ssl-error.log
   TransferLog  /var/log/apache2/www.album.ee-ssl-access.log

   SSLEngine on
   SSLCertificateFile /etc/apache2/www.album.ee.crt
   SSLCertificateKeyFile /etc/apache2/www.album.ee.key
   SSLOptions +StdEnvVars

 </VirtualHost>

<VirtualHost *:443>
        ServerAdmin webmaster@localhost
        ServerName photo.album.ee
        DocumentRoot /var/www/photo
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/photo>
                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/photo.error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog /var/log/apache2/photo.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/photo.album.ee-ssl-error.log
   TransferLog  /var/log/apache2/photo.album.ee-ssl-access.log

   SSLEngine on
   SSLCertificateFile /etc/apache2/photo.album.ee.crt
   SSLCertificateKeyFile /etc/apache2/photo.album.ee.key
   SSLOptions +StdEnvVars


 </VirtualHost>

<VirtualHost *:80>

       ServerAdmin webmaster@localhost
       ServerName www.album.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>        
</VirtualHost>

<VirtualHost *:80>

        ServerAdmin webmaster@localhost
        ServerName photo.album.ee
        DocumentRoot /var/www/photo
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/photo>
                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/photo.error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn                  

        CustomLog /var/log/apache2/photo.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>               

</VirtualHost>

NameVirtualHost *:443 - tähendab, et kõigil IP'del on virtual host päringud
SSLStrictSNIVHostCheck - kui off siis ühendus on lubatud mitte-SNI klientidelt ka, on - ei lubata. Uue browseri kasutajatel peab olema on. Kuna selles töös on kasutatud vana browseri versioon siis on off.

Restardime apache kontrollimiseks:

/etc/init.d/apache2 restart

Testimiseks käivitame järgmised käsud:

links www.album.ee
links photo.album.ee
links https://www.album.ee
links https://photo.album.ee

Kui tulevad õiged lehed ette ja erroreid ei viska, siis on kõik OK.

Teenuse start/stop/restart

Apache2

 /etc/init.d/apache2 {start | stop | restart}

Mysql-server

 /etc/init.d/mysql {start | stop | restart}

Varundamisjuhend

Varukoopiate tegemine

Failide kopeerimiseks sisestage käsk: cp -a [mida] [kuhu] Näiteks:

cp -a /var/www/www /home

Veebide sisu backup siit

/var/www/www 

Veebi photo.album backup siit

/var/www/photo
 

Apache2 konfiguratsiooni kausta backup siit

/etc/apache2

Apache2 log failide backup teha siit

/var/log/apache2

Taastejuhend

Taastamine

Failide taastamiseks minge kataloogi kus on varukoopia salvestatud ja sisestage käsk: cp -a [mida] [kuhu]

Näiteks:

cp -a /home/apache2 /etc

Veebi sisu andmed taasta kataloogi backupist

/var/www

photo.album andmed taasta kataloogi backupist

/var/www/photo

Veebiserveri upgrades tulnud tõrked taasta varasem konfiguratsioon kataloogi backupist

/etc/apache2

logifailid taasta kataloogi backupist

/var/log/apache2

Teenuse monitoorimise soovitused

Kui midagi ei tööta:

  • Kõigepealt tehke teenuse restart
/etc/init.d/apache2 restart

Kui mingi probleem on teenuse sees, siis ta viskab teade täpselt kus kohas see viga on.

  • Kontrollige kõik .conf ja .log failid, et süntaks oleks õige.
  • Kui üleval mainitud ei aita, siis proovige varukoopiate taastamine.
  • Abiinfo saamiseks võtke ühendust e-maili või telefoni teel

Lingid

Kuutõrvaja - Apache'i veebiserver - Siit saab abi
Ubuntu serevri upgrade 
SNI