Tabla de Contenidos
Nota: Esta instalación está basada en Ensim, pero la mayoría es aplicable a cualquier setup. Vamos a marcar con
las cosas que están hechas específicamente para lidiar con la instalción del Ensim en pericles. Los procedimientos genéricos están marcados con
.
Preparación de la base de datos
Permisos MySQL
Esto se aplica al Ensim en pericles y a cualquier otro lugar con poco control del usuario sobre los permisos en MySQL (y con alguna ayuda del administrador que finalmente va a tener que ejecutar el script.
- Crear (como administrador del sitio) una nueva base de datos, asegurarse de tener en claro el nombre de esta base, así como el usuario y la clave MySQL (el usuario y el administrador son únicos para todo el site virtual).
El problema es que el Drupal requiere los permisos LOCK TABLES y CREATE TEMPORARY TABLES de MySQL para funcionar, y ensim no lo da. Es por esto que desde pericles, alguien que sepa la clave de root de MySQL (no es la clave de root de pericles, si no la de MySQL) tiene que habilitarlo, ya sea desde el phpMyAdmin en http://200.68.65.165/MyAdmin/index.php , o, desde un shell (puede estar logueado como cualquier usuario en pericles), hacer lo siguiente.
DB_NAME=<nombre de la base de datos creada>
DB_USER=<usuario MySQL del sitio virtual>
DB_PASS=<clave MySQL de dicho usuario>
# que molesto es el quoting en bash!!!
DB_QUOTEDNAME=`sed -e 's/_/\\\\\\\_/g' <<eof
$DB_NAME
eof`
# creamos un archivo temporario para generar todos los REVOKE/GRANT necesarios
cat >/tmp/priv.sql <<eof
REVOKE ALL PRIVILEGES
ON \`DBNAME\`.*
FROM 'DBUSER'@'DBHOST';
GRANT SELECT,
INSERT,
UPDATE,
DELETE,
CREATE,
DROP,
INDEX,
ALTER,
CREATE TEMPORARY TABLES,
LOCK TABLES
ON \`DBNAME\`.*
TO 'DBUSER'@'DBHOST' IDENTIFIED BY 'DBPASS';
eof
# creamos el archivo que va a contener el script definitivo
cat >/tmp/privilegios.sql <<eof
eof
for DB_HOST in 127.0.0.1 localhost localhost.localdomain
do
sed -e "s/DBHOST/${DB_HOST}/" \
-e "s/DBUSER/${DB_USER}/" \
-e "s/DBPASS/${DB_PASS}/" \
-e "s/DBNAME/${DB_QUOTEDNAME}/" < /tmp/priv.sql >> /tmp/privilegios.sql
done
# este comando va a pedir la clave msyql de root
# en todo caso, hay que pasarle el archivo
# privilegios.sql a un sysadmin de pert para
# que lo corra.
mysql -u root -p < /tmp/privilegios.sql
Creación de las tablas
Primero, está el problema de que no sé por qué configuración de Pericles, las bases no sólo no se crean en utf8, si no que encima, el idioma por default es el sueco
IMPORTANTE
esto debe hacerse ANTES de crear efectivamente las tablas.
Igual esto es barato de arreglar:
echo 'ALTER DATABASE `'${DB_NAME}'` DEFAULT CHARACTER SET utf8 COLLATE utf8_spanish_ci' > /tmp/utf8.sql
# esto va a pedir la clave ${DB_PASS} de ${DB_USER}
mysql -u ${DB_USER} -p ${DB_NAME} < /tmp/utf8.sql
Si vamos a usar un prefijo ($db_prefix) para las tablas, entonces tenemos que preparar el script de creación de las tablas para que lo manejen OK1:
DB_PREFIX=<prefijo que vamos a usar en la base>
cd /var/www/html
sed -e "s/CREATE TABLE /CREATE TABLE ${DB_PREFIX}/" \
-e "s/INSERT INTO /INSERT INTO ${DB_PREFIX}/" < database/database.4.0.mysql > database/database.NUESTRA.sql
Ahora, cargamos la base de datos:
# esto va a pedir la clave ${DB_PASS} de ${DB_USER}
mysql -u ${DB_USER} -p ${DB_NAME} < database/database.NUESTRA.sql
Instalación
A partir de este punto, prácticamente lo único pericles-specific es el directorio destino
Para otros entornos, reemplazar /var/www/html por el directorio que se ve en la raíz del web server
La instalación es tan simple como bajar y copiar todo al directorio correspondiente. Vamos a hacerlo en el directorio raíz del apache (/var/www/html).
wget http://ftp.osuosl.org/pub/drupal/files/projects/drupal-4.7.3.tar.gz tar xvfz drupal-4.7.3.tar.gz cd drupal-4.7.3 mv * .htaccess /var/www/html cd ..
Configuración básica
La configuración (si trabajamos con una sola instancia) va en el directorio sites/default (a partir de donde está instalado el Drupal).
Hagamos un backup de la configuración default por si acaso.
cd /var/www/html cd sites/default cp -p settings.php Settings-ORI.php # lo pongo en mayusculas para que no me moleste con el <TAB> en bash
Ahora hay que editar settings.php
Lo principal es configurar el connect string de la base de datos. Esto va en la variable $db_url (el formato está explicado en el mismo archivo). Le ponemos los datos de la base de datos que creamos.
Lo otro que se puede configurar es la variable $db_prefix que hace que todas las tablas de esta instancia del drupal comiencen con el prefijo que pongamos acá. En general a mí me gusta usar esta variable para poder reutilizar una misma base de datos o para tener varias instancias.
Otro punto a favor es que podés tener varias instancias compartiendo "parte" de la base de datos (e.g. los usuarios)... esto se puede hacer creando $db_prefix como un array, pero esto queda fuera del alcance de este documento
Creamos un directorio para archivos estáticos (logos, etc):
cd /var/www/html mkdir files cat >files/.htaccess <<eof SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006 Options None <IfModule mod_rewrite.c> RewriteEngine off </IfModule> eof
ahora ya se puede tener acceso al site para seguir la configuración via web
Instalación de módulos
Drupal nos permite instalar módulos para agregarle funcionalidad. En general cada módulo tiene su propio README.txt con instrucciones para su instalación y configuración.
Los módulos que vienen incluidos en el Drupal están en el directorio modules (desde la raíz del Drupal) y son archivos programados en PHP con la extensión {.module.
Cuando se desea instalar un nuevo módulo, primero hay que verificar que la versión sea compatible con la versión instalada del Drupal y, normalmente, simplemente se agrega un subdirectorio con el nombre genérico del módulo (o conjunto de módulos) al directorio modules.
Una vez hecho esto, seguir las instrucciones del README.txt que posiblemente incluyan, al final la activación del módulo.
Configuración via web
Creación del usuario administrador
Ahora hay que entrar a la web y configurar todo... en la página inicial va a haber instrucciones, lo primero es crear el usuario administrador que es el que va a tener permiso para todo.
Localización (l10n)
Otra cosa recomendable es agregarle la localización y el idioma castellano.
Ir a Administer => modules y prender la opción locale. Apretar el botón Save configuration.
Ahora vamos a Administer => localization y elegimos add language. Elegimos en la lista Spanish (Español) y apretamos el botón Add language.
Ahora, en la lista, seleccionamos Enabled y Default en la fila correspondiente al español.
Esto lo único que hace es definir que existe la localización al castellano, pero no carga la traducción. Para eso, hay que importar un archivo es.po.
Lo más simple es bajar (a la estación de trabajo donde se está trabajando, no al server) el paquete que está en http://ftp.osuosl.org/pub/drupal/files/projects/es-4.7.0.tar.gz, abrirlo y acordarse dónde se dejó.
Volvemos a la página de localización del Drupal y elegimos import, apretar el botón Browse... para buscar el archivo en la estación de trabajo, seleccionar Spanish de la lista de idiomas y apretar el botón Import.
Ahora sí anda en castellano
Configuración de algunas opciones
Opciones generales
Administrar
opciones
\==>
Opciones generales
Poner acá el nombre del sitio, el mail del administrador y otras opciones generales.
URLs limpios
Al final de la pantalla de opciones generales, hacer click abajo en Realizar la pureba del URL limpio y, si funciona, activar URLs limpios, que quedan mucho más elegantes.
Módulos
Administrar
módulos Aquí se activan y desactivan todos los módulos, tanto los que vienen incluídos en el Drupal como los que se instalan aparte. Normalmente, después de activar un módulo, es necesario ajustar los permisos de los roles de usuario.
Control de acceso
Administrar
control de acceso
Creación de roles
Elegir el tab roles, ir creando los nombres de los roles que se quieren usar y apretar el botón Añadir rol para cada uno de ellos.
Luego ir al tab permisos y definir los permisos para cada rol.
OJO
cuando se agreguen módulos, seguramente van a aparecer nuevos permisos con lo cual hay que volver al tab permisos y revisar los permisos en los nuevos módulos para cada rol.
Notas:
Si no usamos $db_prefix, simplemente hay que asegurarse de que la variable de entorno $DB_PREFIX no exista o esté vacía y, en ese caso el archivo database/database.NUESTRA.sql va a ser idéntico a database/database.4.0.mysql (1)
.