Para acceder a la consola de Windows XP, ir a “Inicio –> Ejecutar” y pongan en el casillero “cmd” (sin comillas) y le dan aceptar. Se abrirá una ventana con un prompt similar a este:
Microsoft Windows XP [Versión 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
C:\Documents and Settings\Usuario>
Si usan Windows 7 pulsar tecla con simbolo windows + r .
La consola de Windows nos permite hacer muchísimas tareas de forma simple y sin mouse-dependencia, para los nostálgicos como yo, es como trabajar en DOS: comandos y parámetros. Hay una gran lista de comandos y funciones que podemos utilizar desde aquí, pero nos vamos a centrar en el comando FTP para subir joomla por FTP…
El help del comando (ftp /?) dice esto:
Transfiere archivos a y desde un equipo ejecutando un servicio Servidor de FTP (a veces llamado demonio). Ftp puede usarse interactivamente.
FTP [-v] [-d] [-i] [-n] [-g] [-s:archivo] [-a] [-w:tamañoventana] [-A] [host]
-v Suprime la presentación de las respuestas del servidor remoto.
-n Suprime el inicio de sesión automático cuando se establece.
-i Desactiva las peticiones interactivas de datos durante la transferencia de múltiples archivos.
-d Activa la depuración.
-g Desactiva el uso de comodines en nombres de archivo (ver GLOB).
-s:archivo Específica un archivo de texto que contiene comandos de FTP; los comandos se ejecutar automáticamente después del inicio de FTP.
-a Use cualquier interfaz local cuando vincule una conexión de datos.
-A Inicio de sesión anónimo.
-w:tambúfer Sobrescribe el tamaño de 4096 del búfer de transferencia predeterminado.
host Específica el nombre del host o la dirección IP del host remoto al que se conecta.
Notas:
– Los comandos mget and mput aceptan s/n/c para si/no/cancelar.
– Use Control-C para cancelar comandos.
Hay un parámetro que es muy útil y explicaré más adelante: se trata de -s:archivo que veremos cómo utilizar para hacer copias de seguridad de nuestro sitio, inclusive compactarlas o zipearlas de una forma muy sencilla y programando la tarea para que se haga sola cada cierto tiempo.
Para acceder a nuestro sitio web por FTP ponemos lo siguiente:
C:\Documents and Settings\Usuario>ftp ftp.misitio.com
o C:\Documents and Settings\Usuario>ftp 200.163.48.33
Nota: reemplazar ftp.misitio.com con el nombre de tu sitio o la IP 200.163.48.33 con la IP de tu sitio que usaste al registrar el dominio. En algunos casos no hace falta indicar ftp delante del nombre del dominio.
Al dar enter a la línea, nos va a dar como resultado:
C:\Documents and Settings\Usuario>ftp ftp.misitio.com
Conectado a ftp.misitio.com
220———- Welcome to FTP Pendorcho [TLS] ———-
220-You are user number 3 of 50 allowed.
220-Local time is now 08:07. Server port: 21.
220-IPv6 connections are also welcome on this server.
220 You will be disconnected after 15 minutes of inactivity.
Usuario (ftp.misitio.com:(none)):
Allí pondremos nuestro nombre de usuario y le damos enter. Resultado:
331 User pepe OK. Password required
Contraseña:
Ponemos nuestra contraseña (la contraseña no se ve cuando la escribimos) y le damos enter. Resultado:
230-User pepe has group access to: pepe
230 OK. Current restricted directory is /
ftp>
Si observamos detenidamente veremos que es el mismo mensaje que nos devuelven los clientes que vimos: Filezilla y gFTP.
¿Qué pasa si el servidor usa otro puerto?
Por defecto el puerto que se usa es el 21 pero sino es ese, cambia la forma de ingresar y debemos hacerla así:
C:\Documents and Settings\Usuario>ftp
Es decir, sin ponerle el nombre o IP del servidor. Eso nos pondrá en la “consola FTP” tras lo cual deberemos ingresar comandos de consola admitidos por FTP. La consola FTP simplemente se ve así:
ftp>
Para saber qué comandos tiene ftp, pongan “help” (sin comillas) y presionen ENTER. Nos dará un listado como este:
!delete literal prompt send
? debug ls put status
append dir mdelete pwd trace
ascii disconnect mdir quit type
bell get mget quote user
binary glob mkdir recv verbose
bye hash mls remotehelp
cd help mput rename
close lcd open rmdir
El comando para conectarse es open y es aquí donde usaremos el puerto distinto poniendo lo siguiente, ej.:
ftp>open ftp.misitio.com 25
Tras lo cual, nos dará el mismo resultado que vimos anteriormente y nos pedirá nombre de usuario y contraseña.
¿Qué pasa si nos equivocamos de contraseña y no nos deja entrar?
– En estos casos usamos el comando “close” para cerrar la conexión y luego “open” para reabrirla y lo intentamos nuevamente.
Explicación de algunos comandos:
ls = Lista los archivos y directorios donde estamos posicionados en forma simple.
Ej.:ls
200 PORT command successful
150 Connecting to port 57474
.
..
.MirrorSearch
.bash_logout
access-logs
bin
cgi-bin
index.htm
public_ftp
public_html
ruby
ssl
tmp
www
226-Options: -a
226 43 matches total
ftp: 447 bytes recibidos en 0,59 segundos 0,75 a KB/s.
dir = Lista los archivos y directorios donde estamos posicionados en forma detallada.
Ej.:ftp> dir
200 PORT command successful
150 Connecting to port 57475
drwx–x–x 28 usuario usuario 4096 May 14 08:20 .
drwx–x–x 28 usuario usuario 4096 May 14 08:20 ..
drwx—— 3 usuario usuario 4096 Aug 6 2007 .MirrorSearch
-rw-r–r– 1 usuario usuario 24 Jul 4 2007 .bash_logout
-rw-r–r– 1 usuario usuario 191 Jul 4 2007 .bash_profile
-rw-r–r– 1 usuario usuario 13855 Feb 12 2008 index.htm
drwx—— 2 usuario usuario 4096 Oct 8 2007 logs
drwxr-xr-x 3 usuario usuario 4096 Aug 26 2007 public_ftp
drwxr-x— 17 usuario 99 4096 May 2 12:34 public_html
drwxr-xr-x 3 usuario usuario 4096 Jun 5 2008 ruby
drwx—— 3 usuario usuario 4096 Jun 5 2008 ssl
drwxr-xr-x 8 usuario usuario 4096 Mar 1 22:51 tmp
lrwxrwxrwx 1 0 0 11 Aug 8 2007 www -> pu-blic_html
226-Options: -a -l
226 43 matches total
ftp: 2908 bytes recibidos en 0,03 segundos 90,88 a KB/s.
ftp>
Observen que la primera columna nos dice los permisos de cada archivo o directo-rio. El formato en que están expresados es propio de los sistemas *nix, como GNU/Linux, y significan los siguiente:
r: Permiso de lectura
w: Permiso de escritura
x: Permiso de ejecución
Ahora expliquemos por cada carácter:
El carácter 1 : Define el tipo de fichero que puede ser:
- – (un guión) Archivo común.
- d : Es un Directorio
- c : Dispositivo de caracteres (tty o impresora)
- b : Dispositivo de Bloque (usualmente disco rígido o CD-ROM)
- l : Enlace simbólico (lo que sería un acceso directo -para hacer una equivalencia con Windows)
- s : Socket
- p : Pipe
Los caracteres 2,3,4 : Usuario (owner) Establece los permisos para el dueño del archivo
Los caracteres 5,6,7 : Grupo (group) Establece los permisos para el grupo del archivo
Los caracteres 8,9,10: Otros (other) Establece los permisos para los usuarios que no en-tran en las categorías anteriores.
Literal = Se utiliza para ordenar ejecución de comandos permitidos en el servidor
Este es un comando muy importante ya que a traves de él podemos cambiarle los permisos a los archivos.
Se utiliza de la siguiente forma:
Primero debemos saber qué comandos están autorizados en el servidor, para eso utilizamos el comando “remotehelp” que nos devolverá algo como esto:
remotehelp (Nota: literal help nos da el mismo resultado)
214-The following SITE commands are recognized
ALIAS
CHMOD
IDLE
UTIME
214 Pure-FTPd – http://pureftpd.org/
En este caso solo podemos utilizar esos 4 comandos: alias, chmod, idle, utime. Pero generalmente sucede es que solo chmod es el que podemos usar ya que los demás son de uso interno del demonio FTP.
El que nos interesa es chmod. Supongamos que tenemos un archivo index.php al que queremos cambiarle los permisos, debemos poner lo siguiente en la línea de comandos:literal chmod 777 index.php Y si todo fue bien, nos dará como resultado: 200 Permissions changed on index.php
Podemos hacer lo mismo para cambiarle los permisos a un directorio. Lo que no podemos hacer desde la consola FTP de Windows es dar permisos en forma recursiva, cosa que si podemos hacer desde la consola FTP de GNU/Linux. Esto se debe a que usamos un comando indirecto como lo es “literal” que invoca a otro comando. En cambio desde la consola linuxera usamos el comando como es, puesto que estamos hablando de los mismos sistemas operativos.
Mas adelante, luego de explicar la suba de archivos por la consola de GNU/Linux voy a comentar bien en profundidad todo el manejo de permisos de archivos y la importancia de tener bien configurada la capa FTP de Joomla, por ahora sigamos con los comandos FTP y veamos un resúmen de todos ellos por categoría de uso.
Comandos de Ayuda
- ? : Muestra la información relativa al comando.
- ? o help: Muestra una lista de los comandos disponibles.
Comandos de conexión
- open (ejm.: open ftp.misitio.com) Inicia una conexión con un servidor FTP.
- close o disconnect: Finaliza una conexión FTP sin cerrar el programa (ya visto).
- bye o quit: Finaliza una conexión FTP y la sesión de trabajo del programa.
Comandos de Operación
- cd : Cambia el directorio de trabajo en el servidor.
Por defecto la conexión arranca en el directorio raíz que nos autoriza el server y a partir del cual podemos hacer nuestro trabajo, coincide en la mayoría de los casos con la carpeta de usuario y ese será nuestro espacio de trabajo, solo allí podremos escribir, borrar y crear archivos y directorios.
Para hacer una equivalencia, imaginen que estamos en Windows y que el administrador solo nos permite usar la carpeta “C:\Documents and Settings\Usuario”. En el caso de los sevidores webs la carpeta a la que estamos autorizados tiene el nombre “/” y la carpeta donde debemos subir nuestros archivos es la “www” o “public_html”. Ahora bien, ¿qué hay en el directorio usuario o “/”?
Ahí se guardan todos los archivos de configuración de los programas a los que estamos autorizados en el servidor por ejemplo el webmail, el acceso a phpmyadmin, puede haber una carpeta llamada “bin” en la pueden estar los comandos a los que estamos autorizados a ejecutar en el servidor vía shell, o comandos propios, etc..
Hay que tener mucho cuidado con lo que hagamos en esta carpeta, preferentemente ni hay que tocarla salvo que seamos expertos, cualquier error que cometamos puede dejar de funcionar algún programa, inclusive nuestra propia web. Trabajaremos siempre en el directorio “www” o “public_html”, que es la carpeta que hace andar nuestra web y que es donde busca arrancar el servidor web. Si este servidor es Apache la configuración se encuentra en el archivo “httpd.conf”, pero olvídense, nunca tendremos acceso a dicho archivo, salvo que el servidor sea nuestro.
Un cambio de directorio sería: ftp> cd www
Para volver un directorio hacia atrás: ftp>cd ..
Para volver al directorio raíz: ftp> cd /
- delete :
Borra un archivo en el servidor. Aquí tenemos que tener cuidado si nos estamos conectando a un servidor linux: hay que respetar las mayúsculas y minúsculas de lo con-trario nos dará un error y es para borrar de a un solo archivo.
- mdelete
Idem anterior pero para borrar múltiples archivos basado en un patrón que se apli-ca al nombre. Ejemplos:
ftp> mdelete *.txt (nos borrará todos los archivos con la extensión “.txt” y nos irá pidiendo confirmación de cada uno. Sin no queremos que nos pregunte debemos usar el comando “prompt“. Ver más abajo.
- dir: Muestra el contenido del directorio en el que estamos en el servidor (ya visto).
- !: Permite salir a línea de comandos temporalmente sin cortar la conexión. Para vol-ver, teclear exit en la línea de comandos.
- lcd : Cambia el directorio de trabajo local.
- get :
Obtiene un archivo, es decir lo descarga a nuestra PC. Veamos un ejemplo:
Supongamos que queremos descargar el archivo “configuration.php” a nuestra PC para corregirlo, debemos hacer lo siguiente:
Elegimos una carpeta de nuestra PC ¿cómo?
Ponemos: ftp> ! –> Eso es para salir momentáneamente de la consola FTP y ver dónde estamos parados en nuestra PC.
Nos dará como resultado:
ftp> !
Microsoft Windows XP [Versión 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
C:\Documents and Settings\Usuario>
Desde aquí ya podemos trabajar con los comandos built-in o incorporados de Windows y hacer lo que querramos. Vamos a crear una carpeta temporal donde descargar nuestro archivo, ponemos:
C:\Documents and Settings\Usuario>md temporal (creamos la carpeta temporal)
C:\Documents and Settings\Usuario>exit (nos devuelve a la consola FTP)
Ya dentro de la consola ftp, nos cambiamos al directorio donde está “configuration.php”, generalmente “www”, ponemos:
ftp> lcd temporal
ftp> cd www
ftp> get configuration.php
Esto último nos descargará el archivo en la carpeta windows que creamos.
- mget :
Similar a “get” pero para descargar muchos archivos, podemos usar comodines. Por ejemplo mget *, nos descargará todos los archivos de la carpeta actual. Lamentablemente el comando incorporado de FTP de Windows es muy limitado y no nos permite ni subidas ni descargas en modo recursivo (incluyendo subdirectorios). Lo mismo sucede con el FTP de linux. Por ello es conveniente buscar alternativas. Para el caso de Windows es un poco difícil encontrar algo como la gente pero si alguno está interesado me avisa y les digo cuál pueden usar. Para el caso de GNU/linux, el mismo programa que expliqué en modo gráfico, utiliza un comando para el modo consola.
- hash: Activa la impresión de caracteres # a medida que se transfieren archivos, a mo-do de barra de progreso .
- ls: Muestra el contenido del directorio en el servidor.
- prompt: Activa/desactiva la confirmación por parte del usuario de la ejecución de comandos. Por ejemplo al borrar múltiples archivos podemos ejecutar antes éste co-mando así evitamos que nos pida confirmación de cada uno, lo mismo para subidas o bajadas.
- put : Envía un archivo al directorio activo del servidor. Este comando es similar al get con un uso idéntico, solo que se usa para subir archivos.
- mput : Idem anterior pero para subir múltiples archivos. Tanto en este como en el anterior, no nos permiten usar el modo recursivo.
- pwd: Muestra el directorio activo en el servidor.
- rename : Cambia el nombre a un archivo en el servidor.
- rmdir : Elimina un directorio en el servidor si ese directorio esta vacío. Si el directorio no está vació nos emitirá un error.
- status: Muestra el estado actual de la conexión
- bin o binary: Activa el modo de transferencia binario. Ver apartado siguiente donde se explica la modalidad de subida de archivos.
- ascii: Activa el modo de transferencia en modo texto ASCII. (Ver apartado).
- append : Continúa una descarga que se ha cortado previamente.
- bell: Activa/desactiva la reproducción de un sonido cuando ha terminado cualquier proceso de transferencia de archivos.
- glob: Activa/desactiva la visualización de nombres largos de nuestro PC
- literal: Con esta orden se pueden ejecutar comandos del servidor de forma remota. Para saber los disponibles se utiliza: literal help. La vimos anteriormente.
- mkdir: Crea el directorio indicado de forma remota
- quote: Hace la misma función que literal
- send : Envía el archivo indicado al directorio activo del servidor
- user: Para cambiar nuestro nombre de usuario y contraseña sin necesidad de salir de la sesión ftp.
Modos de transferencia
Para subir archivos es importante saber de qué tipo son los que vamos a transferir ya que, sino usamos las opciones adecuadas, éstos se pueden cargar mal. Por eso, al eje-cutar la aplicación FTP, debemos acordarnos de utilizar uno de estos comandos:
• type ascii
Este es el más usado y el que está por defecto cuando abrimos el comando. Sirve para transferencias de archivos que sólo contengan caracteres imprimibles (archivos AS-CII, no de Word o similares, sino en texto puro), por ejemplo páginas HTML, archivos PHP (nuestro Joomla). Las imágenes no.
• type binary
Este tipo es usado cuando se trata de archivos comprimidos, ejecutables para PC, imágenes, archivos de audio, etc., el resto no incluído en el punto anterior.
Para saber qué tipo está actualmente definido debemos poner el comando sin parámetros, o sea “type”.
Ejemplos de cómo transferir algunos tipos de archivo dependiendo de su extensión:
Extensión type
txt (texto) ascii
html (página WEB) ascii
php (archivo PHP) ascii
jpg (imagen) binario
doc (documento) binario
ps (poscript) ascii
ZIP (comprimido) binario
tar (empaquetado) binario
Con lo explicado aquí ya estamos en condiciones de subir nuestro Joomla por líneas de comandos desde Windows XP.
Como verán no es tan difícil de aprender pero es para muchos más incómodo, so-bre todo por el hecho de no tener la función recursiva, ya que tendremos que ir creando los directorios de a uno y subiendo luego los archivos, un trabajo muy tedioso. Nos servirá para hacer tareas breves como por ejemplo corregir algún archivo específico. Hay un programa GNU que puede usarse en reemplazo del FTP de Windows, que si alguno de Uds. está interesado en trabajar en línea de comandos desde este sistema operativo, puedo armar un tutorial para explicar su uso ya que es bastante más complejo.
En el próximo capítulo veremos que desde GNU/Linux se simplifica muchísimo ya que podemos usar otros tipos de clientes FTP para consola mucho más completos que el que trae Microsoft. De cualquier manera, todas las explicaciones son aplicables a ambos, solo que las ampliaremos.