[Päivitetty 5.3.2019]

12 . Web-sovelluksia

Tähän lukuun on koottu (kootaan) lähinnä Linux/Apache/PHP-työkaluin toteutettuja Web-sovelluksia. Tällaiset Web-ympäristössä HTTP-prokollan välityksellä toimivat asiakas-palvelin-malliin perustuvat Web-sovellukset tarvitsevat toimiakseen tyypillisesti (suluissa tässä luvussa käytetyt ohjelmistot):
  1. Toimivan TCP/IP-verkon, jonka avulla asiakasohjelma voi käyttää palvelimella suoritettavaa Web-sovellusta
  2. Web-selaimen asiakasohjelmana (Vapaavalintainen)
  3. Palvelinkäyttöjärjestelmän (Linux)
  4. Web-palvelinohjelmiston (Apache)
  5. Palvelintekniikkaa, jolla Web-dokumentteja voidaan tuottaa ohjelmoimalla dynaamisesti (PHP)
  6. Usein tarvitaan myös relaatiotietokannan hallintajärjestelmää (PostgreSQL tai MySQL) tietojen varastointiin.
  7. Muita palvelinohjelmistoja käytetään tarpeen mukaan: Postipalvelin (MTA), NNTP-palvelin, ...
Tällaisia Web-sovelluksia voidaan käyttää lukuisiin erilaisiin käyttötarkoituksiin osana minkä tahansa organisaation tietojärjestelmää. Sovellusalueesta ja näkökulmasta riippuen voidaan puhua Internet-, Extranet- tai Intranet-sovelluksista, Web-pohjaisista työryhmäohjelmistoista, portaaliohjelmistoista jne.

Kaikkien em. Web-sovellusten keskeisenä ideana on tarjota yhtenäinen Web-selaimeen rakennettava käyttöliittymä erilaisiin informaatiopalveluhin.


-




Joomla!: http://joomla.org/

Vaadittava alusta (LAMP)

  • Toimiva käynnissä oleva WWW-palvelin (esim. Apache)
  • Toimiva PHP
  • Toimiva käynnissä oleva MySQL-tietokantapalvelin
  • Olemassaoleva tietokantapalvelimen käyttäjätunnus, jolla oikeudet luoda uusia tietokantoja (tkuser?)

Asennus

Asennuksen aloitus Linuxin komentotulkissa tavallisena tunnus-nimisenä käyttäjänä.:

Luodaan t a r vi t t a e s s a joomladb -niminen tietokanta:
mysqladmin -u tunnus -p create joomladb
Enter password:
Huom1: tunnus tarkoittaa tietokantapalvelimen tunnus-nimistä käyttäjää, joten salasanakin tulee olla tietokantakäyttäjän tunnus salasana.

mkdir ~/public_html/joomla
cd ~/public_html/joomla
wget https://downloads.joomla.org/cms/joomla3/3-8-5/Joomla_3-8-5-Stable-Full_Package.zip
(tai: wget http://student.labranet.jamk.fi/~ara/ftp/Joomla_3-8-5-Stable-Full_Package.zip
unzip Joomla_3-8-5-Stable-Full_Package.zip
chmod -R 777 ~/public_html/joomla/

Asennus jatkuu Web-selaimella osoitteessa:
  • http://mun.ip.osoite/~tunnus/joomla

Valitse esim. seuraavia parametreja:
1 Congiguration:


Site Name: Testiportaali

Email: testi@localhost.fi
Useename: admin
Password: sala

Site Offline: No


2 Database


MySQLi
Host Name: localhost
Username: tkuser
Password: sala

Database Name: joomladb


3 Overview

Install Sample Data [X] None (Required for basic native multilingual site creation)


->[INSTALL]
Se oli siinä!

=> Pyytää poistamaan asennushakemiston:
=> Voit napsauttaa: Remove Installation folder -painiketta

Tai tarvittaessa voit uudelleennimetä ao. hakemiston:
cd ~/public_html/joomla
mv installation/ installation_rm
ja ladataan aloitussivu uudelleen osoitteesta:
  • http://mun.ip.osoite/~tunnus/joomla

Administrator - perusjutut

Osoite: http://mun-palvelin.ip/~tunnus/joomla/administrator/
  • Kirjaudu: admin/sala

Pääkäyttäjän päävalikko

      System / Control Panel

Sisällön hallinta

  • Julkaistava perusyksikkö: Artikkeli
  • Artikkeleiden lisäksi mm. syötteitä, äänestyksiä, linkkikokoelmia, mainoksia, valikkoja
  • Artikkelit ryhmitellään puurakenteen mukaisiin kategorioihin

  • Valitse: Content / Categories / Add New Category
    • Title: Suomen Uutiset
    • Parent: no parent
    • Description: Uutisia Suomesta Lorem Ipsum Lorem Ipsum ...
    • Muut kohdat: oletusasetuksin.
    • => Save
    • => Save and Close
  • Valitse: Content / Categories / Add New Category
    • Title: Jyväskylän uutiset
    • Parent: Suomen uutiset
    • Kuvaus: Uutisia Jyväskylästä Lorem Ipsum Lorem Ipsum ...
    • Muut kohdat: oletusasetuksin.
    • => Save
    • => Save and Close

  • Valitse: Content / Articles / Add New Article
    • Title: Räntää räntää
    • Category: Jyväskylän uutiset
    • Featured: Yes  (Näytetään etusivulla)
    • Content: Nyt sitä taas saadaan, yllättäen ja pyytämättä - räntää nimittäin. Lorem Ipsum Lorem Ipsum ...
      • Huom: Read more -toiminnolla voit jakaa artkkelisi osiin. Ennen ensimmäistä Read more -katkoa sijaitseva teksti toimii jutun johdantona eli ingressinä.
    • Muut kohdat: oletusasetuksin.
    • => Save
    • => Save and Close
  • Valitse: Content / Articles / Add New Article
    • Title: Lunta Lunta
    • Category: Jyväskylän uutiset
    • Featured: Yes  (Näytetään etusivulla)
    • Content: Nyt sitä taas saadaan, yllättäen ja pyytämättä - lunta nimittäin. Lorem Ipsum Lorem Ipsum ...
    • Muut kohdat: oletusasetuksin.
    • => Save
    • => Save and Close
  • Käy katsomassa ja toteamassa muutokset kirjautumattomana käyttäjänä etusivulla (mieluiten toisella selaimella).

Sivuston layoutin muuttaminen sivupohjilla (template)

Asennettuja sivupohjia valitaan toiminnolla
  • Extensions / Templates / Templates
  • Huomaa, että (julkiselle) sivustolle (Site) ja ylläpidolle (Administrator) valitaan teema erikseen!
    • Kokeile sivuston oletusmallipohjaksi myös Beez3-pohjaa!

Uuden sivupohjan (template) asentaminen
Huom: Ota protostar-sivupohja käyttöön takaisin seuraavien asioiden testaamisen ajaksi!

Valikot

Valikot ovat moduuleja, joiden tarkoituksena on tarjota käyttäjille navigointimahdolllisuuksia sivustolla. Asennuksen jälkeen on olemassa ainoastaan Main Menu -valikko, jossa on Home-nimike.

  • Valikko: Sisältää 1) valikon nimen ja 2) valikon nimikkeet
  • Valikon tyyppi: Yksilöllinen Joomlan sisäinen nimi valikolla (ei voi olla kahta samannimistä) esim. resurssit-valikko
  • Valikon nimikkeet (linkit) viittaavat: yksittäisiin artikkeleihin, artikkeliryhmiin tai sivuston ulkopuolisiin kohteisiin
  • Luotuun valikkoon on siis erikseen lisättävä valikkokohdat (valikon nimikkeet)
  • Jotta valikko näkyisi sivustolla, on sitä varten erikseen luotava Moduuli Moduulien hallinnassa ja lisäksi ao. Moduuli on julkaistava. Lisäksi on varmistettava, että Moduulin Asema on sellainen, joka on käytössä voimassa olevassa sivupohjassa.
  • Valikkoja käsitellään: Sivusto / Ohjauspaneeli/ Valikoiden hallinta

Lisätään Main Menu -valikkoon CSM-ylläpito -linkki
    • Menus / Main Menu
    • Menu Items
    • Menu: Main Menu
    • + New
    • Menu Title: CMS - Ylläpito
    • Menu Item Type: System Links / URL
    • Linkki: http://mun.palvelimen.ip/~testi/joomla/administrator/
    • Muut valinnat: Oletusasetuksin
    • Save & Close
    • Testaa Sivuston puolella
    • Lopputulos: Saatiin lisättyä olemassa olevan moduulin valikkoon uusi linkki

Lisätään Oleelliset -menu ja sinne CSM-ylläpito -linkki
  • Menus / Manage / Add New Menu
  • Title: Oleelliset
  • Menu Type: oleelliset
  • Save & Close
  • Menus / Oleelliset / Add New Menu Item
    • Menu Title: CMS - Ylläpito
    • Alias:  cms-yllaepito2
    • Menu Item Type: System Links / URL
    • Linkki: http://mun.palvelimen.ip/~testi/joomla/administrator/
    • Muut valinnat: Oletusasetuksin
    • Save & Close
  • Menus / Oleelliset / Add New Menu Item
    • Menu Item Type: Articles / List All Categories
    • Title: Kaikki kategoriat
    • Alias: kaikki_kategoriat
    • Linkki: oletusarvo (index.php?option=com_content&view=categories)
    • Muut valinnat: Oletusasetuksin
    • Save & Close
  • Menus / Oleelliset / Add New Menu Item
      • Menu Item Type: Articles / Category List
      • Title: Jyväskylän uutiset
      • Choose a Category: Jyväskylän uutiset
      • Linkki: oletusarvo (index.php?option=com_content&view=category)
      • Muut valinnat: Oletusasetuksin
      • Save & Close
  • Extensions / Modules
    • + New
    • Select a Module Type: Menu
      • Title: Oleelliset
      • Select Menu: Oleelliset
      • Position: Protostar/Banner (ei todellakaan optimaalisin sijainti, mutta tätä kautta ymmärtää kuinkla
    • Save & Close
    • Testaa Sivuston puolella

Joomlan moduulit

Sivusto / Ohjauspaneeli/ Moduulien hallinta

Moduuleja käytetään sivustolla näyttämään erilaista sisältöä sekä mediaa. Valikoilla on oltava aina moduuli, joka määrittää missä kohdassa sivua valikko näytetään.

Moduulin asema määrää missä paikassa sivulla moduuli näytetään. Asemat ovat erilaisia moduulipaikkoja, jotka on määritelty sivupohjassa.

Tärkeää: Jos moduulille merkittyä aseman nimeä esim. "position-7" ei ole ao. sivupohjassa, niin moduulia ei ao. tapauksessa näytetä.

Käyttäjien hallinta / Alkeet

  • Sivustolla voi olla useita ylläpitäjiä: vastuut jaetaan käyttäjienhallinnalla (Users/Manage)
    • Julkisen ylläpidon ylläpitoryhmiä ovat mm.
      • Pääylläpitäjä (admin): rajoittamattomat oikeudet
      • Ylläpitäjä/Administrator-ryhmä: Voivat mm. lisätä uusia käyttäjiä
      • Manageri-ryhmä: Oikeus julkaista ja ryhmitellä sisältöä sekä hallita mediatiedostoja

    • Julkisen sivuston rekisteröityneitä ryhmiä ovat mm.
      • Kirjoittaja/Author: Tuottaa sisältöä, joku toinen (julkaisija) hyväksyy
      • Editoija/Editor: Voi julkaista, mutta myös muokata muiden artikkeleita
      • Julkaisija/Publisher: Edellisten lisäksi voivat hyväksyä toisten kirjoituksia

  • Kirjaudu uudelleen admin-käyttäjänä ja lisää järjestelmään 1) Julkaisija-tason käyttäjä  tavis ja 2) Manageri-tason käyttäjä manageri.
  • Testaa voiko edellä luomasi käyttäjänä tavis kirjoittaa uuden jutun Suomen uutiset/Jyväskylän uutiset -kategoriaan? Pitäisi pystyä. (Pitää kirjautua julkisen sivuston kautta ja valita Submit an Article / Luo artikkeli)
  • Testaa voiko edellä luomasi käyttäjänä manageri kirjoittaa uuden jutun Suomen uutiset/Jyväskylän uutiset -kategoriaan? Pitäisi pystyä.

OsCommerce

OsCommerce http://www.oscommerce.com/ on kauppapaikkasovellus erityisesti Webissä toteutettavaa verkkokauppaa varten.

Yleisiä asioita verkkokauppoista

Ennen verkkokaupan perustamista lienee hyvä tutustua kuluttajaviraston verkkokauppiaan ohjeeseen:
http://www.kuluttajavirasto.fi/fi-FI/yritykselle/verkkokauppa/

Vaatimukset

  • Apache toimintakunnossa
  • PHP toimintakunnossa
    • php5-mysql -paketti asennettuna
  • MySQL toimintakunnossa (ks. esim Joomlan asennuksesta)

Asennus

Asennuksen aloitus Linuxin komentotulkissa tavallisena tunnus-nimisenä käyttäjänä.

Hakeminen ja purkaminen

sudo su -
cd /tmp
unzip /home/testi/Downloads/oscommerce-2.3.4.1.zip

Kopioidaan tarvittavat tiedostot asentamista varten


mkdir ~/public_html/kauppa
cd ~/public_html/kauppa
cp -a /tmp/oscommerce-2.3.4.1/catalog/* ~/public_html/kauppa
ja annetaan asennusohjelman muokata konfigurointitiedostoja:
chmod 777 ~/public_html/kauppa/includes/configure.php
chmod 777 ~/public_html/kauppa/admin/includes/configure.php
Em. asetukset pitää ainakin tuotantokäytössä muuttaa asennuksen jälkeen tietorurvasyistä esim. "644-suojatuiksi". Tästä OSC toki muistutteleekin käyttäjää.

Mahdollinen pääkäyttäjän asennusosio

Katsotaan Web-pohjaisen asennuksen "puutelista" osoiteesta: http://mun.ip.osoite/~tunnus/kauppa.Tarvittaessa pyydä palvelimesi ylläpitäjää asentamaan mahdolliset puuttuvat ohjelmistopaketit. Mahdollisia puutteita:

  • php-gd curl php-curl (tai mahdollisesti php5-gd curl php5-curl)
  • Web-palvelimen uudelleenkäynnistys: sudo service apache2 restart

Luodaan tietokanta

mysqladmin -u tunnus -p create oscommerce_db

Loppuasennus Web-pohjaisena

  • Ladataan sivu uudelleen osoitteesta: http://mun.ip.osoite/kauppa
  • Start
  • New Installation:
    • Database Server: localhost
    • Username: tkuser
    • Passsword: sala
    • Database Name: tunnus_catalogdb
  • Web Server:
    • WWW Address: http://mun.ip.osoite/~tunnus/kauppa/
    • Webserver Root Directory: /home/tunnus/public_html/kauppa/
  • Online Store Settings
    • Store Name: Arin store
    • Store Owner Name: Ari Rantala
    • Store Owner E-Mail Address: testi@localhost
    • Administrator Username: admin
    • Administrator Password: sala
    • Administration Directory Name: admin
    • Time Zone: Helsinki
  • Finished:
    • Asennuksen lopuksi voidaan tarkastella Online Store-painikkeella asennetun kauppapaikan oletusarvoista sisältöä tai siirtyä konfiguroimaan sovellusta Administration Tool -painikkeella.

HUOMAA Post-Installations Notes -ilmoitukset:

  1. Delete the /home/testi/public_html/kauppa/install directory.
  2. Rename the Administration Tool directory located at /home/testi/public_html/kauppa/admin.
  3. Set the permissions on /home/testi/public_html/kauppa/includes/configure.php to 644 (or 444 if this file is still writable).
  4. Set the permissions on /home/testi/public_html/kauppa/admin/includes/configure.php to 644 (or 444 if this file is still writable).
  5. Review the directory permissions on the Administration Tool -> Tools -> Security Directory Permissions page.
  6. The Administration Tool should be further protected using htaccess/htpasswd and can be set-up within the Configuration -> Administrators page.

Kuvat ei näy OsCommercen 2.3.4.1-versiossa?

  • OsCommercen 2.3.4.1 joissakin asennuksissa myytävien tuotteiden kuvat eivät näy oletusarvoisesti, ratkaisu:

Poista images-kansion .htaccess-tiedoston hakemistolistauksen kieltävä Options -Indexes -rivi:

sudo nano ~/public_html/kauppa/images/.htaccess
.htaccess-tiedosto:
# $Id$
#
# This is used to restrict access to this folder to anything other
# than images

# Prevents any script files from being accessed from the images folder
<FilesMatch "\.(php([0-9]|s)?|s?p?html|cgi|pl|exe)$">
Order Deny,Allow
Deny from all
</FilesMatch>

Options -Indexes # <----- Tämä rivi pois kokonaan (tai kommentoi pois)

OsCommerce: Hajahuomioita

  • Kauppapaikan sisällön selailu: http://mun.ip.osoite/~tunnus/kauppa/index.php
  • Kauppapaikan ylläpito: http://mun.ip.osoite/~tunnus/kauppa/admin/index.php
    • Ylläpito-osio olisi hyvä suojata aluksi vähintään HTTP Basic Authentication -menetelmällä (esim .htaccess-tiedostolla)
    • Ylläpito-osion käyttö olisi syytä sallia vain sellaisista verkkoalueista, joista sitä todella tarvitsee käyttää
    • Ylläpito-osion käyttö tulisi sallia ainoastaan salattuja yhteyksiä käyttäen (https)