Tag Archives: 13.10

Linux Palvelimena kotitehtävä #7 | Optimointia

Linux Palvelimena kotitehtävä #7 |

Seitsemännen kotitehtävän tehtävänanto on seuraavanlainen:

h7 optimointia. Lue koko tehtävänanto ja vinkit seuraavasta kommentista ennen kuin ryhdyt työhön. Kuormitustyökaluja saa käyttää ainoastaan omaan koneeseen.
Tee ja raportoi:
– Mittaa omalla koneellasi olevan WordPress-sivun ja samanlaisen staattisen sivun nopeuseroa ‘ab’ työkalulla.
– Asenna Varnish. Mittaa jonkin dynaamisen weppisivun (wordpress tms) suorituskyky ennen ja jälkeen asennuksen. Kuinka suuren hyödyn saat?
Tee ainakin kaksi seuraavista:
a) Muuta jotain Varnishin asetusta VCL-kielellä (esim iso-kuvat suoraan läpi – ei välimuistiin)
b) Analysoi ja nopeuta weppisivua YSlow -lisäkkeen avulla
c) Analysoi ja nopeuta weppisivua Firebug -lisäkkeen Net-välilehden avulla
d) Etsi jokin nopeuden analysoinnissa auttava palvelu wepistä ja käytä sitä
Vinkkejä:
Kuormitustyökaluja (esim ‘ab’) saa käyttää vain omiin koneisiin. Toisten koneiden tai verkkojen häiritseminen kuormitustyökaluilla tulkitaan helposti palvelunestohyökkäykseksi, joten olkaa huolellisia. Helpoin osoite kirjoittaa oikein on “localhost”.
Mittaaminen on optimoinnissa tärkeintä. Ilman mittausta optimointi on pelkkää woodoota ja taikauskoa. Kun mittaat weppipalvelimen suorituskykyä, katso, että palvelin on vastannut jokaiseen hakupyyntöön. Ei varmaankaan ole hyötyä, että palvelin pystyy palvelemaan 20 ziljoonaa virheilmoitusta sekunnissa (Failed requests).
Wepistä löytyy paljon eritasoisia ja -laatuisia ohjeita Apachen optimointiin ja Varnishin käyttöön.
https://eliimatt.wordpress.com/tag/suorituskyky/

Apache 2 performance boost with varnish & YSlow


https://encrypted.google.com/search?q=karvinen+varnish
Jossain edistyneessä ohjeessa automatisoidaan asennuksia Puppetilla, mutta sitä opetellaan vasta “Linuxin keskitetty hallinta” kurssilla, eikä tarvita tässä.
Wordpressin temppuilut:
– Jos uuden WordPress-version sisäänrakennettu välimuisti pienentää eroa etusivulla, tee uusi bloggaus ja mittaa suorituskyky tältä alasivulta.
– Jos uusi WordPress kieltää Cachen, ks
http://terokarvinen.com/2012/aikataulu-linux-palvelimena-ict4tn003-7-ict4tn003-kevaalla-2013#comment-19506

Tehtävä tehdään Virtualboxissa pyörivällä Xubuntu 13.10:lla jossa on jo asennettu LAMP-server ja WordPress.

Käynnistetään kone ja päivitetään pakettivarastot komennolla

$ sudo apt-get update

Kokeiltuani ab-komentoa, minua ystävällisesti kehoitettiin asentamaan se, näin siis teemme.

$ sudo apt-get install apache2-utils

Mitataan ab:lla wordpress-sivustoa.

$ ab -c 500 -n 1000 http://localhost/wordpress/

Kyseisellä kommenolla simuloidaan sitä, jos tulisi 500 HTTP-yhteydellä 1000 HTTP-pyyntöä.

This is ApacheBench, Version 2.3 <$Revision: 1430300 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking localhost (be patient)
apr_socket_recv: Connection reset by peer (104)
esa@xubVbox:/var/www$ ab -c 500 -n 1000 http://localhost/wordpress/
This is ApacheBench, Version 2.3 <$Revision: 1430300 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking localhost (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Completed 500 requests
Completed 600 requests
Completed 700 requests
Completed 800 requests
Completed 900 requests
Completed 1000 requests
Finished 1000 requests

Server Software: Apache/2.4.6
Server Hostname: localhost
Server Port: 80

Document Path: /wordpress/
Document Length: 8837 bytes

Concurrency Level: 500
Time taken for tests: 64.551 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Total transferred: 9096000 bytes
HTML transferred: 8837000 bytes
Requests per second: 15.49 [#/sec] (mean)
Time per request: 32275.418 [ms] (mean)
Time per request: 64.551 [ms] (mean, across all concurrent requests)
Transfer rate: 137.61 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 19 112.6 9 1000
Processing: 3658 18032 18873.2 9044 64534
Waiting: 3319 17695 18925.2 8653 64527
Total: 3669 18051 18870.5 9062 64546

Percentage of the requests served within a certain time (ms)
50% 9062
66% 9464
75% 12708
80% 34448
90% 64400
95% 64459
98% 64506
99% 64514
100% 64546 (longest request)

Keskimäärin 15 pyyntöä sekunnissa WordPressin kuormittamiseen.

Seuraavaksi kokeillaan samaa kuormitusta yksittäiseen postaukseen.

$ ab -c 500 -n 1000 http://localhost/wordpress/?p=4/

This is ApacheBench, Version 2.3 <$Revision: 1430300 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking localhost (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Completed 500 requests
Completed 600 requests
Completed 700 requests
Completed 800 requests
Completed 900 requests
Completed 1000 requests
Finished 1000 requests

Server Software: Apache/2.4.6
Server Hostname: localhost
Server Port: 80

Document Path: /wordpress/?p=4/
Document Length: 10617 bytes

Concurrency Level: 500
Time taken for tests: 56.493 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Total transferred: 10935000 bytes
HTML transferred: 10617000 bytes
Requests per second: 17.70 [#/sec] (mean)
Time per request: 28246.267 [ms] (mean)
Time per request: 56.493 [ms] (mean, across all concurrent requests)
Transfer rate: 189.03 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 34 163.8 9 1001
Processing: 3565 15696 14897.8 9523 56474
Waiting: 2743 14735 15003.6 8364 56235
Total: 3576 15731 14889.9 9568 56487

Percentage of the requests served within a certain time (ms)
50% 9568
66% 9951
75% 13878
80% 30767
90% 30870
95% 56442
98% 56469
99% 56481
100% 56487 (longest request)

Pyynnössä kesti todella kauan verrattuna ensimmäiseen. En tiedä minkä takia huomattavasti hitaammin tällä kertaa, vain noin 18 pyyntöä sekunnissa kun edellisessä oli yli kaksi tuhatta.

Kokeillaan vielä kuormitusta johonkin yksinkertaiseen staattiseen sivuun.

$ ab -c 500 -n 1000 http://localhost/~esa/index.php

This is ApacheBench, Version 2.3 <$Revision: 1430300 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking localhost (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Completed 500 requests
Completed 600 requests
Completed 700 requests
Completed 800 requests
Completed 900 requests
Completed 1000 requests
Finished 1000 requests

Server Software: Apache/2.4.6
Server Hostname: localhost
Server Port: 80

Document Path: /~esa/index.php
Document Length: 74478 bytes

Concurrency Level: 500
Time taken for tests: 3.427 seconds
Complete requests: 1000
Failed requests: 103
(Connect: 0, Receive: 0, Length: 103, Exceptions: 0)
Write errors: 0
Total transferred: 74667882 bytes
HTML transferred: 74477882 bytes
Requests per second: 291.78 [#/sec] (mean)
Time per request: 1713.600 [ms] (mean)
Time per request: 3.427 [ms] (mean, across all concurrent requests)
Transfer rate: 21276.22 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 5 5.5 0 14
Processing: 7 699 932.2 236 3413
Waiting: 3 639 947.2 169 3413
Total: 17 704 935.3 237 3424

Percentage of the requests served within a certain time (ms)
50% 237
66% 311
75% 471
80% 1731
90% 1821
95% 3404
98% 3421
99% 3422
100% 3424 (longest request)

Noin 300 pyyntöä sekunnissa, paljon ripeämmin kuin yksittäisen blogipostauksen kuormitukseen.

Varnishin asentaminen

Asennus onnistuu seuraavanlaisesti

$ sudo apt-get install varnish -y

Koska itsellä ei ole harmainta aavistusta, mikä on Varnish, täytyy jostain katsoa tarkemmin mitä kaikkea pitää tehdä jotta saisi sen toimimaan.

$ sudoedit /etc/apache2/ports.conf

Lisätään Listen 80 rivin perään 80.

Listen 8080

$ sudoedit /etc/default/varnish

Muokattiin seuraavaa riviä

DAEMON_OPTS=”-a :6081 \

Ja uusi rivi näyttää tältä.

DAEMON_OPTS=”-a :80 \

Käynnistetään Apache ja Varnish uudestaan

$ sudo service apache2 restart
$ sudo service varnish restart

Kokeillaan nyt samoja kuormitustestejä kuin ennen Varnishin asennusta.

$ ab -c 500 -n 1000 http://localhost/wordpress/

This is ApacheBench, Version 2.3 <$Revision: 1430300 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking localhost (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Completed 500 requests
Completed 600 requests
Completed 700 requests
Completed 800 requests
Completed 900 requests
Completed 1000 requests
Finished 1000 requests

Server Software: Apache/2.4.6
Server Hostname: localhost
Server Port: 80

Document Path: /wordpress/
Document Length: 8837 bytes

Concurrency Level: 500
Time taken for tests: 0.261 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Total transferred: 9155989 bytes
HTML transferred: 8837000 bytes
Requests per second: 3831.96 [#/sec] (mean)
Time per request: 130.482 [ms] (mean)
Time per request: 0.261 [ms] (mean, across all concurrent requests)
Transfer rate: 34263.08 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 10 10.2 17 24
Processing: 31 98 38.4 91 237
Waiting: 29 94 38.0 85 233
Total: 32 108 43.5 92 253

Percentage of the requests served within a certain time (ms)
50% 92
66% 113
75% 141
80% 148
90% 182
95% 193
98% 200
99% 202
100% 253 (longest request)

Kuormitus kesti 0,261 sekuntia, kun taas ennen Varnishia testi kesti yli minuutin. Kokeillaan vielä yksittäiseen WordPress postaukseen ja staattiseen sivustoon tehdä kuormitustestit.

Yksittäiseen blogipostaukseen kuormitustestaus.

$ ab -c 500 -n 1000 http://localhost/wordpress/?p=4/

This is ApacheBench, Version 2.3 <$Revision: 1430300 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking localhost (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Completed 500 requests
Completed 600 requests
Completed 700 requests
Completed 800 requests
Completed 900 requests
Completed 1000 requests
Finished 1000 requests

Server Software: Apache/2.4.6
Server Hostname: localhost
Server Port: 80

Document Path: /wordpress/?p=4/
Document Length: 10617 bytes

Concurrency Level: 500
Time taken for tests: 0.367 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Total transferred: 10994989 bytes
HTML transferred: 10617000 bytes
Requests per second: 2723.12 [#/sec] (mean)
Time per request: 183.613 [ms] (mean)
Time per request: 0.367 [ms] (mean, across all concurrent requests)
Transfer rate: 29238.93 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 8 8.5 12 22
Processing: 10 67 40.3 69 264
Waiting: 8 63 39.5 64 264
Total: 10 75 46.4 78 264

Percentage of the requests served within a certain time (ms)
50% 78
66% 99
75% 116
80% 125
90% 135
95% 140
98% 142
99% 152
100% 264 (longest request)

Staattisen sivuston kuormitustestaus

$ ab -c 500 -n 1000 http://localhost/~esa/index.php

This is ApacheBench, Version 2.3 <$Revision: 1430300 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking localhost (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Completed 500 requests
Completed 600 requests
Completed 700 requests
Completed 800 requests
Completed 900 requests
Completed 1000 requests
Finished 1000 requests

Server Software: Apache/2.4.6
Server Hostname: localhost
Server Port: 80

Document Path: /~esa/index.php
Document Length: 75163 bytes

Concurrency Level: 500
Time taken for tests: 0.516 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Total transferred: 75412989 bytes
HTML transferred: 75163000 bytes
Requests per second: 1938.32 [#/sec] (mean)
Time per request: 257.956 [ms] (mean)
Time per request: 0.516 [ms] (mean, across all concurrent requests)
Transfer rate: 142748.18 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 9 9.3 14 24
Processing: 5 195 79.3 232 481
Waiting: 5 161 73.4 197 321
Total: 27 205 71.8 234 503

Percentage of the requests served within a certain time (ms)
50% 234
66% 247
75% 254
80% 258
90% 269
95% 276
98% 289
99% 293
100% 503 (longest request)

Hyvin kummallista todeta, että staattisen sivun kuormittamisessa meni kaikista eniten aikaa.

Firebug

Lisätään Firebug-lisäosa Firefoxiin
Tools → Add-ons
kirjoitetaan hakukenttään Firebug ja sen pitäisi listautua ensimmäisenä, asennetaan.

Klikataan Firebugia ja vaihdetaan asetuksia niin, että käyttöliittymä on erillisessä ikkunassa. Firebug UI Location → Detached

Kun saadaan Firebugin käyttöliittymä auki, mennään Net välilehdellä ja painetaan Enable.

Mennään osoitteeseen localhost/wordpress ja katsotaan mitä tietoa Firebug on saanut kerätttyä.

firebug_1
Kuten jotain kuvasta voi päätellä, on verkkosivun hakemiseen kulunut 35 millisekuntia ja muihin siihen liittyviin liitännäisiin muutamia millisekunteja.
Jos sivustolla olisi ollut jotain kuvatiedostoja, olisi varmasti niiden latausaika ollut kaikista suurin.

YSlow

YSlow löytyy samasta paikasta kun Firebug, eli add-ons kohdasta. Kirjoitetaan siihen yslow ja asennetaan tuorein versio joka näytti olevan 3.1.8. Asennus vaatii selaimen uudelleen käynnistämisen.

YSlow löytyy Firebug ohjelmasta Yslow välilehdeltä. Ajetaan testi kun WordPress sivu on auki.

yslow_1

Yhteisarvosanaksi saadaan 90 / 100 ja kaikki paitsi kaksi kohtaa on saanut kouluarvosanan A.

Grade F on Use a Content Delivery Network (CDN)

There are 6 static components that are not on CDN.

You can specify CDN hostnames in your preferences. See YSlow FAQ for details.

fonts.googleapis.com: 1 component, 1.7K (0.4K GZip)

Herjaa kuudesta staattisesta komponentista jota ei löydy CDN:stä.

Grade F on Add Expires headers

There are 7 static components without a far-future expiration date.

Web pages are becoming increasingly complex with more scripts, style sheets, images, and Flash on them. A first-time visit to a page may require several HTTP requests to load all the components. By using Expires headers these components become cacheable, which avoids unnecessary HTTP requests on subsequent page views. Expires headers are most often associated with images, but they can and should be used on all page components including scripts, style sheets, and Flash.

Lähteet:

https://eliimatt.wordpress.com/tag/suorituskyky/
http://www.yolinux.com/TUTORIALS/WebServerBenchmarking.html
http://anttiwirman.com/2014/03/17/linux-palvelimena-ict4tn003-11-ja-12-kevaalla-2014-kotitehtava-7/

Kuormittaminen ja Varnishin asentaminen sekä suorituskyvyn mittaus

Apache 2 performance boost with varnish & YSlow

Linux Palvelimena kotitehtävä #6 | WordPress & Joomla

Moi!

Linux Palvelimena kurssin kuudennen kotitehtävän tehtävänanto on seuraavanlainen:

h6:
– Asenna WordPress (alkaen tilanteesta, jossa LAMP on asennettu)
– Kirjoita esimerkkisisältöä
Tee ja raportoi neljä seuraavista:
– Ota järkevät URLit (permalinks) käyttöön
– Vaihda teema
– Varmuuskopioi sisältö
– Palauta varmuuskopioitu sisältö puhtaaseen WordPress-asennukseen
– Tee WordPressiin oma teema
– Asenna WordPressiin plugin (esim Dofollow)
– Asenna Drupal ja kokeile sitä
– Asenna Joomla ja kokeile sitä
– Tee WordPressiin oma plugin
– Lisää kuvia WordPressiin (ja laita tämä toimimaan)
– Laita WordPress nimipohjaiseen virtuaalipalvelimeen (http://thello.foo tms)
– Jos sinulla on oma virtuaalipalvelin, tee sille http://dot.tk nimi (kokeile jollain vähäarvoisella nimellä
– Vaikea: Tee esimerkkisivu Ruby on Rails (tuotantotyyppinen, ei pelkkä yhden käyttäjän testipalvelin)
– Vaikea: Tee esimerkkisivu Python Django:lla (tuotantotyyppinen, ei pelkkä yhden käyttäjän testipalvelin)

Harjoitus tehdään taas Xubuntu 13.10:llä jota ajetaan VirtualBoxin kautta.

Dokumentointi alkaa poikkeuksellisesti vasta LAMP:n asennuksen jälkeen. (apt-get install lamp-server^)

Aloitetaan lataamalla viimeisin versio WordPressistä ja purkamalla tarballi.

$ wget http://wordpress.org/latest.tar.gz

$ tar -xzvf latest.tar.gz

Luodaan WordPressille tietokanta ja käyttäjä.

Kirjaudutaan rootilla tietokantaan.

$ mysql -u root -p

mysql> CREATE DATABASE wordpress;
Query OK, 1 row affected (0.00 sec)

mysql> CREATE USER esa@localhost;
Query OK, 0 rows affected (0.00 sec)

mysql> SET PASSWORD FOR esa@localhost= PASSWORD(“xxxxx*”);
Query OK, 0 rows affected (0.00 sec)
mysql> GRANT ALL PRIVILEGES ON wordpress.* TO esa@localhost IDENTIFIED BY ‘xxxxx*’;
Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

mysql> exit
Bye

* (xxxxx = laitetaan siis tähän kohtaan ystävällisesti jokin vahva salasana)

Määritellään WordPress konfiguraatiot.

$ cp ~/wordpress/wp-config-sample.php ~/wordpress/wp-config.php
$ sudo nano ~/wordpress/wp-config.php

Muokataan seuraavia rivejä ja tallennetaan tiedosto.

define(‘DB_NAME’, ‘wordpress’);

/** MySQL database username */
define(‘DB_USER’, ‘esa’);

/** MySQL database password */
define(‘DB_PASSWORD’, ‘xxxxx);

Kopioidaan wordpress hakemisto /var/www/ hakemistoon.

$ sudo cp -R wordpress/ /var/www/

$ cd /var/www/

Annetaan apache-käyttäjälle omistajuus ko. Hakemistoon.

$ sudo chown esa:www-data /var/www/ -R
$ sudo chmod g+w /var/www/ -R

Viimeistellään itse WordPressin asennus. Selaimella osoitteeseen localhost/wordpress

wp_install_gui

Ta-daa, WordPress toimii.

Permalinkkien käyttöönotto.

Vaihdetaan permalinkit asetuksista. Otetaan vaihtoehto “post name”, eli esimerkki url olisi http://localhost/wordpress/sample-post/

Tallennetaan vaihtoehto ja luodaan esimerkkipostaus.

Testipostaus #1 on tehty ja jostain syystä tuo äskeinen permalink muutos ei toimi.

Katsotaan josko ystävämme Google auttaisi meitä tässä asiassa..

.. potentiaalinen ohje löytyy, testataan toimiiko. (http://wordpress.org/support/topic/how-to-fix-permalink-postname-404-not-found)

Mennään hakemistoon mihin asensimme WordPressin ja tehdään ohjeiden mukaisesti .htaccess tiedosto ja vaihetaan oikeuksia.

$ cd /var/www/wordpress/
$ sudo touch .htaccess
$ sudo chmod 666 .htaccess
$ sudo chown www-data:www-data .htaccess

Tässä vaiheessa ohjetta luki, että pitää käydä vaihtamassa permalink takaisin oletukseen ja takaisin haluttuun.

Katsotaan .htaccess tiedoston sisältöä

$ less .htaccess

# BEGIN WordPress

RewriteEngine On
RewriteBase /wordpress/
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]

# END WordPress

$ sudo a2enmod rewrite
$ sudo service apache2 restart

Kuitenkaan tämänkään jälkeen permalinkit eivät toimi.. Google paljastaa, että AllowOwerride hakemistossa /var/www on poissa käytöstä ja se pitäisi sallia.

$ cd /etc/apache2/

$ sudoedit apache2.conf

Options Indexes FollowSymLinks
AllowOverride None
Require all granted

Muutetaan → AllowOverride All

Käynnistetään Apache uudestaan

$ sudo service apache2 restart

Katsotaan WordPressistä, jos nyt toimisi permalinkit.

wp_permlink_working

Toimii!

Teeman vaihtaminen onnistuu WordPressin hallintapaneelista. Appearance – Themes. Oletuksena löytyy kolme teemaa ja valitsemme niistä Twenty Thirteen nimisen simppelisti painamalla “Activate” kyseessä olevan teeman kohdalta.

theme_changed_wp

DoFollow-pluginin asennus (https://kimmo.suominen.com/sw/dofollow/)

DoFollow niminen plugin saadaan asennettua seuraavanlaisesti.

$ cd /var/www/wordpress/wp-content/plugins/
$ wget https://kimmo.suominen.com/sw/dofollow/dofollow.php

WordPress hallintapaneelista kohtaan Plugins ja DoFollow näkyy listassa, painetaan Activate ja Plugin on onnistuneesti käytössä.

Joomlan asennus

Luodaan tilapäinen hakemisto johon ladataan Joomlan tarballi.

$ mkdir temp
$ cd temp/

$ wget http://joomlacode.org/gf/download/frsrelease/17410/76021/Joomla_2.5.7-Stable-Full_Package.tar.gz

Puretaan se /var/www hakemistoon

$ sudo tar zxvf Joomla_2.5.7-Stable-Full_Package.tar.gz -C /var/www

Luodaan configuration.php tiedosto ja muutetaan tilapäisesti oikeuksia.

$ sudo touch /var/www/configuration.php
$ sudo chmod 777 /var/www/configuration.php

Luodaan tietokanta nimeltä joomla.

$ mysql -u root -p

CREATE DATABASE joomla;
Query OK, 1 row affected (0.00 sec)
mysql> CREATE USER juser@localhost;
Query OK, 0 rows affected (0.00 sec)

mysql> SET PASSWORD FOR juser@localhost= PASSWORD(“xxxxx”);
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON joomla.* TO juser@localhost IDENTIFIED BY ‘xxxxx’;
Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

exit

Tämän jälkeen localhost selaimeen ja aukeaa Joomla. Määritysten jälkeen sanotaan, että pitää deletoida installation kansio. Sen poistin /var/www/ hakemistosta.

$ sudo rm -rf /var/www/installation

Ja muutin oikeudet takaisin tuohon configuration.php tiedostoon.

$ sudo chmod 755 /var/www/configuration.php

Kuitenkaan, jostain syystä en pääse kirjautumaan minun joomla sivulleni vaikka käyttäjän olen luonut.

joomla_wp

WordPressin asentaminen omalle VPS:lle

Koska edellisen kotitehtävän takia hommasin oman VPS:n, päätin myös ostaa halvalla domainin ja asentaa WordPressin myös sinne. Asennus onnistui juurikin noilla ohjeilla, paitsi AllowOverride oli toisessa paikkaa. (/etc/apache2/sites-available/default)

Virtuaalipalvelimella myös pyörii irssi jota käytän luonnollisesti siis irkkaamiseen.

Lähteet:

https://codex.wordpress.org/Installing_WordPress#Detailed_Instructions
https://www.digitalocean.com/community/articles/how-to-install-wordpress-on-ubuntu-12-04
http://stackoverflow.com/questions/12410921/permalinks-in-wordpress-page-not-found
http://wordpress.org/support/topic/how-to-fix-permalink-postname-404-not-found
https://kimmo.suominen.com/sw/dofollow/
https://www.digitalocean.com/community/articles/how-to-install-joomla-on-a-virtual-server-running-ubuntu-12-04
https://help.ubuntu.com/community/ApacheMySQLPHP
https://www.digitalocean.com/community/questions/wordpress-permalinks-broken
https://www.digitalocean.com/community/questions/ubuntu-12-04-lamp-wordpress-htaccess-errors

Linux Palvelimena kotitehtävä #5 | Apache name based virtual hosting & VPS

Moi!

Tällä kertaa Linux Palvelimena kurssin viidennen kotitehtävän tehtävänanto on seuraavanlainen

h5. Tee nimipohjainen virtuaalipalvelin Apachelle (name based virtual hosting). Muista laittaa sekä http://www.example.com että example.com. Voit simuloida asiakkaan nimipalvelua muuttamalla /etc/hosts -tiedostoa.
Kokeile virtuaalipalvelinta (VPS). Voit vuokrata palvelimen esimerkiksi Linodelta, Amazonilta, DigitalOceanilta tai monista muista paikoista. Linodella ja Amazonilla saattaa olla myös ilmainen kokeilupaketti. Vaihtoehto: jos et jostain syystä halua vuokrata virtuaalipalvelinta, voit kokeilla tehdä oman vagrantilla.
http://www.linode.com/?r=16774ec53118157d3f5d6e9be9147875cdb167bb(associate-linkki, ilman: http://www.linode.com)
http://aws.amazon.com/vpc/
https://www.digitalocean.com/
h5. Vapaaehtoisia bonuksia
– Rekisteröi koneellesi nimi. Voit kokeilla jotain ilmaista palvelua, esim. http://www.dot.tk (en ole testannut tätä, kokeile jollain vähäarvoisella esimerkkinimellä).

Keskitytään aluksi tuohon nimipohjaisen virtuaalipalvelimen tekemiseen Apachelle.

Kuten viime kerroilla, myöskin tällä kertaa Xubuntun versio 13.10 pyörii VirtualBoxissa huikealla 2048 megatavun keskusmuistilla.

Aloitetaan tehtävän tekeminen päivittämällä pakettivaraston tarjonta taas uusimpaan kommennolla

$ sudo apt-get update

Asennetaan Apache ja sallitaan käyttäjien kotihakemistot.

$ sudo apt-get install apache2 -y

Tarkastetaan toimiiko pelkkä Apache menemällä selaimella http://localhost. It works! Elikkäs toimii.

$ sudo a2enmod userdir
Enabling module userdir.
To activate the new configuration, you need to run:
service apache2 restart
$ sudo service apache2 restart
* Restarting web server apache2

Katsotaan toimiiko käyttäjän kotihakemisto. Selaimeen joko koneen ip-osoite/~user tai sitten localhost/~user

$ firefox localhost/~esa

Saadaan selaimeen teksti virheilmoitus

Forbidden
You don’t have permission to access /~esa on this server.

Tietenkään kotihakemistot eivät toimi koska sellaisia ei ole luotu. Luodaan kansioon myös esimerkki html5-sivusto (http://terokarvinen.com/2012/short-html5-page)

$ cd
$ mkdir public_html
$ nano public_html/index.html

Kun on sisältöä html-tiedostossa

$ firefox localhost/~esa

apache_userdir_works

Hosts-tiedoston muokkaaminen.
Laitetaan tiedostoon /etc/hosts kaksi osoitetta, jotka viittaavat tähän tietokoneeseen.

$ sudoedit /etc/hosts

10.0.2.* eskola.local
10.0.2.* http://www.eskola.local

Kokeillaan selaimella kirjoittaa eskola.local ja tekstiksi tulee “It Works!”.

Luodaan eskola.local hakemisto public_html kansion alle.

$ mkdir public_html/eskola.local

Luodaan esimerkki html-sivu.

$ nano index.html

Tehdään ei-ehkä validoinnin selviävä tiedosto pikaisesti.

<!doctype html>

Is this working correctly?

 

Luodaan eskola.local.conf niminen tiedosto /etc/apache2/sites-available/ hakemistoon.

$ cd /etc/apache2/sites-available
$ sudo nano eskola.local.conf

Laitetaan sisällöksi

ServerName http://www.eskola.local
ServerAlias eskola.local
DocumentRoot /home/esa/public_html/eskola.local

Otetaan käyttöön sivu

$ sudo a2ensite eskola.local.conf
Enabling site eskola.local.
To activate the new configuration, you need to run:
service apache2 reload
$ sudo service apache2 reload
* Reloading web server apache2 *

$ firefox eskola.local

apache_virtual

Saadaan siis juuri luodun html sivuston sisältö ruutuun, eikä lävähdä apachen oletusilmoitus “It works”.

Tehtävässä oli hieman vaikeuksia etsiä tietoa mitä kaikkia tiedostoja pitäisi muokata ja luoda.
Onneksi kuitenkin suuntaa antavia neuvoja sai nohevilta HH-opiskelijoilta jotka tätä kurssia myös käyvät!

VPS:n hankkiminen

Opiskelijabudjetin takia en “raaskinut” (halunnut) hommata Linodelta Virtuaalipalvelinta, mutta tunnilla huhupuheen mukaan alle viidellä dollarilla, eli alle neljällä eurolla saisi kuukaudeksi käyttöön Digitaloceanista palvelimen.

Loin siis tunnukset DigitalOceaniin ja uhrasin 3,8€ jotta saan kuukauden leikkiä Virtuaalipalvelimella root-oikeuksien kera.

Sähköpostiin tuli palvelimen julkinen ip sekä rootin salasana.
Otin SSH-yhteyden palvelimeen ja vaihdoin rootin salasanan sekä loin käyttäjätunnuksen jotta ei tarvitse aina rootin oikeuksilla tehdä asioita.

Asensin palvelimelleni apachen ja sallin käyttäjähakemistot. Pitää vielä lähitulevaisuudessa kokeilla asentaa wordpress paikallisesti palvelimelle ja katsoa miten se toimii.

Rekisteröityminen DigitalOceaniin, palvelimen maksaminen ja pystyyn saaminen kesti vain muutaman minuutin. Plussaa oli myös se, että maksaminen onnistui PayPalin avulla.

Lähteet:

http://askubuntu.com/questions/265300/how-do-i-setup-name-based-virtual-hosts-using-ubuntu-12-04
http://kimstenberg.wordpress.com/
http://stackoverflow.com/questions/19518907/virtual-host-on-ubuntu-13-10-and-apache-2-4-6
http://terokarvinen.com/2012/short-html5-page
https://httpd.apache.org/docs/2.2/vhosts/name-based.html
https://www.digitalocean.com/