Skip to content

Commit

Permalink
Ensimmäinen tuonti, Kapsi verkkosivut svn r3226
Browse files Browse the repository at this point in the history
  • Loading branch information
joneskoo committed Aug 12, 2011
0 parents commit 5bce4dc
Show file tree
Hide file tree
Showing 58 changed files with 2,949 additions and 0 deletions.
3 changes: 3 additions & 0 deletions .gitignore
@@ -0,0 +1,3 @@
output
.DS_Store
Thumbs.db
13 changes: 13 additions & 0 deletions Makefile
@@ -0,0 +1,13 @@
SRCS = $(wildcard content/ohjeet/*.in)
HTMLS = $(patsubst content/ohjeet/%.in,output/ohjeet/%.html,$(SRCS))

output/ohjeet/%.html: content/ohjeet/%.in template-head.html template-tail.html
mkdir -p output/ohjeet
cat template-head.html $< template-tail.html > $@

all: html

html: $(HTMLS)

clean:
rm -f $(HTMLS)
71 changes: 71 additions & 0 deletions content/ohjeet/backup.in
@@ -0,0 +1,71 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<div>


<p>
Lakka- ja Hilla-palvelimien kotihakemistoista varmuuskopioidaan muuttuneet tiedot joka yö, ja
sunnuntaisin kaikki tiedot. Varmuuskopiot säilytetään erillisellä
palvelimella kahdelta edelliseltä sunnuntailta. Lakka-palvelimella vahingossa poistetut tiedot
voi palauttaa myös itse <a href="snapshots.html">tilannevedoksista</a>.
</p>

<p>
Omien kopioiden ottaminen on silti suositeltavaa, jos epäilee ettei huomaisi
ongelmaa tarpeeksi nopeasti tai tiedot ovat erityisen tärkeitä.
</p>

<h2>Hakemiston varmuuskopioiminen</h2>

<pre>
tar -czvf kopio.tar.gz hakemisto
</pre>

<p>
Tuloksena syntyy nykyiseen hakemistoon tiedosto kopio.tar.gz,
joka sisältää kaikki komennossa määritellyn hakemiston tiedostot.
Kotihakemiston ollessa kyseessä komento tekee varmuuskopion kaikista
tiedostoistasi. Tämän jälkeen tärkeät tiedostot siirtyvät helposti
talteen kotikoneelle esimerkiksi <a href="filezilla.html">filezillalla</a>.
</p>

<h2>Hakemiston palauttaminen</h2>

<pre>
tar -xzvf kopio.tar.gz
</pre>

<p>
Komento purkaa tiedostot nykyiseen kansioon.
</p>

<p>
<b>Vinkki:</b> Jos säilytät suuria varmuuskopiotiedostoja Lakka-palvelimella, voit käyttää /work levyä jota ei varmuuskopioida, ja jossa on enemmän levytilaa käyttäjälle kuin kotihakemistossa.
</p>

<h2>MySQL-kannan varmuuskopiointi</h2>

Kotihakemiston varmuuskopioinnin lisäksi myös mysql-kanta on kopioitava erikseen.

<pre>
mysqldump -p --add-drop-table tietokanta | gzip &gt; varmuuskopio.sql.gz
</pre>

<p>Komento varmuuskopioi kaikki kannan <i>tietokanta</i> tiedot ja tallentaa ne pakattuun tiedostoon varmuuskopio.sql.gz. Kapsilla <i>tietokanta</i> on yleensä sama kuin käyttäjätunnuksesi. Komento kysyy MySQL-tietokannan salasanan, joka ei ole sama kuin shell-salasanasi (tietokannan salasanan olet saanut tietokannan pyytämisen yhdeydessä). Valitsin --add-drop-table lisää tiedostoon komennot, jotka poistavat palautettaessa mahdollisesti kantaan jääneet tiedot.
</p>

<p>
Kun varmuuskopiointi on valmis, voit joko jättää tiedoston palvelimelle tai kopioida sen esimerkiksi
<a href="filezilla.html">filezillalla</a> omalle koneellesi.
</p>

<h2>MySQL-kannan varmuuskopion palautus</h2>

<pre>
cat varmuuskopio.sql.gz | gunzip | mysql -psalasana tietokanta
</pre>

<p>
Komennon parametrit ovat samat kuin varmuuskopioinnissa, järjestys on vain eri. Palautus korvaa kannassa jo olevat tiedot, eli jos palautat vanhaa kopiota, voi olla järkevää ottaa ensin kopio uudesta kannasta varmuuden vuoksi.
</p>

</div>
58 changes: 58 additions & 0 deletions content/ohjeet/cgi-php.in
@@ -0,0 +1,58 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<div>
<p>Tämä ohje käsittelee PHP:n ajamista CGI-ohjelmana. Aiemmin ohje oli olennainen PHP:n ajamisessa ilman safemodea, mutta nykyään vastaava asetus on jo valmiiksi käytössä. Ohjetta voi kuitenkin käyttää tarvittaessa <a href="phpini.html">asetusten</a> muuttamiseen.</p>

<p>
Asetus vaikuttaa rekursiivisesti kaikkiin hakemiston ja sen alihakemistojen tiedostoihin. Yleensä se on paras
tehdä ohjelman juurikansioon.
</p>

<h2>Luodaan php.fcgi</h2>

<p>
Luodaan haluttuun hakemistoon tiedosto <em>php.fcgi</em> . Tiedoston lopussa on oltava vähintään yksi rivinvaihto, jonka monet editorit luovat automaattisestikin.
</p>

<pre>#!/usr/bin/php5-cgi

</pre>

<p>Skriptille annetaan käyttöoikeus 700:</p>

<pre>chmod 700 php.fcgi</pre>

<h2>Luodaan .htaccess</h2>

<p>
Luodaan <em>.htaccess</em> -tiedosto samaan hakemistoon. Jos tiedosto on jo olemassa,
seuraavat rivit lisätään alkuun.
</p>

<pre>
RemoveHandler .php
AddType application/cgi-php php
Action application/cgi-php <em>/~käyttäjä/polku/php.fcgi</em>
</pre>

<p>
Polku <em>/~käyttäjä/polku/php.fcgi</em> muutetaan <em>php.fcgi</em>
tiedoston oikeaksi osoitteeksi. Polun alku on URL-osoitteessa verkkotunnuksen jälkeinen osa. Esimerkiksi:
</p>

<pre>
http://kapsi.fi/~käyttäjä/polku/php.fcgi -&gt; /~käyttäjä/polku/php.fcgi
http://tunnus.kapsi.fi/polku/php.fcgi -&gt; /polku/php.fcgi
</pre>

<h2>Mahdolliset ongelmatilanteet</h2>

<p>
Windows-käyttäjien on siirrettävä tiedostot ascii-tilassa tai luotava ne palvelimella <a href="ssh.html">ssh-yhteyden</a> kautta, jotta rivinvaihdoista tulee oikeanlaiset. Useimpien SFTP-ohjelmien automaattitunnistus ei osaa käsitellä .htaccess-tiedostoa, koska sillä ei ole päätettä.
</p>

<p>
Ongelmat tämän ohjeen käytössä johtuvat usein <a href="kayttooikeudet.html">vääristä käyttöoikeuksista</a>.
Muut yleiset virheet ja ohjeita lisäavun pyytämiseen on annettu <a href="cgi.html">perinteisen cgi-ohjelman ohjeessa</a>.
</p>

</div>
76 changes: 76 additions & 0 deletions content/ohjeet/cgi.in
@@ -0,0 +1,76 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<div>


<p>
CGI on www-palvelimen laajennos, jonka kautta sivut voidaan luoda suorittamalla erillinen skripti tai muu ohjelma. Kapsin palvelimilla CGI-ohjelmat toimivat päätteellä .cgi. Lisäksi käytettävissä on FCGI .fcgi-päätteellä nopeuttamaan sitä tukevien ohjelmien toimintaa.
</p>

<p>Yksinkertainen CGI:nä ajettavaksi tarkoitettu PHP-ohjelma:</p>

<pre>
#!/usr/bin/php5-cgi
&lt;?php
echo "Hello World!";
?&gt;
</pre>

<p>
Tavallisen CGI-ohjelman käyttäminen ei vaadi kuin käyttöoikeuksien 700 asettamisen skriptille:
</p>

<pre>
chmod 700 skripti.cgi
</pre>

<p>
Ensimmäisellä rivillä määritellään käytettävä tulkki. Yleisimpien kielien tulkit Kapsin palvelimella:
</p>
<ul>
<li>PHP, versio 5 - /usr/bin/php5-cgi</li>
<li>Python - /usr/bin/python2.5</li>
<li>Perl - /usr/bin/perl</li>
</ul>


<h2>500 Internal Server Error</h2>
<p>
Virhe &quot;500 Internal Server Error&quot; voi johtua useista syistä. Virheestä on lisää tietoa palvelimen
logeissa, joista voi pyytää otteen helpdeskiltä tai ylläpidolta. Ensiksi kannattaa kuitenkin tarkistaa
seuraavat seikat:
</p>

<ul>
<li><a href="kayttooikeudet.html">Käyttöoikeudet</a> - sekä skripti itse että puussa ylemmät hakemistot</li>
<li>Tiedostopääte .cgi, ellei .htaccess-tiedostossa ole määritetty muuta</li>
<li>CGI-ohjelma ei voi olla symbolisesti linkitetty</li>
<li>Rivinvaihtojen on oltava UNIX-muotoa, lisää tietoa alempana</li>
</ul>

<p>
Tekstitiedostot täytyy siirtää käyttäen tiedonsiirto-ohjelman tekstimuoto-toimintoa (ascii) tai varmistaa
flip-komennolla että niiden sisältämät rivinvaihdot ovat UNIX-muotoisia:
</p>

<pre>
flip -u tiedosto.cgi
</pre>

<h2>Avun pyytäminen helpdeskiltä</h2>

<p>
CGI-ohjelman tuottaessa virheen &quot;500 Internal Server Error&quot;, on ongelmasta
lisää tietoa palvelimen logissa. Elleivät ylempänä olevat vinkit auta, helpdesk voi
tarkastaa virheen syyn logeista. Myös muiden virheiden yhteydessä voi pyytää apua.
</p>

<p>
Lähetä kysymyksesi helpdeskille <a href="https://tuki.kapsi.fi">sähköpostilla</a>.
Jotta ongelma selviäisi nopeasti, mainitse ainakin seuraavat asiat:
</p>
<ul>
<li>Sivun osoite</li>
<li>Kellonaika ja päivämäärä virheen &quot;500 Internal Server Error&quot; yhteydessä</li>
</ul>

</div>
77 changes: 77 additions & 0 deletions content/ohjeet/cpan.in
@@ -0,0 +1,77 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<div>
<p><a href="http://www.cpan.org/">CPAN</a> on kokoelma Perl-ohjelmointikielen
kirjastoja, joita pystyy automaattisesti asentamaan cpan-ohjelman avulla.
Kapsilla käyttäjä voi asentaa nämä kirjastot kotihakemistoonsa tämän ohjeen
mukaisesti.</p>

<h2>Perlin hakupolun asettaminen</h2>
<p>Perlille täytyy aluksi kertoa, mistä se etsii itse asennettuja moduuleita.
Sen voi tehdä lisäämällä <em>~/.bashrc</em>:hen yhden rivin, ja ajamalla vastaavan
komennon itse:</p>
<pre>
user@host:~$ echo 'export PERL5LIB=~/CPAN/lib/perl5' >> ~/.bashrc
user@host:~$ export PERL5LIB=~/CPAN/lib/perl5
</pre>

<p>Tämä asetus vaikuttaa vain uusiin käynnistettyihin ohjelmiin.</p>
<!--Jos asennat CPAN-pakettia irssin skriptiä varten, saat asetuksen käyttöön
irssissä ilman uudelleenkäynnistystä seuraavasti:</p>
<pre>
/set perl_use_lib
[perl]
perl_use_lib = /usr/lib/perl/5.10 <em># Tarkista nykyinen arvo</em>

/set perl_use_lib /usr/lib/perl/5.10:~/CPAN/lib/perl5 <em># Ja lisää oma polku sen perään</em>
</pre>-->

<h2>CPAN:in käyttöönotto</h2>
<p>Kun <code>PERL5LIB</code>-muuttuja on asetettu, voit käynnistää
CPAN:in päätteen komennolla <code>cpan</code>:</p>
<pre>
user@host:~$ cpan
...
Would you like me to configure as much as possible automatically? [yes]
...
cpan[1]>
</pre>

<p>Ensimmäisellä käyttökerralla CPAN kysyy joitakin asetuksia. Oletusasetukset
saa käyttöön painamalla enteriä näihin. Tämän jälkeen täytyy muuttaa vielä
paria asetusta kotihakemistoon asentamista varten. Asetuskomennot
alkavat <code>o</code>-kirjaimella, "<code>cpan[1]></code>" on näytöllä
valmiiksi oleva osa:</p>
<pre>
cpan[1]> o conf makepl_arg INSTALL_BASE=~/CPAN
cpan[2]> o conf prerequisites_policy follow
cpan[3]> o conf commit
commit: wrote '/home/users/user/.cpan/CPAN/MyConfig.pm'
</pre>
<p>Ensimmäisellä komennolla asetetaan hakemisto, johon Perl-moduulit asennetaan.
Toinen komento vähentää hieman CPAN:in kysymien kysymysten määrää. Viimeinen
komento tallentaa asetukset tiedostoon <code>~/.cpan</code>-hakemiston alle.</p>

<h2>Pakettien asennus</h2>
<p>Esimerkiksi Twitter-protokollan toteuttava
<a href="http://search.cpan.org/~mmims/Net-Twitter-3.10001/lib/Net/Twitter.pod">
Net::Twitter</a>-paketti asennetaan näin:</p>
<pre>
cpan[4]> install Net::Twitter
...
</pre>
<p>Asennuksen aikana CPAN saattaa kysyä muutamaan kertaan riippuvuuksien
asennuksesta. Näihin voi vastata enteriä painamalla. Jos jokin moduuli on
<em>"Optional"</em>, ei sitä toki tarvitse asentaa.
</p>

<h2>Asennuksen testaaminen</h2>
<p>Voit testata paketin toimivuutta suoraan komentoriviltä käynnistämällä
perlin ja kirjoittamalla <code>use</code>-rivin. Puolipisteen ja rivinvaihdon
jälkeen perl ilmoittaa, jos moduulia ei löydy.</p>
<pre>
user@host:~$ perl
use Net::Twitter;
use Testi;
Can't locate Testi.pm
</pre>
</div>
65 changes: 65 additions & 0 deletions content/ohjeet/django.in
@@ -0,0 +1,65 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<div>
<p><a href="http://www.djangoproject.com/">Django</a> on Python-pohjainen www-sovellusten kehitysympäristö. Djangon asennukseen on useita menetelmiä, joista tässä neuvotaan fcgi-pohjainen asennustapa. Ohjeen komennot kannattaa ajaa Lakka-palvelimella, vaikka itse www-sivut palvellaankin Karviaiselta.</p>

<p><b>Huom:</b> Tätä ohjetta ei ole kattavasti testattu todellisten sivustojen kanssa. Jos käytät ohjetta isommassa projektissa, kerro sen toiminnasta helpdeskille.</p>

<h2>Asennuspaketin lataaminen ja purkaminen</h2>
<p>Lataa asennuspaketti Djangon sivuilta ja pura se esimerkiksi kotihakemiston alle. Purettavan hakemiston ei tarvitse olla www-juuren alla.</p>

<p>Djangon asennus setup.py:n kautta vaatisi pääkäyttäjän oikeudet. Sen sijaan
luodaan itse asennetuille python-moduuleille oma hakemisto, tässä ohjeessa <em>python-modules</em> kotihakemiston alla.
Kopioidaan paketista <em>Django-x.xx</em>:n alle purkautunut <em>django</em>-niminen hakemisto <em>python-modules</em>:n alle.</p>

<p>Lisäksi fcgi:tä varten Django tarvitsee <em>flup</em>-kirjaston. Kyseisestä kirjastosta on Debianin versio asennettu, mutta Djangon sivuilla suositellaan käytettäväksi uusinta kehitysversiota. Se haetaan <em>python-modules</em>-hakemiston alla seuraavasti:</p>
<pre>svn co http://svn.saddi.com/flup/trunk/flup</pre>

<h2>Fcgi-asetukset</h2>
<p>Sivustoa varten luodaan mysite.fcgi, johon pyynnöt ohjataan mod_rewritellä.</p>

<p>Alla esimerkkinä Djangon ohjeiden perusteella tehty mysite.fcgi Djangon omia esimerkkiohjelmia varten. Tiedostossa
on määritetty edellä luodun <em>python-modules</em>-hakemiston polku, ja projektin koodien juurihakemisto.</p>

<pre>
#!/usr/bin/python
import sys, os

# Add a custom Python path.
sys.path.insert(0, "/home/users/.../python-modules/")

# Switch to the directory of your project. (Optional.)
os.chdir("/home/users/.../www/django-testaus/")

# Set the DJANGO_SETTINGS_MODULE environment variable.
os.environ['DJANGO_SETTINGS_MODULE'] = "examples.settings"

from django.core.servers.fastcgi import runfastcgi
runfastcgi(method="threaded", daemonize="false")
</pre>

<p>Lisäksi fcgi-tiedostolle täytyy antaa suoritusoikeus, eli esimerkiksi oikeudet 755.</p>

<p>FastCGI pitää ohjelman n. 10 minuuttia käynnissä viimeisen sivunhaun jälkeen,
joten myöhemmät muutokset eivät välttämättä heti päivity. Muutoksien jälkeen
ajettu <em>touch mysite.fcgi</em> auttaa tähän.</p>

<p>Tässä vaiheessa sivut toimivat osoitteessa <em>http://.../mysite.fcgi/</em> (huomioi viimeinen kauttaviiva). Jotta osoitteet toimisivat ilman
.fcgi-tiedoston nimeä, luodaan .htaccess-niminen tiedosto samaan hakemistoon <em>mysite.fcgi</em>:n kanssa ja lisätään siihen seuraavat rivit:</p>

<pre>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ mysite.fcgi/$1 [QSA,L]
</pre>

<h2>Sivuston testaus</h2>
<p>Testaukseen voi käyttää Djangon esimerkkiohjelmia, joita varten kopioidaan <em>examples</em>-hakemisto projektin juurihakemistoon. Yllä <em>mysite.fcgi</em>:ssä määritelty <em>examples.settings</em> kertoo asetusmoduulin, josta Django osaa ladata esimerkkiohjelmien tiedot.</p>

<h2>Djangon työkaluskriptien käyttö</h2>
<p>Djangon apuskriptejä (kuten <em>django-admin.py</em>) komentoriviltä käytettäessä täytyy asettaa ympäristömuuttuja $PYTHONPATH, jotta järjestelmän oletusversioiden sijaan käytetään kotihakemistoon asennettuja python-moduuleita. Polun voi määrittää komennolla:</p>
<pre>
export PYTHONPATH=~/python-modules
</pre>
<p>Komennon voi myös lisätä komentotulkin käynnistystiedostoon <em>.bash_profile</em>.</p>

</div>

0 comments on commit 5bce4dc

Please sign in to comment.