Diario de instalación de phpbb2 sobre Debian

por Sergi Baila

Versiones

v0.1 (05.04.05 SBM): creación del documento
v0.2 (19.08.05 SBM): actualización y corrección de errores en los directorios para servidores multi-foro, ejemplo completo multi-foro

Instalación de phpbb2

Paquete Debian

sb1:~# apt-get -t testing install phpbb2 phpbb2-languages
Reading Package Lists... Done
Building Dependency Tree... Done
The following NEW packages will be installed:
  phpbb2 phpbb2-languages
0 packages upgraded, 2 newly installed, 0 to remove and 157  not upgraded.
Need to get 3338kB of archives. After unpacking 17.9MB will be used.
Get:1 http://ftp.us.debian.org testing/main phpbb2 2.0.13-2 [524kB]
Get:2 http://ftp.us.debian.org testing/main phpbb2-languages 2.0.13-2 [2814kB]
Fetched 3338kB in 6s (541kB/s)
Preconfiguring packages ...
Selecting previously deselected package phpbb2.
(Reading database ... 28489 files and directories currently installed.)
Unpacking phpbb2 (from .../phpbb2_2.0.13-2_all.deb) ...
Selecting previously deselected package phpbb2-languages.
Unpacking phpbb2-languages (from .../phpbb2-languages_2.0.13-2_all.deb) ...
Setting up phpbb2 (2.0.13-2) ...

Setting up phpbb2-languages (2.0.13-2) ...

No instalo phpbb2-conf-mysql porque depende de otros paquetes testing que no me interesa instalar.

README.Debian

****** Setup database

If you don't want to use phpbb2-conf-mysql, for example if you want to have
full control yourself or want to use a different database system, you need to
setup the database yourself.

- login to your databaseserver (running MySQL or PostgreSQL) as the database
  administrator (normally root)

Entro via phpMyAdmin.
 
- create a database 'phpbb2'

Creo la BBDD 'phpbb2-tws' ya que será para el foro de www.thewebspain.com.

CREATE DATABASE `phpbb2-tws` ;

- create a user 'phpbb2' with random password, and give it
  SELECT/INSERT/UPDATE/DELETE rights for the phpbb database (rights to
  alter the tables is not needed)

GRANT USAGE ON * . * TO 'phpbb2-tws'@'localhost' IDENTIFIED BY '*****' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 ;

GRANT SELECT , INSERT , UPDATE , DELETE ON `phpbb2-tws` . * TO 'phpbb2-tws'@'localhost';

- execute the create table commands and the starting table content from
  /usr/share/doc/phpbb2/schemas/$dbms_{schema,basic}.sql

Esos dos ficheros son accesibles via web si tenemos el apache configurado para servir el directorio /usr/share/doc.

Estructura: /doc/phpbb2/schemas/mysql_schema.sql

Datos iniciales: /doc/phpbb2/schemas/mysql_basic.sql

- Add the correct server-details and user-credentials in
  /etc/phpbb2/config.php (see /usr/share/doc/phpbb2/examples/config.php for an
  example)

Vamos a realizar una instalación preveyendo futuras nuevas instancias de phpbb2 para otros dominios. Así que creamos el fichero como 'config-tws.php'.

sb1:/etc/phpbb2# cat config-tws.php
<?php

//
// phpBB 2.x configuration file
//

/*
 The Database Management System to use
 Any of: mysql, mysql4, postgres, mssql, oracle, msaccess, mssql-odbc

 Note: use mysql4 only to enable transaction support, which you must enable
 in MySQL first. 'mysql' works fine with MySQL 4.x.
*/
$dbms = 'mysql';

/*
 In $dbhost, 'localhost' means local UNIX socket connection rather than TCP/IP
 to localhost. If you want the latter, write 127.0.0.1 or the equivalent of
 localhost.localdomain
*/
$dbhost = 'localhost';
$dbname = 'phpbb2-tws';
$dbuser = 'phpbb2-tws';
$dbpasswd = 'xxxxx';

$table_prefix = 'phpbb_';

define('PHPBB_INSTALLED', true);

sb1:/etc/phpbb2#

Dado que este fichero contiene una clave, debemos revisar sus permisos:

sb1:/etc/phpbb2# ls -l
total 12
-rw-r--r--    1 root     root         1110 Apr  5 14:47 apache.conf
-rw-r--r--    1 root     root          658 Apr  5 14:45 config-tws.php
drwxr-xr-x    2 root     root         4096 Apr  5 12:49 templates
sb1:/etc/phpbb2# chgrp www-data config-tws.php
sb1:/etc/phpbb2# chmod 640 config-tws.php
sb1:/etc/phpbb2# ls -l
total 12
-rw-r--r--    1 root     root         1110 Apr  5 14:47 apache.conf
-rw-r-----    1 root     www-data      658 Apr  5 14:45 config-tws.php
drwxr-xr-x    2 root     root         4096 Apr  5 12:49 templates
sb1:/etc/phpbb2#


Apache

La instalación del paquete crea un fichero de configuración en /etc/phpbb2/apache.conf con un enlace desde /etc/apache/conf.d

Dado que queremos una configuración por dominios, eliminamos el enlace y pasamos los datos a la configuración del virtualhost:

Añado este código para permisos de los directorios implicados:

# phpbb2
  <Directory "/var/lib/phpbb2/avatars-tws">
    Order allow,deny
    Allow from all
  </Directory>
  <DirectoryMatch /usr/share/phpbb2/site/>
    <IfModule mod_php4.c>
      php_flag register_globals off
    </IfModule>

    Options -Indexes +FollowSymlinks

    DirectoryIndex index.php index.htm

    AllowOverride None
    order allow,deny
    allow from all
  </DirectoryMatch>
# phpbb2

El directorio /var/lib/phpbb2/avatars-tws debe ser creado. Hay que usar uno para cada dominio, es donde se suben las imágenes de cada usuario (avatares) que aparecen al lado de sus posts.

sb1:/var/lib/phpbb2# ls -l
total 4
drwx-wx---    3 root     www-data     4096 Apr  5 12:49 avatars
sb1:/var/lib/phpbb2# mkdir avatars-tws
sb1:/var/lib/phpbb2# chgrp www-data avatars-tws/
sb1:/var/lib/phpbb2# ls -l
total 8
drwx-wx---    3 root     www-data     4096 Apr  5 12:49 avatars
drwxr-xr-x    2 root     www-data     4096 Apr  5 15:16 avatars-tws
sb1:/var/lib/phpbb2# chmod 730 avatars-tws/
sb1:/var/lib/phpbb2# ls -l
total 8
drwx-wx---    3 root     www-data     4096 Apr  5 12:49 avatars
drwx-wx---    2 root     www-data     4096 Apr  5 15:16 avatars-tws

También hay que enlazar desde la raiz de la instalación de phpbb2 para que el servidor pueda copiar las imágenes subidas desde la web. Los enlaces deben ser desde /usr/share/phpbb2/site/images hacia los diferentes directorios avatar-*.

Falta la configuración de alias y demás para que funcione, que va dentro del virtualhost correspondiente:

# phpbb2
  php_value auto_prepend_file /etc/phpbb2/config-tws.php
  Alias /foro /usr/share/phpbb2/site
  Alias /foro/images/avatars /var/lib/phpbb2/avatars-tws
# phpbb2

La configuración por defecto del phpbb2 sitúa las imágenes subidas bajo images/avatars según la raiz de la instalación. Eso hace que todas las imágenes vayan al mismo directorio. Según la configuración que estamos describiendo, queremos separar las imágenes de cada foro (estamos suponiendo que tenemos más de uno en el servidor) en un directorio. Cambiaremos esto según convenga, en este caso a images/avatars-tws.

Primer acceso y configuración

Al intentar entrar por primera vez me da un error indicando que no puede conectar a la BBDD. Esto me huele al típico problema con la libreria de mysql (comentado en otros documentos).

Una vez corregido, ya puedo entrar como Admin/admin y empezar a usar el foro.

Ejemplo de configuración multi-foro

La anterior instalación está preparada para instalar más de un foro en el mismo servidor. A continuación se muestra un ejemplo en el que se han añadido dos foros más en otro dominio.


sb1:~# ls -l /etc/phpbb2
total 20
-rw-r--r--  1 root root     1101 Mar 30 03:34 apache.conf
-rw-r-----  1 root www-data  671 Aug 18 21:26 config-coches.php
-rw-r-----  1 root www-data  658 Apr  5 14:45 config-tws.php
-rw-r-----  1 root www-data  664 Aug 18 20:37 config-barcos.php
drwxr-xr-x  2 root root     4096 Jul 31 13:10 templates

sb1:~# cat /etc/apache/conf.d/tws.conf
#
# configuracion apache para dominio www.??????.com
#
# 05.04.05 SBM creacion
#

[...]

# phpbb2
  <Directory "/var/lib/phpbb2/avatars-tws">
    Order allow,deny
    Allow from all
  </Directory>
  <DirectoryMatch /usr/share/phpbb2/site/>
    <IfModule mod_php4.c>
      php_flag register_globals off
    </IfModule>

    Options -Indexes +FollowSymlinks

    DirectoryIndex index.php index.htm

    AllowOverride None
    order allow,deny
    allow from all
  </DirectoryMatch>
# phpbb2

<VirtualHost 12.34.56.78:80>
  ServerName www.?????.com

[...]

# phpbb2
  php_value auto_prepend_file /etc/phpbb2/config-tws.php
  Alias /foro /usr/share/phpbb2/site
  Alias /foro/images/avatars /var/lib/phpbb2/avatars-tws
# phpbb2

</VirtualHost>

sb1:~# cat /etc/apache/conf.d/sargue.conf
#
# configuracion apache para dominio www.??????.com
#
# 05.04.05 SBM creacion
#

[...]

# phpbb2
  <Directory "/var/lib/phpbb2/avatars-barcos">
    Order allow,deny
    Allow from all
  </Directory>
  <Directory "/var/lib/phpbb2/avatars-coches">
    Order allow,deny
    Allow from all
  </Directory>
  <DirectoryMatch /usr/share/phpbb2/site/>
    <IfModule mod_php4.c>
      php_flag register_globals off
    </IfModule>

    Options -Indexes +FollowSymlinks

    DirectoryIndex index.php index.htm

    AllowOverride None
    order allow,deny
    allow from all
  </DirectoryMatch>
# phpbb2

<VirtualHost 12.23.34.45:80>

[...]

# phpbb2
  Alias /foro-barcos /usr/share/phpbb2/site
  Alias /foro-barcos/images/avatars /var/lib/phpbb2/avatars-barcos
  <Location /foro-barcos>
    php_value auto_prepend_file /etc/phpbb2/config-barcos.php
  </Location>
  Alias /foro-coches /usr/share/phpbb2/site
  Alias /foro-coches/images/avatars /var/lib/phpbb2/avatars-coches
  <Location /foro-coches>
    php_value auto_prepend_file /etc/phpbb2/config-coches.php
  </Location>
# phpbb2
</VirtualHost>

sb1:~# ls -l /var/lib/phpbb2/
total 16
drwx-wx---  3 root www-data 4096 Aug 19 09:11 avatars
drwx-wx---  2 root www-data 4096 Aug 19 09:09 avatars-coches
drwx-wx---  2 root www-data 4096 Aug 19 09:11 avatars-tws
drwx-wx---  2 root www-data 4096 Aug 19 09:09 avatars-barcos

sb1:~# ls -l /usr/share/phpbb2/site/images/
total 12
lrwxrwxrwx  1 root root   23 Jul 31 13:10 avatars -> /var/lib/phpbb2/avatars
lrwxrwxrwx  1 root root   30 Aug 19 09:04 avatars-coches -> /var/lib/phpbb2/avatars-coches/
lrwxrwxrwx  1 root root   28 Aug 19 09:04 avatars-tws -> /var/lib/phpbb2/avatars-tws/
lrwxrwxrwx  1 root root   29 Aug 19 09:04 avatars-barcos -> /var/lib/phpbb2/avatars-barcos/
-rw-r--r--  1 root root  169 Nov 21  2001 index.htm
drwxr-xr-x  2 root root 4096 Jul 31 13:10 smiles
-rw-r--r--  1 root root  807 Sep 25  2001 spacer.gif

Licencia de Creative Commons
Esta obra está bajo una licencia de Creative Commons.