Veebiserver labor 2
Autorid
- Niina Stsetnikova
- Viktoria Mulina
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 Ubuntu server 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 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
- 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
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
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.firma.ee links sales.firma.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}