Installera Roundcube och PostgreSQL i FreeBSD: Difference between revisions

From Peters wiki
Jump to navigation Jump to search
mNo edit summary
 
(10 intermediate revisions by the same user not shown)
Line 1: Line 1:
Denna guide visar hur man installerar Roundcube webmail och PostgreSQL FreeBSD 8.0. Guiden förutsätter att det redan finns en fungerande SMTP resp. IMAP server samt en webserver med PHP stöd. Guiden kommer inte att visa hur man skapar en adressbok i LDAP, utan efter denna installation kan man lagra sin adressbok i databasen.
Denna guide visar hur man installerar Roundcube webmail och PostgreSQL i FreeBSD 8.0. Guiden förutsätter att det redan finns en fungerande SMTP resp. IMAP server samt en webserver med PHP5 stöd. Guiden kommer inte att visa hur man skapar en adressbok i LDAP, utan efter denna installation kan man lagra sin adressbok i databasen.


Guiden använder portmaster för installation och konfigrurering av ports. Det går dock bra att köra vanliga make install etc. om man hellre vill det.
Guiden använder portmaster för installation och konfigrurering av ports. Det går dock bra att köra vanliga make install etc. om man hellre vill det.
Line 5: Line 5:
== Installera PostgreSQL ==
== Installera PostgreSQL ==
Installera PostgreSQL servern:
Installera PostgreSQL servern:
{{Box Kommando | portmaster /usr/ports/databases/postgresql84-server | }}
{{RootCmd|portmaster /usr/ports/databases/postgresql84-server}}
Även PostgreSQL klienten kommer att installeras. Välj default konfiguration. Editera rc.conf så att servern startas vid boot:
Även PostgreSQL klienten kommer att installeras. Välj default konfiguration. Editera /etc/rc.conf så att servern startas vid boot:
{{Box Fil | Lägg till följande i /etc/rc.conf |
{{bc|1=
<pre>
postgresql_enable="YES"
postgresql_enable="YES"
</pre>
}}
}}
FreeBSD kör default med UTF-8 för PostgreSQL databaser, så man kan direkt initiera servern:
FreeBSD kör default med UTF-8 för PostgreSQL databaser, så man kan direkt initiera servern:
{{Box Kommando | /usr/local/etc/rc.d/postgresql initdb |
{{RootCmd|/usr/local/etc/rc.d/postgresql initdb|output=The files belonging to this database system will be owned by user "pgsql".<br>
<pre>
This user must also own the server process.<br>
The files belonging to this database system will be owned by user "pgsql".
<br>
This user must also own the server process.
The database cluster will be initialized with locale C.<br>
 
...<br>
The database cluster will be initialized with locale C.
Success. You can now start the database server using:<br>
...
/usr/local/bin/postgres -D /usr/local/pgsql/data<br>
Success. You can now start the database server using:
or<br>
  /usr/local/bin/postgres -D /usr/local/pgsql/data
/usr/local/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start
or
  /usr/local/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start
</pre>
}}
}}


När initieringen är klar, är det dax att starta servern:
När initieringen är klar, är det dax att starta servern:
{{Box Kommando | /usr/local/etc/rc.d/postgresql start | }}
{{RootCmd|/usr/local/etc/rc.d/postgresql start}}


=== Skapa en databas-användare och databas ===
=== Skapa en databas-användare och databas ===
För att kunna köra PostgreSQL kommandona createuser & createdb, måste man ha rättighet att göra det. Direkt efter installationen är det bara användaren pgsql som har rättighet. Så byt till denna användare:
För att kunna köra PostgreSQL kommandona createuser & createdb, måste man ha rättighet att göra det. Direkt efter installationen är det bara användaren pgsql som har rättighet. Så byt till denna användare:
{{Box Kommando | su pgsql | }}
{{RootCmd|su pgsql}}
Skapa en PostgreSQL-användare som inte kan skapa databaser (-D) eller andra roller (-R) och som inte är superuser (-S) och sätt ett lösenord (-P):
Skapa en PostgreSQL-användare som inte kan skapa databaser (-D) eller andra roller (-R) och som inte är superuser (-S) och sätt ett lösenord (-P):
{{Box Kommando | createuser -DRSP <username> |
{{RootCmd|createuser -DRSP <username>|output=Enter password for new role:<br>
<pre>
Enter password for new role:
Enter it again:
Enter it again:
</pre>
}}
}}
Skapa sedan en database som heter roundcube och som ägs av dbuser, character encoding sätter vi försäkerhetsskull till UTF-8:
Skapa sedan en database som heter roundcube och som ägs av <username>, character encoding sätter vi försäkerhetsskull till UTF-8:
{{Box Kommando | createdb -O <username> roundcube -E utf-8 |}}
{{RootCmd|createdb -O <username> -E utf-8 roundcube}}
Logga nu ut som pgsql användaren:
Logga nu ut som pgsql användaren:
{{Box Kommando | exit |}}
{{RootCmd|exit}}


== Installera Roundcube ==
== Installera Roundcube ==
Roundcube kan installeras från ports, men webapplikationer kan lika gärna installeras för hand. Man får bättre kontroll då och kan enkelt följa deras installationsanvisningar. Vi väljer att installera manuellt. Ladda ner det kompletta roundcube-0.3.1 paketet ifrån http://roundcube.net/download.
Roundcube kan installeras från ports, men webapplikationer kan lika gärna installeras för hand. Man får bättre kontroll då och kan enkelt följa deras installationsanvisningar. Vi väljer att installera manuellt. Ladda ner det kompletta roundcube-0.3.1 paketet ifrån http://roundcube.net/download.


Gå till din webroot, t.ex. /usr/local/www/apache22/data och packa upp roundcube-0.3.1 här. Då får då en mapp som heter roundcubemail-0.3.1. Jag tycker namnet är lite lång så jag brukar döpa om mappen till roundcube-0.3.1. Filerna kan ibland ha lite konstiga ägare så börja med att försäkra dig att root äger alla filer:
Gå till din webroot, t.ex. {{ic|/usr/local/www/apache22/data}} och packa upp roundcube-0.3.1 här. Då får då en mapp som heter roundcubemail-0.3.1. Jag tycker namnet är lite lång så jag brukar döpa om mappen till roundcube-0.3.1. Filerna kan ibland ha lite konstiga ägare så börja med att försäkra dig att root äger alla filer:
{{Box Kommando | chown -R root:wheel roundcube-0.3.1 | }}
{{RootCmd|chown -R root:wheel roundcube-0.3.1}}
För i framtiden kunna enklare uppgradera till en annan version, skapa en länk:
För i framtiden kunna enklare uppgradera till en annan version, skapa en länk:
{{Box Kommando | ln -s roundcube-0.3.1 roundcube | }}
{{RootCmd|ln -s roundcube-0.3.1 roundcube}}
och använd sökvägen roundcube vid installatationen.
och använd sökvägen roundcube vid installatationen.


Byt till roundcube katalogen och fixa så att webservern kan skriva till katalogerna temp och logs:
Byt till roundcube katalogen och fixa så att webservern kan skriva till katalogerna temp och logs:
{{Box Kommando | chown www temp logs | }}
{{RootCmd|chown www temp logs}}


Om du har en default PHP installation så behöver några extensions installeras. Kör:
Om du har en default PHP5 installation så behöver några extensions installeras. Kör:
{{Box Kommando | portmaster --force-config /usr/ports/lang/php5-extensions | }}
{{RootCmd|portmaster --force-config /usr/ports/lang/php5-extensions}}
och installera:
och installera:
* FILEINFO
* FILEINFO
Line 72: Line 66:
[[Image:roundcube-1.png]]
[[Image:roundcube-1.png]]


Får du NOK på date.timezone, editera php.ini och lägg till:
Får du NOK på date.timezone, editera /usr/local/etc/php.ini och lägg till:
{{Box Fil | /usr/local/etc/php.ini|
{{bc|1=
<pre>
date.timezone = Europe/Stockholm
date.timezone = Europe/Stockholm
</pre>
}}
}}


Line 89: Line 81:
Välj att ladda ner db.inc.php och main.inc.php. Ladda upp dessa filer till servern och lägg dem under config katalogen. Eftersom db.inc.php innehåller användarnamn och lösenord till databasen, så bör den skyddas. Ändra ägare och rättighet till följande:
Välj att ladda ner db.inc.php och main.inc.php. Ladda upp dessa filer till servern och lägg dem under config katalogen. Eftersom db.inc.php innehåller användarnamn och lösenord till databasen, så bör den skyddas. Ändra ägare och rättighet till följande:


<tt>-rw-r-----  1 root  www    2334 Dec 27 01:36 db.inc.php</tt>
{{bc|1=
-rw-r-----  1 root  www    2334 Dec 27 01:36 db.inc.php
}}


Nu kan bara root editera den och gruppen www läsa den. När filerna är på plats, klicka på Continue knappen. Du kommer då få ett meddelande att databasen inte är initierad:
Nu kan bara root editera den och gruppen www läsa den. När filerna är på plats, klicka på Continue knappen. Du kommer då få ett meddelande att databasen inte är initierad:
Line 99: Line 93:
Installationen är klar och innan du provar att logga in, så ska installer katalogen under roundcube raderas. Efter det är gjort, gå till sidan http://server-ip/roundcube/ och prova att logga in med ditt IMAP konto.
Installationen är klar och innan du provar att logga in, så ska installer katalogen under roundcube raderas. Efter det är gjort, gå till sidan http://server-ip/roundcube/ och prova att logga in med ditt IMAP konto.


[[Category:FreeBSD]]
[[Category:Guide]]

Latest revision as of 11:56, 21 April 2013

Denna guide visar hur man installerar Roundcube webmail och PostgreSQL i FreeBSD 8.0. Guiden förutsätter att det redan finns en fungerande SMTP resp. IMAP server samt en webserver med PHP5 stöd. Guiden kommer inte att visa hur man skapar en adressbok i LDAP, utan efter denna installation kan man lagra sin adressbok i databasen.

Guiden använder portmaster för installation och konfigrurering av ports. Det går dock bra att köra vanliga make install etc. om man hellre vill det.

Installera PostgreSQL

Installera PostgreSQL servern:

root # portmaster /usr/ports/databases/postgresql84-server

Även PostgreSQL klienten kommer att installeras. Välj default konfiguration. Editera /etc/rc.conf så att servern startas vid boot:

postgresql_enable="YES"

FreeBSD kör default med UTF-8 för PostgreSQL databaser, så man kan direkt initiera servern:

root # /usr/local/etc/rc.d/postgresql initdb
The files belonging to this database system will be owned by user "pgsql".

This user must also own the server process.

The database cluster will be initialized with locale C.
...
Success. You can now start the database server using:
/usr/local/bin/postgres -D /usr/local/pgsql/data
or

/usr/local/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start

När initieringen är klar, är det dax att starta servern:

root # /usr/local/etc/rc.d/postgresql start

Skapa en databas-användare och databas

För att kunna köra PostgreSQL kommandona createuser & createdb, måste man ha rättighet att göra det. Direkt efter installationen är det bara användaren pgsql som har rättighet. Så byt till denna användare:

root # su pgsql

Skapa en PostgreSQL-användare som inte kan skapa databaser (-D) eller andra roller (-R) och som inte är superuser (-S) och sätt ett lösenord (-P):

root # createuser -DRSP <username>
Enter password for new role:
Enter it again:

Skapa sedan en database som heter roundcube och som ägs av <username>, character encoding sätter vi försäkerhetsskull till UTF-8:

root # createdb -O <username> -E utf-8 roundcube

Logga nu ut som pgsql användaren:

root # exit

Installera Roundcube

Roundcube kan installeras från ports, men webapplikationer kan lika gärna installeras för hand. Man får bättre kontroll då och kan enkelt följa deras installationsanvisningar. Vi väljer att installera manuellt. Ladda ner det kompletta roundcube-0.3.1 paketet ifrån http://roundcube.net/download.

Gå till din webroot, t.ex. /usr/local/www/apache22/data och packa upp roundcube-0.3.1 här. Då får då en mapp som heter roundcubemail-0.3.1. Jag tycker namnet är lite lång så jag brukar döpa om mappen till roundcube-0.3.1. Filerna kan ibland ha lite konstiga ägare så börja med att försäkra dig att root äger alla filer:

root # chown -R root:wheel roundcube-0.3.1

För i framtiden kunna enklare uppgradera till en annan version, skapa en länk:

root # ln -s roundcube-0.3.1 roundcube

och använd sökvägen roundcube vid installatationen.

Byt till roundcube katalogen och fixa så att webservern kan skriva till katalogerna temp och logs:

root # chown www temp logs

Om du har en default PHP5 installation så behöver några extensions installeras. Kör:

root # portmaster --force-config /usr/ports/lang/php5-extensions

och installera:

  • FILEINFO
  • GD
  • MBSTRING
  • MCRYPT
  • OPENSSL
  • PGSQL

Komihåg att apache behöver omstartas när nya PHP extensions har installerats. Öppna en webläsare och gå till adressen: http://server-ip/roundcube/installer/

När du startar installationen kommer roundcube kolla nödvändigt PHP stöd på servern. Du bör se något som har OK på dett mesta:

Får du NOK på date.timezone, editera /usr/local/etc/php.ini och lägg till:

date.timezone = Europe/Stockholm

Roundcube har en .htaccess fil med bl.a. suhosin inställningar. Se till att apache är inställd så att denna fil får köra sina direktiv. Klicka på Next när du har fått OK på allt som enligt bilden (SQLite behövs inte).

Fyll uppgifterna på nästa sida enligt önskemål och server. Under databas inställningarna så väljer du PgSQL som databas och fyller i IP adressen eller localhost under databas server, anger användarnamnet och lösenordet på PostgreSQL användaren du skapade i steg 1. Har du IMAP resp SMTP server på samma maskin som roundcube, så anger du bara localhost under dessa fält. Kör du IMAP väljer du lämpligen bort valet att cache:a mail i databasen.

Gå vidare till nästa sida. Där kommer du kunna kopiera eller ladda ner dina konfigfiler för roundcube:

Välj att ladda ner db.inc.php och main.inc.php. Ladda upp dessa filer till servern och lägg dem under config katalogen. Eftersom db.inc.php innehåller användarnamn och lösenord till databasen, så bör den skyddas. Ändra ägare och rättighet till följande:

-rw-r-----  1 root  www     2334 Dec 27 01:36 db.inc.php

Nu kan bara root editera den och gruppen www läsa den. När filerna är på plats, klicka på Continue knappen. Du kommer då få ett meddelande att databasen inte är initierad:

Klicka på Intialize database för att göra det. Sedan kan du testa dina IMAP resp SMTP inställningar om du vill.

Installationen är klar och innan du provar att logga in, så ska installer katalogen under roundcube raderas. Efter det är gjort, gå till sidan http://server-ip/roundcube/ och prova att logga in med ditt IMAP konto.