Platform:Netwerk: verschil tussen versies

Uit EekBoek
Naar navigatie springenNaar zoeken springen
Regel 27: Regel 27:
In PostgreSQL moet een "role" aangemaakt worden, dat is een user. Normaal doe je dit op de commandline met het commando "createuser ebuser" (als je een role genaamd "ebuser" wilt aanmaken). Je kunt voor iedere gebruiker een eigen role aanmaken, maar een role kan ook gedeeld worden door meerdere gebruikers. Belangerijk is dat je het commando uitvoert als de administratieve user, normaal is dat de user "postgres". Als dit onduidelijk is, is er meer informatie te vinden in het boven al genoemde bestand "pg_hba.conf". Na uitvoeren van het commando zal gevraagd worden of de nieuwe role een superuser is, nee dus. Dan wordt er gevraagd of de role een database mag aanmaken, daarop moet met "y" worden geantwoord. De laatste vraag is of de role ook zelf nieuwe roles mag aanmaken. Nee, dat is niet nodig. Als het goed is wordt dan de user aangemaakt, als het fout is volgt een foutmelding en was je waarschijnlijk geen administratieve user.
In PostgreSQL moet een "role" aangemaakt worden, dat is een user. Normaal doe je dit op de commandline met het commando "createuser ebuser" (als je een role genaamd "ebuser" wilt aanmaken). Je kunt voor iedere gebruiker een eigen role aanmaken, maar een role kan ook gedeeld worden door meerdere gebruikers. Belangerijk is dat je het commando uitvoert als de administratieve user, normaal is dat de user "postgres". Als dit onduidelijk is, is er meer informatie te vinden in het boven al genoemde bestand "pg_hba.conf". Na uitvoeren van het commando zal gevraagd worden of de nieuwe role een superuser is, nee dus. Dan wordt er gevraagd of de role een database mag aanmaken, daarop moet met "y" worden geantwoord. De laatste vraag is of de role ook zelf nieuwe roles mag aanmaken. Nee, dat is niet nodig. Als het goed is wordt dan de user aangemaakt, als het fout is volgt een foutmelding en was je waarschijnlijk geen administratieve user.


===== Database initiëren =====
===== Database aanmaken =====


Alhoewel het niet persee nodig is, is het handig op de server ook Eekboek te installeren om de database te initieren. Wellicht kan dit ook vanaf een client, maar dit is nog niet goed getest. Uiteraard hoeft er geen grafische client op de server. Hoe het installeren van de client gaat is beschreven in verschillende handleidingen per platform, dus dat wou ik hier niet nogmaals gaan doen. In de wizzard geef je aan een nieuwe database te willen maken van het type "postgresql". Bij heel nieuwe versies van Eekboek (na versie 2.00.02) kun je dan gelijk invullen met welke server je wilt connecten en met welke user (role) en welke poort. Er zal dan automatisch een database worden aangemaakt.
Alhoewel het niet persee nodig is, is het handig op de server ook Eekboek te installeren om de database aan te maken. Wellicht kan dit ook vanaf een client, maar dit is nog niet goed getest. Uiteraard hoeft er geen grafische client op de server. Hoe het installeren van de client gaat is beschreven in verschillende handleidingen per platform, dus dat wou ik hier niet nogmaals gaan doen. In de wizzard geef je aan een nieuwe database te willen maken van het type "postgresql". Bij heel nieuwe versies van Eekboek (na versie 2.00.02) kun je dan gelijk invullen met welke server je wilt connecten en met welke user (role) en welke poort. Er zal dan automatisch een database worden aangemaakt.


Bij oudere versies van Eekboek kan er in de wizzard geen hostname, username, paswoord en poort worden ingevuld en zal er een foutmelding volgen bij het aanmaken van de database. Hier moeten de gegevens met de hand in het configfile worden gezet. Normaal worden de configfiles opgeslagen in een directory ~/.eekboek/admdir/naam/eekboek.conf (zoek eventueel op "admdir"). Hierin moet dan iets dergelijks komen te staan:
Bij oudere versies van Eekboek kan er in de wizzard geen hostname, username, paswoord en poort worden ingevuld en zal er een foutmelding volgen bij het aanmaken van de database. Hier moeten de gegevens met de hand in het configfile worden gezet. Normaal worden de configfiles opgeslagen in een directory ~/.eekboek/admdir/naam/eekboek.conf (zoek eventueel op "admdir"). Hierin moet dan iets dergelijks komen te staan:

Versie van 10 jan 2011 20:53

Inleiding

Deze handleiding gaat over de netwerkinstallatie van Eekboek. Op het moment kan dat alleen met de PostgreSQL database. Bij de installatie van de client wordt er wat algemeens verteld over de netwerkintstallatie en verder verwezen naar de verschillende platformen.

Deze manual is nog in ontwikkeling, en zeker nog niet perfect. Het installeren van PostgreSQL is niet heel eenvoudig. Kritiek en succesverhalen zijn welkom op paul@vandervlis.nl.

Server

Bij installatie in een netwerk is er een server en zijn er 1 of meerdere clients. Als server dient zogezegd PostgreSQL. PostgreSQL 8.3 en later is bruikbaar, waarschijnlijk wat oudere versies ook al maar precies weet ik dit niet. PostgreSQL is een database met veel mogelijkheden waarover complete boeken vol zijn geschreven, mijn verhaal blijft daarom enigsinds beperkt. PostgreSQL wordt niet standaard bij Eekboek geleverd, maar het zit wel in de meeste Linux distributies en voor de meeste andere platformen is het gratis te downloaden via http://www.postgresql.org/ (er zijn Windows, Mac, Linux, FreeBSD en Solaris versies).

Ik ga het nu allereerst over een paar configuratiebestanden hebben. Deze staan op ieder platform weer ergens anders. Vaak is het het handigste er even naar te zoeken.

pg_hba.conf

Een belangerijk bestand in PostgreSQL is pg_hba.conf, hier dient het netwerk toegang te krijgen tot de database, voorbeeldregel: "host all all all md5". Hiermee vertel je dat iedereen via het netwerk mag inloggen op alle databases mits er een juiste username en paswoord bekend is. Meer informatie is hier te vinden: http://www.postgresql.org/docs/8.4/interactive/auth-pg-hba-conf.html

postgresql.conf

Een ander belangerijk bestand is postgresql.conf. Ik raad je aan in dit bestand te zoeken naar "listen_addresses". Vaak is dit namelijk "localhost", of is het default "localhost" en dat gaat niet werken via het netwerk. Ik raad je hier aan er "listen_addresses = '*'" van te maken, wat betekent dat je van overal kunt aanmelden. Maar uiteraard kun je het doen zoals je wilt, meer informatie is hier te vinden: http://www.postgresql.org/docs/8.4/interactive/config-setting.html

firewall

Op de meeste servers zit tegenwoordig een firewall. PostgreSQL draait normaal op 5432 TCP en deze poort moet worden opengezet zodat de clients bij deze poort kunnen. De configuratie van de firewall is vergelijkbaar met die van een webserver, alleen is de poort dus anders.

Database role aanmaken

In PostgreSQL moet een "role" aangemaakt worden, dat is een user. Normaal doe je dit op de commandline met het commando "createuser ebuser" (als je een role genaamd "ebuser" wilt aanmaken). Je kunt voor iedere gebruiker een eigen role aanmaken, maar een role kan ook gedeeld worden door meerdere gebruikers. Belangerijk is dat je het commando uitvoert als de administratieve user, normaal is dat de user "postgres". Als dit onduidelijk is, is er meer informatie te vinden in het boven al genoemde bestand "pg_hba.conf". Na uitvoeren van het commando zal gevraagd worden of de nieuwe role een superuser is, nee dus. Dan wordt er gevraagd of de role een database mag aanmaken, daarop moet met "y" worden geantwoord. De laatste vraag is of de role ook zelf nieuwe roles mag aanmaken. Nee, dat is niet nodig. Als het goed is wordt dan de user aangemaakt, als het fout is volgt een foutmelding en was je waarschijnlijk geen administratieve user.

Database aanmaken

Alhoewel het niet persee nodig is, is het handig op de server ook Eekboek te installeren om de database aan te maken. Wellicht kan dit ook vanaf een client, maar dit is nog niet goed getest. Uiteraard hoeft er geen grafische client op de server. Hoe het installeren van de client gaat is beschreven in verschillende handleidingen per platform, dus dat wou ik hier niet nogmaals gaan doen. In de wizzard geef je aan een nieuwe database te willen maken van het type "postgresql". Bij heel nieuwe versies van Eekboek (na versie 2.00.02) kun je dan gelijk invullen met welke server je wilt connecten en met welke user (role) en welke poort. Er zal dan automatisch een database worden aangemaakt.

Bij oudere versies van Eekboek kan er in de wizzard geen hostname, username, paswoord en poort worden ingevuld en zal er een foutmelding volgen bij het aanmaken van de database. Hier moeten de gegevens met de hand in het configfile worden gezet. Normaal worden de configfiles opgeslagen in een directory ~/.eekboek/admdir/naam/eekboek.conf (zoek eventueel op "admdir"). Hierin moet dan iets dergelijks komen te staan:

[database]
name       = boekhouding_2010
driver     = postgres
host       = localhost
port       = 5432
user       = ebuser
password   = eekboek

Hierna kan de database vanuit deze directory op de commandline worden aangemaakt met:

ebshell --init

Client

Het is een goed idee om vanaf een client PC eerst te testen of de server te bereiken is op poort 5432. Ik doe dat normaal door op de commandline het commando "telnet 1.2.3.4 5432" te geven. Uiteraard moet je in plaats van "1.2.3.4" het correcte IP adres of de correcte naam van de server opgeven. Mocht de poort niet te bereiken zijn, ga dan nog eens naar de configuratie van de server kijken.

Client installatie (eenvoudig)

Deze allinea is alleen bestemd voor een erg actule GUI versie van Eekboek. In de wizzard kies je voor een nieuwe boekhouding. Wat voor boekhouding je kiest is verder niet erg van belang. Je kiest postgresql. Als het goed is wordt je om je username, paswoord, hostname en dergelijke gevraagd, die vul je in. Mocht dit niet gevraagd worden dan werk je nog met de oude versie en moet je de moeilijke installatie doen. Dan komt er als laatste een overzichtpagina met een overzicht wat er gaat gebeuren. Daar vink je alles uit behalve "configuratiebestand", en dan ga je verder. Er wordt nu een configuratiebestand aangemaakt maar geen database.

Client installatie (moeilijk)

Deze methode kies je als je op de commandline werkt of als je niet beschikt over een nieuwe versie van Eekboek. In de wizzard kies je voor een nieuwe boekhouding. Wat voor boekhouding je kiest is verder niet erg van belang. Je kiest geen postgresql maar sqlite en maakt de wizzard verder af, er wordt dus een sqlite boekhouding aangemaakt. Nu ga je naar de directory waarin de boekhouding staat (zie "Database initiëren") en je wist daar alle bestanden behalve eekboek.conf, wat je gaat aanpassen. Doe dit op dezelfde manier als bij "Database initiëren". Uiteraard hoeft er nu geen database te worden aangemaakt.

Resultaat

Het resultaat is een boekhouding waar verschillende mensen tegelijk op kunnen werken.