Instalación de osCommerce

por Sergi Baila

Versiones

v0.1 (24.02.05 SBM) : creación del documento
v0.2 (16.03.05 SBM) : instalación menú HTML

Introducción

En este documento se detalla brevemente la instalación del software osCommerce sobre un sistema Debian.

El sistema Debian sobre el que se ha instalado es una mezcla de stable y testing. Principalmente es un Debian 3.0 (stable) pero con algunos paquetes de testing para mayor funcionalidad de cosas concretas, como el subsistema de correo electrónico, mysql, etc. También hay software instalado directamente (.tar.gz) sin obtenerlo del repositorio ni ningún paquete .deb.

La versión instalada de osCommerce ha sido la 2.2m2 (milestone2). No se ha encontrado ninguna versión en el repositorio de paquetes de Debian en ninguna distribución.

Dependencias

Este software depende de MySQL, PHP y Apache para funcionar. Detallamos las versiones respectivas.

PHP ha sido instalado integramente via el repositorio Debian. Las versiones pertinentes son:

sbaila@sb1:~$ dpkg -l | grep php
ii  php4           4.1.2-7.0.1    A server-side, HTML-embedded scripting langu
ii  php4-mysql     4.1.2-7.0.1    MySQL module for php4
ii  phpmyadmin     2.6.1-1        set of PHP-scripts to administrate MySQL ove

Igualmente con Apache:

sbaila@sb1:~$ dpkg -l apache | grep apache
ii  apache         1.3.26-0woody6 Versatile, high-performance HTTP server

En el caso de MySQL, se ha instalado la versión 4.1.7 manualmente, ya que en el momento que era necesario instalar la BBDD existia un bug en la versión de la distribución Debian.

Instalación

Instalación manual del paquete

Descargamos la última versión estable del software. En este caso: oscommerce-2.2ms2.tar.gz

Dado que se ejecutará exclusivamente como el usuario sobre el que corre Apache (www-data), se opta por descomprimirlo bajo /usr/local como ese usuario y grupo.

El resultado:

sbaila@sb1:~$ ls -l /usr/local | grep oscommerce
drwxr-xr-x    4 www-data www-data     4096 feb 22 17:19 oscommerce-2.2ms2

Siguiendo las instrucciones de instalación, que aparecen tanto en el INSTALL que acompaña al fichero de distribución, como en la knowledge base, ahora tenemos que enlazar desde Apache al directorio catalog del directorio creado.

<Directory "/usr/local/oscommerce-2.2ms2/catalog">
  Order allow,deny
  Allow from all
</Directory>

Alias /tienda /usr/local/oscommerce-2.2ms2/catalog

Restringimos el acceso a la URL /tienda/admin correspondiente al back-office de la tienda, también añadiendo al fichero httpd.conf lo siguiente:

  <Location "/tienda/admin">
    AuthType Digest
    AuthName "Administracion tienda The Web Spain"
    AuthDigestFile /etc/apache/password/tiendatws
    Require valid-user
  </Location>

Comentar aquí que el modo digest da problemas con Internet Explorer. En cualquier caso, a mi ya me está bien, yo y los otros administradores de la tienda usamos Mozilla o Firefox. Pero hay que tenerlo en cuenta. La autenticación digest es segura desde el punto de vista que la clave no viaja en claro, sino mediante un digest. Ahora bien, la autenticación normal si viaja en claro, y debería complementarse con SSL.

Configuración inicial BBDD

El resto de instalación se realiza via web. Si entramos a la tienda, la primera vez nos redirige a ./install/, y a partir de ahí podemos seguir las instrucciones en pantalla, detalladas también en el knowledge base.

Necesitaremos un usuario mysql. Al principio será necesario que el usuario pueda crear bases de datos y tablas, para la inicialización. Luego podemos restringir los permisos. Inicialmente se puede crear con permisos totales de datos y estructura + show databases y lock tables.

Al probar la conexión, recibo un mensaje de error: #1251 - Client does not support authentication protocol requested by server; consider upgrading MySQL client. No es la primera vez que me ocurre, supongo que tiene que ver con la versión de MySQL y las librerias de Debian, que no se ponen de acuerdo. Un dia con tiempo y ganas debería reinstalar MySQL desde el repositorio Debian. En cualquier caso, esto se soluciona de manera sencilla:

sbaila@sb1:~$ /usr/local/mysql/bin/mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4 to server version: 4.1.7-standard

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> update mysql.user SET password= OLD_PASSWORD('*********') WHERE user='oscommerce';
Query OK, 2 rows affected (0.00 sec)
Rows matched: 2  Changed: 2  Warnings: 0

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> \q
Bye
sbaila@sb1:~$

Esta es la manera de hacerlo via linea de comandos, pero también se puede hacer mediante phpMyAdmin.

Con esto el instalador ya puedo entrar y crear la estructura básica de la BBDD. Una vez hecho, ya podemos limitar los permisos del usuario: SELECT, INSERT, UPDATE, DELETE, FILE, CREATE TEMPORARY TABLES.

Primer acceso

Al entrar por primera vez en el catálogo me da dos advertencias:

Advertencia: El directorio de instalación existe en: /usr/local/oscommerce-2.2ms2/catalog/install. Por razones de seguridad, elimine este directorio completamente.

Borro el directorio indicado (install).

Advertencia Advertencia: Puedo escribir en el fichero de configuración: /usr/local/oscommerce-2.2ms2/catalog/includes/configure.php. En determinadas circunstancias esto puede suponer un riesgo - por favor corriga los permisos de este fichero.


sb1:/usr/local/oscommerce-2.2ms2/catalog/includes# chmod u-w configure.php
sb1:/usr/local/oscommerce-2.2ms2/catalog/includes# ls -l configure.php
-r--r--r--    1 www-data www-data     1950 feb 22 17:44 configure.php



Personalización

Menú de categorias

El sistema de menús de las categorias que viene por defecto es un poco limitado cuando los nombres de las categorías son algo largos.

Instalaremos el plugin DHTML categories menu para disponer de menús desplegables DHTML. Seguimos las instrucciones de instalación disponibles.

La instalación es muy sencilla. Antes de instalar conviene guardar una copia de seguridad del fichero ./catalog/includes/boxes/categories.php.

Para instalar el nuevo menú tan sólo es necesario sobreescribir los ficheros (en realidad, sólo el anterior fichero, además de instalar otros más bajo un directorio external).

Referencias

osCommerce
osCommerce docs


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