MVnet logo

Kotisivun teko » PHP-ohjelmointi

  • Julkaistu: 20.10.2006
  • Päivitetty: 25.02.2009
  • Kommentit

PHP-ohjelmointi

Johdanto PHP:hen

PHP (PHP Hypertext Preprocessor) on palvelinpohjainen ohjelmointikieli, joka on kehitetty erityisesti käytettäväksi www-sivuilla. Palvelinpohjaisuudella tarkoitetaan sitä, että PHP-skriptit suoritetaan palvelimella. HTML-kielen tulkkaus ja JavaScript-kielen koodithan suoritetaan nettiselaimessa. Näiden kielten toimivuus riippuu siis paljon itse selaimesta. Esim. JavaScript-koodia ei välttämättä suoriteta, jos se on otettu selaimesta pois päältä. PHP-koodi suoritetaan aina palvelimella samalla tavalla selaimesta riippumatta. PHP ei vaadi mitään erityistä tukea selaimelta.

Koska PHP-koodi suoritetaan palvelimella, on PHP-skriptillä pääsy palvelimen tiedostoihin ja tietokantoihin, joihin ei nettiselaimella olisi pääsyä. PHP:n avulla voidaan tehdä dynaamisia www-sivustoja. Tällä tarkoitetaan sitä, että www-sivusto reagoi jotenkin käyttäjän antamiin syötteisiin tai ajankohtaan. PHP:n avulla voisi toteuttaa esimerkiksi salasanasuojauksen www-sivustolle tai tehdä ulkoasusta sellaisen, että taustaväri vaihtaa väriä kellonajan mukaan.

Esimerkki PHP-koodista upotettuna www-sivuun

Tältä näyttää www-sivuun upotettu PHP-koodi kun aletaan tehdä hieman monimutkaisempia järjestelmiä.

PHP:llä pystyykin tekemään melkein mitä vain. Sen avulla pystyy toteuttamaan melkein mitä tahansa palautelomakkeen käsittelijästä monimutkaiseen verkkokauppajärjestelmään. Vain mielikuvitus on rajana.

Jos olet opiskellut aikaisemmin jotain muita ohjelmointikieliä kuten Java, C++ tai Perl, opit luultavasti PHP:n hyvin nopeasti. PHP lainaa paljon ominaisuuksia juuri näiltä ohjelmointikieliltä ja sen syntaksi on myös hyvin samanlaista. Ohjelmointikielistä tietämättömälle PHP on myös hyvä tapa aloittaa ohjelmointikielten opettelu. Se on aloittelijalle melko helppo kieli oppia. Perusasiat oppii hyvin nopeasti. PHP:ssä on mitä erilaisempia valmiita funktioita, jotka helpottavat ohjelmointia. Valmiita funktioita ovat mm. tulostus näytölle, päivämäärän haku, sähköpostin lähetys ja tietokantayhteydet.

PHP-koodin lisääminen www-sivuun

Yksi PHP:n hyvistä puolista on se, että PHP-koodin voi upottaa suoraan HTML-koodin sekaan. Näin voi esimerkiksi tulostaa nykyisen päivämäärän helposti www-sivulle haluamaansa kohtaan. PHP-koodi täytyy aina erottaa HTML-koodista aloittamalla PHP-koodi merkinnällä <?php ja lopettamalla se merkintään ?>. Jos näitä merkintöjä ei käytetä, ei palvelimen PHP-tulkki osaa tulkita koodia PHP-koodiksi eikä näin ollen suorita PHP-skriptiä. Alla näet yksinkertaisen esimerkin, miten PHP-koodi lisätään HTML-koodin sekaan.

<html>
<head>
<title>Sivun otsikko</title>
</head>
<body>
<strong>
	<?php print "Hello World!"; ?>
</strong>
</body>
</html>

Yllä esitetty PHP-koodi tulostaa siis sivulle seuraavaa: Hello World!.

Koska PHP-koodi suoritetaan palvelimella, ei PHP-koodista näy jälkeäkään sivun lähdekoodia tarkastelemalla. PHP-koodiin voi näin ollen sisällyttää vaikka salasanoja, sillä koodi ei näy sellaisenaan sivun selailijalle. Jos joku tutkailee PHP-dokumenttisi lähdekoodia, ei hän näe mitään pätkiä PHP-koodista.

Sivu, johon lisätään PHP-koodia pitää aina muuttaa .php päätteiseksi, jotta palvelimen PHP-tulkki ajaisi skriptit. Jos sivulla on PHP-koodia, mutta se on esimerkiksi .html-päätteinen, ei PHP-tulkki suorita sivun PHP-skriptejä ja PHP-koodi näkyy silloin sivun lähdekoodissakin. Alla on esitetty esimerkki PHP-koodin lisäämisestä kokonaiseen HTML-dokumenttiin. Kyseinen dokumentti oli esimerkkinä HTML-kieli -sivulla. PHP-skripti lisää sivulle tämän päivämäärän muodossa pp.kk.vvvv:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" 
"http://www.w3.org/TR/html4/strict.dtd">
<html>

<head>
	<title>MVnet :: Esimerkkisivu HTML-koodin käytöstä</title>
</head>

<body>

	<!--Varsinainen tekstisisältö alkaa -->

	<p>Tämä sivu on siis <strong>esimerkkinä HTML-koodin 
	käytöstä</strong>. HTML-koodin avulla saa tekstidokumentista 
	paljon elävämmän. Käyttämällä lisäksi CSS-tyyliohjeita, saat määriteltyä 
	sivun esitysasun haluamaksesi ja teet tyylikkäitä ja toimia sivuja.</p>
	
	<p><strong>
	<?php
		$paivamaara = date("d.m.Y");
		print "Tänään on päivämäärä: ".$paivamaara;
	?>
	</strong>
	</p>
	
	<p>HTML:n avulla dokumenttiin voi myös sisällyttää kuvia. 
	Kuva lisätään img-tägilla. Seuraavassa on lisätty MVnetin logo 
	img-tägin avulla:</p>
	
	<p><img src="kuvat/layout/mvnetlogo.png" alt="Esimerkkikuva" /></p>
		
	<p>HTML:n avulla voi myös tehdä linkkejä. Seuraavassa on linkki 
	tämän MVnetin <a href="index.php?osio=Kotisivun_teko
	&amp;sivu=HTML-kieli#html_kieli_koostuu">
	Kotisivun teko-osion HTML-kieli-sivulle</a>.</p>

</body>

</html>

Kyseinen koodi on tallennettu php- ja html-päätteisiksi HTML-dokumenteiksi. Voit katsoa, miltä sivut näyttävät alla olevista linkeistä. PHP-päätteinen sivu toimii kuten pitääkin. Eli palvelin suorittaa PHP-skriptin ja tulostaa sivulle nykyisen päivämäärän. Jos katsot selaimellasi sivun lähdekoodia, et näe mitään merkkiä siitä, että päivämäärä olisi tulostettu PHP:llä (paitsi että sivu on .php-päätteinen). HTML-päätteisessä sivussa taas päivämäärän tulostus epäonnistuu. PHP-tulkki ei tulkitse PHP-koodia, koska sivu ei ole .php-päätteinen. Sivulle ei tulostu ollenkaan päivämäärää ja lisäksi, jos tarkastelet selaimellasi sivun lähdekoodia, näet siellä kaiken PHP-koodin. Tämä olisi tietoturvariski etenkin, jos sivulle olisi sisällytetty PHP:llä joitain salasanojen tarkistuksia tms.

PHP-koodin ajaminen

PHP:llä kirjoitettuja skriptejä voi kokeilla omalla kotikoneella vain, jos koneeseen on asennettuna palvelinohjelmisto ja PHP-tulkki. Ilman näitä ohjelmistoja ei PHP-koodia pysty suorittamaan. Sama vaatimus on myös kotisivutilaa tarjoavilla palvelimilla. Mikäli kotisivutilan tarjoaja ei tue PHP:tä - eli heillä ei ole käytössä PHP-tulkkia - et pysty ajamaan PHP-koodia sivuillasi. Monet ilmaiset kotisivutilaa tarjoavat palvelut eivät tue PHP:tä. PHP-tuki kun vaatii palvelimelta hieman enemmän ja ilmaispalveluilla ei ole tähän aina vaadittavia resursseja Mutta useimmat maksullista kotisivutilaa tarjoavat palvelut tukevat PHP:tä (esim. MikroBitti ja lähes kaikki maksulliset web-hotellit).

Jos kotisivutilasi tarjoaja tukee PHP:tä, on PHP-koodin kokeilu ehkä helpointa heidän palvelimellaan. Tällöin et joudu asentamaan palvelinohjelmistoja omalle koneellesi. Riittää, kun lähetät PHP-koodia sisältävän dokumenttisi FTP:llä kotisivuillesi ja avaat sivun nettiselaimella.

PHP-koodin testaus on kuitenkin pidemmän päälle hankalaa, jos koodin joutuu aina lähettämään palvelimelle FTP-ohjelmalla. Siksi onkin kannattavaa asentaa palvelinohjelmistot omalle koneellesi. Koneeseesi pitää asentaa jokin www-palvelinohjelmisto (yleensä Apache) ja PHP-tulkki, joka käsittelee PHP-koodin. Näiden asentaminen ja konfigurointi erikseen on kuitenkin aloittelijalle hankalaa. Siksi kannattaakin asentaa jokin ns. all-in-one -paketti, jossa on kaikki tarvitsemasi palvelinohjelmistot samassa (Apache, PHP, MySQL). Hyvä tällainen ohjelmistopaketti on VertrigoServ, joka on täysin ilmainen ja jonka käytöstä kerrotaan tarkemmin alla.

Palvelinohjelmistot samassa paketissa: VertrigoServ

VertrigoServ-ohjelmiston hallinta

VertrigoServ-ohjelmiston hallinta Windows XP:n tehtäväpalkista.

VertrigoServ sisältää siis kaikki tarvittavat ohjelmistot, jotta voit kokeilla PHP-koodin käyttöä helposti omalla kotikoneellasi. Ohjelmisto on täysin ilmainen. Lataa ja asenna siis VertrigoServ. Asennus on hyvin yksinkertainen. Klikkailet vain asennusohjelman seuraava-painikkeita ja hyväksyt kaikki vastaan tulevat ehdot. Kun ohjelma on asennettu, käynnistä se kaksoisklikkaamalla ohjelman kuvaketta esim. Työpöydältä. Eteesi aukeaa ikkuna, josta paina painiketta "Hide this window and start server". Nyt palvelinohjelmistot ovat käynnissä.

Nyt voit alkaa sijoittaa ohjelman asennuskansion sisältämään www-kansioon omia nettisivujasi. Asennuskansiossa sijaitseva www-kansio asentuu oletuksena koneellesi kansioon C:/Program Files/VertrigoServ/www. Voit huoletta tuhota kyseisen www-kansion sisällön ja korvata kaikki sivut omilla nettisivuillasi. Nimeä sitten kotisivusi etusivu index.php-nimiseksi.

Kun nyt kirjoitat www-selaimesi osoiteriville http://localhost/index.php, hakee VertrigoServ selaimelle näytettäväksi sivun, joka on osoitteessa C:/Program Files/VertrigoServ/www/index.php. Jos sinulla on PHP-koodia sisältävä sivu, jonka tiedostonimi on esimerkiksi testi.php, kopioit vain kyseisen sivun koneellesi osoitteeseen C:/Program Files/VertrigoServ/www/testi.php ja voit suorittaa sivulla olevat PHP-koodit menemällä selaimellasi osoitteeseen http://localhost/testi.php.

Kotikoneesi on nyt siis valjastettu www-palvelimeksi, joka pystyy suorittamaan PHP-koodia. Jos et halua, että sivusi näkyvät ulospäin internettiin muille käyttäjille, varmista, että joko kotiverkkosi reititin tai ohjelmistopalomuurisi estää tämän. Yleensä oletusasetuksilla reititin ja palomuuri estävät www-palvelimen näkymisen ulospäin, joten jos tarkoitus on jokin muu kuin testikäyttö omalla koneella, voi joutua säätämään myös reitittimen ja palomuurin asetuksia.

Lisätietoa PHP:stä

Tämän sivun katsaus PHP:hen oli melko suppea. Lisätietoa PHP:stä löytyy kuitenkin paljon netistä ja myös suomen kielellä. Alla on lueteltu muutamia suomenkielisiä oppaita, jotka johdattavat sinut PHP:n saloihin:

Suomenkielisten oppaiden lisäksi netissä on myös oivia englanninkielisiä oppaita PHP:n opetteluun. Alla on listattu parhaat englanninkieliset oppaat:

Näiden oppaiden lisäksi etenkin edistyneemmille on suurena apuna PHP:n virallinen dokumentaatio, joka sisältää tarkan kuvauksen PHP-kielen rakenteesta ja tarkan kuvauksen jokaisesta PHP:n sisältämästä valmiista funktiosta. Dokumentaatio on luettavissa yksittäisinä sivuina HTML-muodossa, mutta sen voi myös kopioida yhtenä isona tiedostona omalle koneelle. Ennemmin tai myöhemmin tulet varmasti selaamaan dokumentaatiota. Dokumentaatiossa on myös havainnollistavia koodipätkiä esimerkkeinä. Kannattaa aina yrittää etsiä ratkaisua ongelmaansa PHP-koodin kanssa tästä php-manuaalista, ennen kun lähtee kyselemään neuvoa muilta.

Kun oppaista ei löydä tarvitsemaansa tietoa tai ei vain muuten ymmärrä niitä, saa apua yleensä keskustelupalstoilta. Muista ettei ohjelmointia opi yhdessä päivässä, joten on turha odottaa, että heti ymmärtäisit kaikki tai että joku osaisi heti selittää sinulle kaiken ymmärrettävästi. Ohjelmointi ja sen opettelu vaatii kärsivällisyyttä. Alla on listattu muutamia suomenkielisiä keskustelufoorumeita, joista saa apua ongelmissaan PHP:n kanssa:

Tiedoston käyttöoikeudet ja PHP

Tavallinen kävijä, joka selailee www-sivujasi nettiselaimella, ei pysty kuin lukemaan sivujasi. Hän ei pysty suoraan kirjoittamaan tai luomaan uusia tiedostoja sivuillesi. Muutoinhan palvelimet täyttyisivät kaikesta roskasta. Palvelinkoneen tiedostoille on asetettu eri käyttöoikeuksia kuten kotikäytössä olevissa Linuxeissakin on. Linuxissahan voi määrätä tiedostoihin ja kansioihin luku- ja kirjoitusoikeuksia niin, että esimerkiksi vain järjestelmän ylläpitäjällä (root) on oikeus kirjoittaa johonkin tiedostoon, jolloin esim. järjestelmää käyttävä tavallinen käyttäjä ei pystyisi tähän tiedostoon kirjoittamaan.

WWW-palvelinkoneissa käytetään samanlaisia käyttöoikeuksia tiedostoissa kuin Linuxeissakin. Nettiselainten lähettämät pyynnöt lukea www-sivujasi (eli palvelinkoneen tiedostoja/kansioita) tulevat palvelinkoneelle siinä pyörivän www-palvelinohjelmiston kautta (esim. Apache). WWW-palvelinohjelmisto toimii palvelinkoneella turvallisuussyistä yleensä käyttäjänä "nobody", "wwwrun" tms. Oletuksena www-palvelinohjelmistolla ei ole oikeuksia kirjoittaa tiedostoon/kansioon. Jos taas otat yhteyden palvelinkoneeseen FTP-ohjelmallasi, käytät palvelinkonetta eri käyttäjätunnuksella kuin www-palvelinohjelmisto ja sinulla on kaikki oikeudet omiin tiedostoihisi.

Jos siis esim. luot kansion kotisivuillesi FTP-ohjelmalla, on vain sinulla oletuksena kirjoitusoikeus kansioon. Eli voit FTP-ohjelmalla lisätä kansioon tiedostoja. Mutta koska www-palvelinohjelmistoa käytetään palvelinkoneella eri käyttäjätunnuksella, ei sillä ole oletuksena oikeuksia lisätä kansioon tiedostoja. Jos www-palvelinohjelmiston halutaan voivan lisätä kansioon tiedostoja, täytyy kansion luoneen käyttäjän (eli sen, joka loi kansion FTP-ohjelmalla) muuttaa kansion käyttöoikeuksia.

Koska PHP-skriptit ajetaan yleensä samalla käyttäjätunnuksella kuin www-palvelinohjelmisto, myöskään PHP-skriptillä ei ole oletuksena oikeutta muuttaa tiedostojen sisältöä tai lisätä/poistaa tiedostoja kansiosta. Siksi, jos halutaan PHP-skriptin voivan kirjoittaa johonkin tiedostoon, täytyy kyseisen tiedoston käyttöoikeuksia muuttaa. Käyttöoikeuksien muuttamisesta käytetään tällä sivulla verbiä chmodaaminen, joka tulee englannin kielestä sanasta chmod.

Jos testaat PHP-koodia kotikoneellasi ja käyttöjärjestelmänäsi on Windows, ei tiedostojen käyttöoikeuksista tarvitse välittää. Sen sijaan normaaleilla www-palvelimilla käyttöoikeudet täytyy asettaa oikein, mikäli haluaa muuttaa tiedoston sisältöä tai lisätä kansioon tiedostoja PHP:n avulla. Muutoin tulostuu virheilmoituksia.

Käyttöoikeuksien asettaminen

Käyttöoikeudet tiedostoon/kansioon annetaan kolmelle eri käyttäjälle: owner, group ja others. Jokaiselle näille kolmelle käyttäjälle määrätään luku-, kirjoitus- ja suoritusoikeudet haluttuun tiedostoon/kansioon.

Lukuoikeus tarkoittaa nimensä mukaisesti sitä, että käyttäjällä on oikeus lukea tiedoston sisältöä tai kansion ollessa kyseessä lukea kansion sisältöä. Kirjoitusoikeus taas tarkoittaa, että käyttäjällä on oikeus muuttaa tiedoston sisältöä. Kansion tapauksessa kirjoitusoikeus antaa oikeudet luoda ja poistaa tiedostoja kansion sisältä ja muuttaa kansion sisältämien tiedostojen käyttöoikeuksia. Suoritusoikeus taas antaa käyttäjälle oikeuden suorittaa tiedosto (tätä oikeutta tarvitaan vain tiedostoissa, jotka siis voidaan "ajaa" järjestelmässä kuten CGI-skriptit, PHP-skripteille ei tarvitse antaa suoritusoikeutta). Kansion tapauksessa suoritusoikeus antaa oikeuden selata kansion sisältöä.

Käyttäjä Owner tarkoittaa tiedoston omistajaa eli yleensä sitä käyttäjää, joka on tiedoston luonut. Group (käytetään myös joskus nimeä Public) taas tarkoittaa sitä ryhmää käyttäjiä, joihin tiedoston käyttöoikeuksien asettaja kuuluu. Others taas tarkoittaa kaikkia muita käyttäjiä, jotka eivät ole tiedoston omistajia tai eivät kuulu käyttöoikeuksia asettaneen käyttäjän kanssa samaan ryhmään. WWW-palvelinohjelmisto ja siten myös PHP-skripti eivät yleensä kuulu samaan ryhmään kuin FTP-ohjelmaa käyttävä käyttäjä. Eli jos haluat, että PHP-skripti pystyy kirjoittamaan tiedostoon, on muille käyttäjille (others) asetettava oikeus kirjoittaa tiedoston.

Käyttöoikeus muotoa 766

Käyttöoikeuden asettaminen tiedostolle muotoon 766 FTP-ohjelma FileZillalla.

Tiedoston/kansion käyttöoikeus on tapana lyhentää kolminumeroiseen muotoon, esim. 722, 766 tai 777. Tämä on huomattavasti lyhempi tapa ilmoittaa tiedoston käyttöoikeudet kuin kertoa erikseen luku-, kirjoitus- ja suoritusoikeudet omistajalle, ryhmälle ja muille käyttäjille. Numerosarjan ensimmäinen numero kertoo tiedoston omistajan (owner) oikeudet. Toinen numero kertoo ryhmän (group) oikeudet ja kolmas numero kertoo muiden käyttäjien (others) oikeudet.

Käyttäjän oikeuksista kertova numeroarvo taas määräytyy siitä, onko käyttäjällä oikeus lukea, kirjoittaa tai suorittaa tiedostoa. Jos käyttäjällä on oikeus lukea tiedostoa, saa käyttäjä numeroarvon 4. Jos käyttäjällä on oikeus kirjoittaa tiedostoon, saa hän numeroarvon 2 ja suoritusoikeudella numeroarvon 1. Jos käyttäjällä on useampia oikeuksia, summataan nämä numeroarvot yhteen. Esim. jos käyttäjällä on oikeus lukea ja kirjoittaa tiedostoon, saa hän numeroarvon 4+2=6. Jos käyttäjällä ei ole mitään oikeuksia tiedostoon, saa hän numeroarvon 0. Tiedoston omistajalla on yleensä kaikki oikeudet tiedostoon (tai ainakin luku- ja kirjoitusoikeudet) ja kansioon aina kaikki oikeudet. Omistajan oikeus kansioon onkin numeroarvona siis 4+2+1 eli 7.

Tiedoston käyttöoikeuksista kertova kolminumeroinen luku siis kertoo lyhyesti omistajan oikeudet, ryhmän oikeudet ja muiden käyttäjien oikeudet tiedostoon. Tällöin esim. 777 tarkoittaa sitä, että niin omistajalla, ryhmällä kuin muilla käyttäjillä on täydet oikeudet tiedostoon (luku, kirjoitus ja suoritus). 755 taas kertoo, että omistajalla on täydet oikeudet, mutta ryhmällä ja muilla käyttäjillä on vain luku- ja suoritusoikeudet eli niiltä puuttuvat kirjoitusoikeudet.

Tiedostolistaus FileZillassa

Tiedostolistaus FileZillassa. Huomaa oikealla näkyvät tiedostojen ja kansioiden käyttöoikeudet.

Kolminumeroisen luvun lisäksi tiedostojen ja kansioiden käyttöoikeudet voidaan esittää vielä toisessakin muodossa. Olet varmaan huomannut esimerkiksi FTP-ohjelmissa, että tiedostoluettelon oikealla puolella on outo rimpsu kirjaimia, esim. drwxrwxrwx. Tämä kirjansykermä kertoo, onko kyseessä tiedosto vai kansio ja mitkä ovat kyseisen tiedoston/kansion käyttöoikeudet.

Ensimmäinen kirjain kertoo, onko kyseessä kansio. Jos ensimmäinen kirjain on d (d=directory) on kyseessä kansio. Jos taas ensimmäinen kirjain on viiva, on kyseessä tiedosto. Seuraavat kirjaimet kertovat tiedoston/kansion käyttöoikeudet kolmelle käyttäjälle: omistajalle, ryhmälle ja muille käyttäjille. Kunkin käyttäjän oikeudet kerrotaan kolmella kirjaimella: rwx (r=read, w=write, x=execute). Jos käyttäjällä ei ole luku-, kirjoitus, tai suoritusoikeutta, merkitään kyseisen oikeuden kohdalle viiva (-).

Eli, jos käyttäjällä on esim. luku- ja suoritusoikeudet, mutta ei kirjoitusoikeutta, merkitään käyttöoikeus muotoon r-x. Jokaisen kolmen käyttäjän oikeudet kirjoitetaan sitten peräkkäin järjestyksessä: omistaja, ryhmä, muut käyttäjät, jolloin saadaan esitettyä tiedoston/kansion käyttöoikeudet.

Otetaan esimerkkinä seuraavanlainen käyttöoikeus: -rwxrw-rw-. Kyseessä on siis tiedosto, jossa omistajalla on täydet oikeudet ja ryhmällä sekä muilla käyttäjillä on kaikki muut oikeudet paitsi suoritusoikeus. Kyseisen tiedoston käyttöoikeus lyhemmässä muodossa olisi 766.

Ei ole aina helppoa muistaa, mikä numeroarvo vastasi mitäkin oikeutta ja siksi onkin ehkä helpompi katsoa alla olevasta taulukosta, minkä numeroarvon käyttäjä saa, milläkin oikeuksilla.

Numeroarvo rwx-merkintä Oikeus
0 --- Ei oikeuksia
1 --x Suoritus
2 -w- Kirjoitus
3 -wx Kirjoitus ja suoritus
4 r-- Luku
5 r-x Luku ja suoritus
6 rw- Luku ja kirjoitus
7 rwx Luku, kirjoitus ja suoritus

Yleensä tiedoston käyttöoikeus on asetettu www-palvelimella oletuksena muotoon 644 ja kansion käyttöoikeus muotoon 755. Jos haluat, että PHP-skripti pystyy kirjoittamaan tiedostoon, annetaan tiedostolle yleensä käyttöoikeus muotoa 766. Jos taas haluat, että PHP-skripti pystyy luomaan ja poistamaan tiedostoja kansiosta, muutetaan kansion käyttöoikeus yleensä muotoon 777.

Käyttöoikeuksilla ei oikeastaan ole juuri väliä, asettaako sen PHP-skriptin kirjoitusoikeutta varten esim. muotoon 766 vai 666 vai 756. Pääasia on, että muille käyttäjille (others) antaa riittävät oikeudet, jolloin PHP-skripti pystyy tiedostoon kirjoittamaan. Jos annat liikaa oikeuksia tiedostolle, ei silläkään ole suurta väliä, koska kukaan ulkopuolinen ei kuitenkaan pääse tiedostojesi ja kansioidesi sisältöä muuttelemaan. Turhien oikeuksien antamista tiedostoille/kansioille kannattaa kuitenkin välttää.

Käyttöoikeuksien asettamisessa voi tulla joskus eteen outoja tilanteita. Jos esim. kirjoittamasi PHP-skripti luo tiedoston, tulee www-palvelinohjelmistosta (esim. Apache) tiedoston omistaja ja yleensä palvelin asettaa tällöin tiedostolle käyttöoikeuden muotoa 600. Tämä tarkoittaa sitä, että vain PHP-skripti pystyy lukemaan ja kirjoittamaan tiedostoon - muut käyttäjät eivät voi edes lukea tiedostoa (et edes sinä itse FTP-ohjelman kautta). Siksi et pysty poistamaan tai lukemaan FTP-ohjelmalla näin luotua tiedostoa. Tällöin ainoa mahdollisuus poistaa kyseinen tiedosto FTP-ohjelmalla on poistaa tiedosto PHP-skriptillä tai muuttaa tiedoston käyttöoikeuksia PHP-skriptillä ja poistaa se sitten FTP-ohjelmalla.

Tiedostojen/kansioiden käyttöoikeuksien muuttaminen FileZillalla

Tiedoston käyttöoikeuden muuttaminen

Tiedoston/kansion käyttöoikeuden muuttaminen FileZillassa

Tiedoston käyttöoikeuksia voi muuttaa esim. FTP-ohjelmalla kuten FileZillalla. FileZillassa tämä tapahtuu klikkaamalla tiedoston nimen päällä hiiren oikeaa näppäintä ja valitsemalla valikosta File attributes.... Ohjelmaan aukeaa nyt ikkuna, jossa on rasteja ja tyhjiä kohtia ryhmiteltynä kolmeen osaan (kts. kuva ylhäällä). Ensimmäinen osa Owner tarkoittaa tiedoston omistajan oikeuksia, Group omistajan ryhmän oikeuksia sekä Public (tunnetaan myös nimellä Others) muita käyttäjiä (eli esim. PHP-skripti). Kohta Read tarkoittaa, onko kyseisellä käyttäjällä lukuoikeutta, Write kirjoitusoikeutta ja Execute suoritusoikeutta (esim. CGI-skriptit).

Jos mitään kohtaa ei ole valittu on tiedoston käyttöoikeus muotoa 000 ja jos kaikki on valittu, on se siis muotoa 777. Jos taas kaikista käyttäjistä on valittu vain kohdat Read, on käyttöoikeus muotoa 444. Jos taas käyttäjälle Owner on valittu kaikki oikeudet ja ryhmälle sekä muille käyttäjille on valittu kaikki oikeudet paitsi Execute, on käyttöoikeus muotoa 766.

Kun pelkkä Read-kohta on valittu, on kyseisellä käyttäjällä oikeus vain lukea tiedostoa, ei esim. kirjoittaa siihen. Kun taas Read ja Write-kohdat on valittu on käyttäjällä myös oikeus kirjoittaa tiedostoon.

Seuraava sivu (PHP-sovelluksia) >> << Edellinen sivu (JavaScript-ohjelmointi)

Sivun kommentit