v0.1
(24.02.05 SBM) : creación del documento
v0.2 (16.03.05 SBM) : instalación menú HTML
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.
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.
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.
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.
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 |
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).