HUOM! Voit itse lisätä ja muuttaa sisältöä muokkaa-painikkeiden avulla

 Olet itse vastuussa tämän teoksen käytöstä aiheutuvista vahingoista Lue lisää.

PHP asennus

Kohteesta Wikikko - kansan taitopankki
Siirry navigaatioon Siirry hakuun

Yleistä[muokkaa]

Sivu sisältää PHP-ohjelmointikielen käyttöönotto-ohjeita.

Käyttöönotto Mac OS X El Capitan / Yosemite / Mavericks[muokkaa]

Otetaan käyttöön Apache ja PHP. Jos et ole tietokoneen pääkäyttäjä, saattaa ilmeitä ongelmia.

  • Lisätietoa kuten myös lähteitä näille asennusohjeille:
https://coolestguidesontheplanet.com/upgrade-php-on-osx/
https://getgrav.org/blog/mac-os-x-apache-setup-multiple-php-versions
Yosemite
Mavericks

Apache[muokkaa]

  • Pikavinkit:
    • Virheloki: cat /var/log/apache2/error_log

Kytketään Apache päälle. Kertaalleen käynnistettyä ei tarvitse uudestaan käynnistää vaikka tietokone sammutetaan.

Käynnistys:    sudo apachectl start
Uuudelleenkäynnistys kun apache on valmis:   sudo apachectl restart
Uudelleenkäynnistys välittömästi: sudo apachectl -k restart
Pois päältä:   sudo apachectl stop

Testaus:    localhost    (anna selaimen hakuriviille, niin tulostuu: It works!)
Php.ini tiedoston tarkistus : sudo apachectl -t
Versionumero:   httpd -v
Säätö: httpd.conf -tiedosto
  • Tulostuva It works! -sivu löytyy hakemistosta Macintosh HD/Kirjasto/WebServer/Documents/index.html.en mutta lähtökohtaisesti sinulla ei ole kirjoitusoikeuksia siihen kansioon. Lienee parempi tehdä käyttäjälle oma sivusto:

Oman Sites-hakemiston asentaminen vaihtoehto 1[muokkaa]

Tämä ohje suorittaa komennolla http://localhost tiedostoja, jotka ovat /käyttäjänimesi/Sites -hakemistossa.

Suoritettu (4/2017 Sierra)
Aivan alkup lähde (ei enää Sierra) https://getgrav.org/blog/mac-os-x-apache-setup-multiple-php-versions
  1. Selvitä php-versio: php -v
  2. Luo Sites-hakemisto Finderissa Macintosh HD/Käyttäjät/käyttäjänimesi/Sites tai pääteohjelmalla mkdir ~/Sites
    1. Lisää sinne index.html testausta varten: echo "<h1>Tulostuu omasta Sites-hakemistosta</h1>" > ~/Sites/index.html
  3. Katso Finderissa sivupalkista talokuvakkeen kohdalta millä käyttäjänimellä olet kirjautunut ja käytä seuraavassa sitä.
  4. sudo nano /etc/apache2/httpd.conf
    1. nano -editorissa ctrl-w etsii ja kun painat ctrl-w ja vain enter se siirtyy seuraavaan aikaisemmin haettuun kohtaan samalla hakusanalla. Tallennus ja poistuminen ctrl-x ja Y. Jos et ole tehnyt muutoksia ctrl-x poistuu suoraan.
    2. Hae ctrl-w hakusanalla: DocumentRoot
      1. DocumentRoot "/Library/WebServer/Documents" muunna DocumentRoot "/Users/käyttäjänimi/Sites"
      2. Muunna <Directory "/Users/käyttäjänimi/Sites">
      3. Samassa <Directory> -lohkossa muunna AllowOverride All
    3. Muunna käyttäjä ja ryhmä, jotka ovat selvästi alempana tiedosto kuin edellä olevat: User käyttäjänimi ja Group staff
    4. Hae ctrl-w hakusanalla: ServerName
      1. Poista ServerName local_server:80 edestä risuaita. Muutoin saat virheilmoituksia AH00557: httpd: apr_sockaddr_info_get() failed for x.local ja AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message
  5. Jos PHP 7.0 lisää vielä kohdat jotka tämän ohjeen alla otsikolla "Jos PHP 7.0 lisää vielä"
  6. ctrl-x ja Y ja enter
  7. sudo apachectl -k restart
  8. http://localhost ja pitäisi tulostua mitä index.html:ssä, mutta välttämättä hakemistossa olevat ohjelmat eivät toimi, vaan saat antaessasi localhost/ohjelmannimi virheilmoituksen "Forbidden 403, You don’t have permission to access /filename/ on this server". Tee seuraavat muutokset:
  • Tarkista mikä Apache-versio on käytössä: httpd -v
  • ls /etc/apache2/users/ Tarkista löytyykö tiedosto: käyttäjänimi.conf
    • Jos ei löydy: sudo nano /etc/apache2/users/käyttäjänimesi.conf ja anna salasana tai jos löytyy niin avaa tiedosto samalla tavoin
    • El Capitan, Yosemite, Mavericks: Liitä seuraava koodi tiedostoon JOS Apache 2.4 ja paina ctrl-x
<Directory "/Users/käyttäjänimesi/Sites/">
AllowOverride All
Options Indexes MultiViews FollowSymLinks
Require all granted
</Directory>
    • Liitä seuraava koodi tiedostoon JOS Apache 2.2 ja paina ctrl-x
<Directory "/Users/käyttäjänimesi/Sites/">
Options Indexes MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
  • Tarkista käyttöoikeus komennolla: ls -l /etc/apache2/users/käyttäjänimesi.conf joka pitäisi olla: -rw-r--r-- 1 root wheel 133 Aug 13 2015 käyttäjänimi.conf
    • Jos ei ole: sudo chmod 644 /etc/apache2/users/käyttäjänimi.conf
  • Tarkista että seuraavien rivien edessä ei ole # -merkkiä. Hae ctrl-w -komennolla rivejä kirjoittamalla niiden alkuosa. Useamman edessä on ainakin El Capitanissa #-merkki. Poistu ctrl-x ja paina y ja enter.
sudo nano /etc/apache2/httpd.conf
LoadModule authz_host_module libexec/apache2/mod_authz_host.so
LoadModule authz_core_module libexec/apache2/mod_authz_core.so
LoadModule userdir_module libexec/apache2/mod_userdir.so
LoadModule php5_module libexec/apache2/libphp5.so
Include /private/etc/apache2/extra/httpd-userdir.conf

sudo nano /etc/apache2/extra/httpd-userdir.conf
Include /private/etc/apache2/users/*.conf
  • Jos Apache on jo aikaisemmin käynnistetty, käynnistä uudelleen: sudo apachectl restart
  • Kyseiseen hakemistoon voit asentaa nyt esim. ohjelman mediawiki joka käynnistetään localhost/mediawiki
  • Katso myös aiheeseen liittyvä kohta MediaWiki#Collection
  • Jos PHP 7.0 lisää vielä:
    • <FilesMatch "^\.([Hh][Tt]|[Dd][Ss]_[Ss])"> Require all denied </FilesMatch> -kohdan alle rivit:
<FilesMatch \.php$>
   SetHandler application/x-httpd-php
</FilesMatch>
    • ja etsi <IfModule dir_module> DirectoryIndex index.html </IfModule> ja lisää index.php riville, joka näyttää sitten seuraavalta: DirectoryIndex index.php index.html
  • Jos saat virheilmoituksen "Forbidden 403, You don’t have permission to access /filename/ on this server" kun yrität avata oman käyttäjähakemiston tiedostoja, katso että käyttäjänimesi.conf tiedostossa on oikea apache-version mukainen koodi ja #-merkkejä ei ole rivien edellä kuten edellä on mainittu. (alkuperäinen ohje
    • Tee muutokset vaihtoehdon 2 kohdasta "Tarkista mikä Apache..." alkaen.
  • Sivu ei avaudu:
    • Jos http://localhost -komennolla selaimessa ei avaudu, tarkista että /etc/hosts -tiedosto sisältää 127.0.0.1 localhost -rivin
    • Tarkista että #-merkki on rivin LoadModule php5_module libexec/apache2/libphp5.so edellä tiedostossa /etc/apache2/httpd.conf
  • Ei toimi:
    • Ehkä vaatii muutoksia httpd.conf -tiedostoon, joita on kerrottu vaihtoehto 2:ssa

.htaccess ylikirjoitus ja URL-uudelleenkirjoituksen salliminen[muokkaa]

Jos käytät kuitenkin Macintosh HD/Kirjasto/WebServer/Documents/ -hakemistossa olevaa, kts. ohje http://coolestguidesontheplanet.com/get-apache-mysql-php-phpmyadmin-working-osx-10-10-yosemite/

Apache, User, Group[muokkaa]

  • Todennäköistä on että käyttäessäsi esimerkiksi MediaWiki-ohjelman tiedostotallennusta, Apache tallentaa tiedostot User _www ja Group staff tai Group _www. Voit muuttaa tätä asetusta esimerkiksi että tallennus tapahtuu omalla käyttäjätunnuksellasi kuten: User omamackäyttäjätunnus ja Group staff. Jos haluat taas root -tunnuksen niin User root ja Group wheel Muutos vaikuttaa ilmeisesti vain tästä hetkestä eteenpäin eli olemassaoleviin hakemisto ja tiedosto-oikeuksiin se ei vaikuta.
cd /private/etc/apache2/
sudo vi httpd.conf
anna salasana
a Tämä a-kirjain avaa syöttötoiminnon vi-editorissa.
Etsi kohta, jossa on User ja Group.
User omamackäyttäjänimesi
Group staff
esc :wq Paina esc kaksoispiste w ja q perätysten niin tiedot tallennetaan ja poistutaan editorista.
sudo apachectl graceful Käynnistetään Apache uudestaan graceful toiminnolla.
  • Jos olet päivittänyt Mavericksiin Lionista tai Yosemiteen Maverickista muodostuu uusi httpd.conf -tiedosto. Vanha on ehkä samassa kansiossa nimellä httpd.conf.pre-update

Hakemisto- ja tiedosto-oikeudet[muokkaa]

  • Julkaistessasi web-sivuja verkossa esimerkiksi kotikoneelta, on tietoturvasta pidettävä ehdottomasti huolta! Yksi puoli on ajantasaiset ohjelmat, jotka päivitetään välittömästi kun ilmenee uhkia ja muutoinkin pidetään ajantasalla. Toinen on tiedostojärjestelmän suojaaminen. Myös muita tärkeitä huomioonotettavia asioita on joihin on syytä perehtyä! Niitä ei ole ainakaan vielä tässä lueteltu.
  • Tiedostojärjestelmän oikeudet
    • Sivuston hakemisto suojataan esimerkiksi: sudo chmod -R a+w ~/Sites/sivustosihakemistonimi
    • Tämä asettaa tiukemman rajoituksen ja joudut todentamaan itsesi useammin käsitellessäsi tiedostoja: sudo chown -R _www ~/Sites/testsite

PHP[muokkaa]

PHP on valmiiksi asennettuna. Se täytyy kytkeä ainoastaan päälle. Kertaalleen kytkettyä ei tarvitse uudestaan kytkeä vaikka tietokone sammutetaan.

  1. Avaa Pääte-ohjelma
  2. Anna komento: sudo nano /etc/apache2/httpd.conf
  3. ctrl-w ja kirjoita: php
  4. poista #-merkki riviltä LoadModule php5_module libexec/apache2/libphp5.so
  5. ctrl-x ja paina: y ja enter
  6. testaa toiminta esim.
    1. avaa uusi tiedosto TeXturi:ssa
    2. kirjoita: <?php phpinfo(); ?>
    3. tallenna Sites -hakemistoon nimellä phpinfo.php
    4. anna selaimessa: http://localhost/phpinfo.php TAI http://localhost/~käyttäjänimesi/phpinfo.php ja tulostuu tietoa php:stä
    5. jos tulostuu <?php phpinfo(); ?> ilmeisesti Apache ei ole toiminnassa. Tuleeko Apachen uudelleenkäynnistyksessä virheilmoituksia. Sen uudellenkäynnistyessä ei pitäisi ilmestyä mitään komennon jälkeen.
  7. Asetusten säätö php.ini -tiedosto
  • Versionumero näkyy komennolla: php -v
  • Paljon tietoa saat komennolla: echo phpinfo( );

Päivitys uudempaan versioon[muokkaa]

PHP ei välttämättä toimi uusien skriptien kanssa, koska ne käyttävät uudempaa php-versiota.

  • Asennetaan 7.0 tai joku muu, minkä numeron vaihdat komentoon, esm. 5.6. Tiedosto asentuu hakemistoon /usr/local/php5/ ja luo symlinkin uuteen versioon, jonka voit nähdä esm komennolla readlink /usr/local/php5
  • Testaa asennus phpinfo.php -tiedostolla koska php -v antaa vanhan komentorivillä. Sisällytä phpinfo.php tiedostoon rivi <?php phpinfo();?>
  • Komento ilmeisesti lisää # -merkin rivin eteen LoadModule php5_module libexec/apache2/libphp5.so tiedostoon /etc/apache2/httpd.conf Tämä on muutos edellä kerrottuun, jossa se poistetaan, mutta nyt sen pitää olla siellä, tai muutoin voi ilmetä, että localhost komento ei muodosta yhteyttä eli saat virheilmoituksen ettei palvelimeen saada yhteyttä. Lähde: https://coolestguidesontheplanet.com/upgrade-php-on-osx/
curl -s http://php-osx.liip.ch/install.sh | bash -s 7.0

php.ini -asetukset[muokkaa]

php.ini sisältää asetukset ja se ladataan kun Apache käynnistetään. Joten jos tiedostoon tehdään muokkauksia, on Apache käynnistettävä uudestaan. Tiedosto sijaitsee todennäköisesti /etc hakemistossa nimellä php.ini.default.

  • Vaihtoehtoisesti php 5.3 versiosta lähtien käyttäjä voi muuttaa omia asetuksia .user.ini -tiedostolla. Tiedosto asetetaan sen kansion juureen jossa sen halutaan vaikuttavan. Ei vaadi mitään uudelleen käynnistystä, vaan käytettävän ohjelman sivun päivityksen selaimessa. Esim. jos et voi vieraalla palvelimella muuttaa varsinaista php.ini -tiedostoa ja oletuskellonaika on väärin. Tällöin voit lisätä haluamasi ohjelman, esim. pydio, juurihakemistoon .user.ini -tiedoston ja asetaa php.ini muutokset siihen. Tässä esimerkissä:
date.timezone = "Europe/Helsinki"
date.default_latitude = 60.174306261926034
date.default_longitude = 24.983339309692383
  • php.ini tiedoston hakemistopolun näkee phpinfo() kohdasta Configuration File (php.ini) Path
    • edellisen kohdan alapuolelta näkee myös Loaded Configuration File kohdasta onko php.ini ladattu. php.ini.default tiedostoa ei lueta joten merkintä on (none), mutta php.ini saadaan käyttöön komennolla sudo cp php.ini.default php.ini ja tämän jälkeen Apachen uudelleenkäynnistys ( sudo apachectl restart ). Luodaan siis kopio deaultista ja php.ini.default jää alkuperäiseksi kopioksi.
  • upload_max_filesize Saattaa olla että et oletuksena on enintään 2MT latausmäärä, mikä helposti rajoittaa yhdessä post_max_size kanssa ja antaa virheilmoituksen tuotaessa esimerkiksi MediaWikiin sivuja. Vaihda esim. seuraavasti suurempaan:
    • sudo pico php.ini > ctrl-w > upload_max_filesize > muuta 20M > ctrl-w > post_max_filesize > muuta 20M > ctrl-x > y > paina enter
    • käynnistä Apache uudestaan ( sudo apachectl restart ) ja tarkista phpinfo:sta että on muuttunut. Varo ettet syötä kaksi kertaa MM
  • Yleisiä asetuksia joita säädetään:
memory_limit
upload_max_filesize määrittelle yhden tiedoston maksimikoon. Huomaa että post_max_size pitää olla sama tai suurempi!
post_max_size määrittelee kuinka paljon kerralla saadaan ladattua esim. 10M sallii kolme kpl á3M tiedostoa.
max_execution_time
max_input_time
register_globals
magic_quotes_gpc

PHP moduulit, extensions[muokkaa]

php -m näyttää asennetut moduulit
php -i näyttää moduuleista tarkempaa tietoa
  • Tai aja /phpinfo.php ja selaimen hakutoiminnolla etsi moduulia tai extension_dir hakemistoa.
    • Asennushakemisto extension_dir voi olla esimerkiksi /usr/lib/php/extensions/no-debug-non-zts-20100525
  • Jos haluttua moduulia ei löydy, sitä todennäköisesti ei ole asennettu.

Zend OPcache asennus[muokkaa]

Zend OPcache nopeuttaa PHP-koodin suoritusta välimuistin ja optimoinnin avulla. Tämä tapahtuu kääntämällä etukäteen koodia ja tallentamalla se jaettuun muistiin. Koodia ei tällöin tarvitse joka ikinen kerta ladata kovalevyltä ja kääntää kun sitä pyydetään. OPcache huomaa myös koodin muuttumisen. Etu voi olla 90 %.

  1. php -v
  2. brew search opcache
    1. vastaus on esimerkiksi: homebrew/php/php55-opache Valitse php versiosi mukainen.
  3. brew install homebrew/php/php55-opcache
    1. Katso mihin asennus tapahtui aivan lopusta esm. /usr/local/Cellar/php55-opcache/5.5.28 jolloin osoite on: /usr/local/Cellar/php55-opcache/5.5.28/opcache.so jota tarvitaan myöhemmin.
    2. Kyseisestä kansiosta löydät myös README -tiedoston jossa on asennusohjeet.
  4. Lisää /etc/php.ini tiedoston loppuun seuraavat. Katso Intl kohdasta kuinka sinne lisätään vi-editorilla rivejä. php.ini sisältää ennestään opache -rivejä!
    1. Jos käytössä on ionCube Loader sen tulee olla aiemmilla riveillä kuin OPcache. Ja jos Xdebug on käytössä, sen tulee olla myöhemmin kuin OPcache tiedostossa.
zend_extension = /usr/local/Cellar/php55-opcache/5.5.28/opcache.so

Poista puolipiste seuraavista ja muuta arvot:
opcache.enable_cli=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
  1. sudo apachectl restart
  2. php -v jolloin täytyy näkyä maininta Zend Engine:stä. Näkyy myös phpinfo.php:ssä.

intl ja PEAR asennus[muokkaa]

PEAR is a framework and distribution system for reusable PHP components. Etene otsikoiden järjestyksessä.

1. Homebrew[muokkaa]
  1. Asenna Homewbrew, katso ohje sivu Mac vinkit.
2. PEAR[muokkaa]
https://pear.php.net

PEAR on jakelukanava laadukkaille PHP-skripteille

  • Asennus Mac OSX (Sierra 4/2017)
  1. Testaa onko tietokoneessa jo pear. Pääteohjelmassa anna komento: pear version Jos vastaus on Could not open input file: /usr/lib/php/pearcmd.php sitä ei ole.
  2. Katso myös El Capitan asennus https://coolestguidesontheplanet.com/installing-pear-on-osx-10-11-el-capitan/
  3. curl -O http://pear.php.net/go-pear.phar
  4. sudo php -d detect_unicode=0 go-pear.phar
  5. Asenna ohjeen https://pear.php.net/manual/en/installation.getting.php mukaan.
  6. Asenna PATH jos ei ole automaattisesti asennettu (kts. ohje kohta 2)
  7. Testaa: pear version
  8. PEAR:in php_dir täytyy liittää osaksi PHP:n include-polkua, jotta PHP-skriptissä voidaan kutsua require_once(); eli esim. require_once("Numbers/Roman.php");
    1. Katso tarvittaessa ohje https://pear.php.net/manual/en/installation.checking.php
    2. Selvitä missä PEAR:in php_dir sijaitsee: pear config-get php_dir
      1. esimerkiksi: /usr/local/pear/share/pear
    3. Selvitä missä PHP:n php.ini sijaitsee: php --ini
      1. jos et ole muutellut aiemmin, se on todennäköisesti /etc ja tiedostonimellä php.ini.default
    4. cd /etc ; sudo cp php.ini.default php2.ini
    5. cd /etc ; sudo nano php.ini
      1. ctrl-w ja etsi Paths and Directories
      2. Lisää sen otsikon alle johonkin kohtaan seuraava rivi, joka sisältää edellä php_dir -osoitteen: include_path = ".://usr/local/pear/share/pear/"
      3. ctrlx ja y ja enter
    6. sudo apachectl -k restart
    7. Jos nyt annat komennon: php -c /etc/php.ini -r 'echo get_include_path()."\n";' polku pitäisi olla sama kuin edellä antamasi: .://usr/local/pear/share/pear/
  9. Kirjoita php-tiedosto ja aja se:
<?php
    require_once 'System.php';
    var_dump(class_exists('System', false));
    ?>
  • Jos ei tulostu bool(true), katso tarvittaessa virheistä ohje https://pear.php.net/manual/en/installation.checking.php
    • Katso virheloki: cat /var/log/apache2/error_log
    • esim. PHP Fatal error: require_once(): Failed opening required 'System.php' (include_path='.:/Users/käyttäjänimi/pear/share/pear/') in /Users/käyttäjänimi/Sites/tiedostonimi.php on line 2
  • PEAR:in päivitys: pear upgrade pear
  • PEAR-pakettien päivitys: pear upgrade
  • Asennetut PEAR-paketit: pear list
    • Lisätietoa: pear info asennetunpaketinnimi
  • Paketin asennus: pear install paketinnimi
  • PEAR-asennuksen poistaminen: pear uninstall PHP_CodeSniffer
3. Intl[muokkaa]
  1. brew update
  2. brew search icu
  3. brew install icu4c käytä tässä edellä saamaasi tulosta
    1. Asennus tapahtuu todennäköisesti kohteeseen: /usr/local/Cellar/
  4. sudo pecl update-channels
  5. sudo pecl install intl
    1. Vastaa kysymykseen Specify where ICU libraries and headers can be found [DEFAULT] : osoitteella /usr/local/opt/icu4c/
    2. Jos saat virheilmoituksen ERROR: failed to write /usr/lib/php/extensions/no-debug-non-zts-20100525/intl.so (copy(/usr/lib/php/extensions/no-debug-non-zts-20100525/intl.so): failed to open stream: No such file or directory) asennus ei ole onnistunut.
  6. Lisää /etc/php.ini tiedoston loppuun extension=intl.so
    1. sudo vi /etc/php.ini
      1. paina esc a > esc G > kirjoita extension=intl.so > esc : wq!
    2. sudo apachectl restart
  7. Tarkista että moduuli on rekisteröity: php -m | grep intl jolloin onnistuneen asennuksen vastaus on intl. Lisäksi näet sen phpinfo.php:ssä. Intl.so on hakemistossa /usr/lib/php/extensions/no-debug-non-zts-20100525

Käyttöönotto Lion käyttöjärjestelmässä[muokkaa]

  • PHP 5.3.6 on Lion -käyttöjärjestelmässä valmiina, se pitää vain ottaa käyttöön päätteellä tai tuomalla Finderissa piilotiedostot näkyviin ja muokkaamalla esim. Smultron-ohjelmalla.
  • Avaa tiedosto /private/etc/apache2/httpd.conf
  • Ota käyttöön rivi LoadModule php5_module libexec/apache2/libphp5.so

Lion asennuksen testaus[muokkaa]

  • Tee esimerkiksi TeXturilla tiedosto johon laitat vain <?php phpinfo() ?>
  • Tallena tiedosto nimellä test.php hakemistoon käyttäjänimesi/Sivustot/
  • Avaa Järjestelmäasetukset, sieltä Jako ja rastita Web-jako päälle. Tarvittaessa paina lukkoa ja anna pääkäyttäjän salasana. Nyt klikkaa linkkiä siitä Web-jako -kohdan viereltä Henkilökohtainen verkkosivusto. Avautuu verkkosivusto selaimessa, siirry selaimen osoiteriville ja lisää loppuun test.php Esimerkiksi /~käyttäjä/test.php ja paina enter
  • Nyt pitäisi avautua PHP Version 5.3.6 ja paljon tietoa taulukossa.

Käyttöönotto Windows:ssa[muokkaa]

Käyttöönotto Linuxissa[muokkaa]

Käyttöönotto palvelimella[muokkaa]

PHP-tulkki on usein valmiiksi asennettu kuten myös Apache kaupalliselle palvelimelle. Ne ovat siis suoraan käytettävissä. Palvelin on esimerkiksi Linux tai Windows -pohjainen.

MySQL tietokanta[muokkaa]

Katso PHP ja MySQL