lunes, 18 de julio de 2011

The Damned LAMP y un MySQL revirado

Vamos por partes... porque esto tiene su miga ...

Google: Humor geek

         Hete que quise instalar un XAMPP en mi Ubuntu Maverick y metí la pata, quedando atorado, hasta el viernes pasado que,  dí con la solución.




Google: Humor geek

Vamos a estructurar esta entrada para que el personal no se despite.
      0.-¿Qué dice que ha querido instalar?
     1.- ¿Cómo instalar lo que quiero?
             1.1. Uso de 'Webmin'
             1.2. Uso de un Xamp o hacerlo paso a paso hasta phpmyadmin
     2.- ¿Cómo desinstalo?
     3.- Observaciones a tener en cuenta
     4.- Planes de futuro





¿Qué he querido instalar?

  He querido convertir mi ordenador en un poductor/servidor de páginas web dinámicas sobre una base MySQL.
  He querido conectar páginas web con Html +Hojas de estilo + un poquito de JavaScript y PHP, a una base de datos del tipo MySQL y todo sobre un servidor del tipo Apache2, en un principio, únicamente con la idea de producir cara un proyecto que me demandan en el curso.

         Hasta ahora, con los desarrollos que el “ticher” exponia a diario en la clase y el Bluefish Editor ibamos más que sobrados. Pero , desde hace días irrumpe la base de datos, con lo que pasamos a mayores...


        La Taskshel LAM (Linux+Apache+MySQLServer) viene "preinstalada" en el mi Ubuntu, sólo hay que habilitarla......


         Pero, por desgracia, si se instala a la ligera y se comete un fallo en la instalación uno se vuelve loco. Ese fue mi caso.


       Bien, resta decir antes de terminar este punto que, PhpMyAdmin es una aplicación gráfica que nos permite trabajar sobre el “localhost” (127.0.0.1) para administrar la base de datos y hacer fáciles conversiones a PHP cara a la impelementación de nuestras páginas.


           Resta saber que 'MySQL Server' usa por defecto el puerto lógico 3306.  Por ello , y antes de realizar cualquier instalación, cara a evitar problemas conviene ver que dicho puerto está despejado.

           Para ello abrimos un terminal de consola y tenemos dos opciones :

      A) Instalamos nmap y lo ejecutamos
      B) Hacemos un netstat -a -n |grep tcp
Usando la opción B

   
      Comprobamos que tenemos el citado puerto libre al no nombrárnoslo sea cual sea la opción que haya elegido.
    Como a día de hoy ya he consiguido solucionar el problema, véis en mi imagen que el puerto por defecto de MySQL está a la escucha ....









¿Cómo instalar lo que quiero?

      Existen muchos modos sin embargo, yo, aquí, voy a hablar de dos.

*El primer método posible que expongo, ni lo conocia y me encantó. Usar el paquete Webmin.
(Supongamos , para este caso , que aun no he instalado nada)

  1. Me voy a la página http://www.webmin.com/
  2. Descargamos el "Debian package" del menu de la izquierda
  3. Abrimos un terminal y ejecutamos, a la descarga,  dkpg -i webmin (recordar que con el tabulador no termina de escribir el nombre)
        Ya, todo se empieza a instalar hasta que el proceso finaliza y observamos en el terminal que puede haber “errores de dependencias incumplidas” que solucinaremos en un "pispas"ejecutando apt-get -f install
  4. Ya tenemos Webmin instalado, ahora hay que recordar que al abrir el navegador e indicarle que queremos ir a https://localhost:10000  ,
    al tratarse de protocolo https (no puerto 80 sino 443) deberemos autorizar un certificado que, al ser autogenerado por la aplicación recien instalada nos avisará el navegador de su dudosa procedencia , pero nada nada...
    !Se acepta , se acepta! Le decimos que lo excepcione y trague per secula seulorum.
  5. Tras ello, llegamos por fin a la pantalla de logueo para webmin, nos logueamos (root) y le decimos que nunca nos recuerde la contraseña y.... Ya estamos en un completo administrador de todo el host.


Cabe decir que, cuando probé esto en Debian 5 , añadió, la instalación, el archivo                         /var/www/index.html
Y que, si uno se cansa del 'It works' siempre puede editarlo y poner
'!Ánimo machote!' ;-)
 

Bueno, hasta aqui la instalación con webmin (apenas adaptada de Debian a Ubuntu) , majeta, ¿Verdad?.


Por esta, no hubiera hecho la entrada... ahora, vamos al verdadero meollo del problema:
            Hay tropecientas web que te dicen con más o menos tino (hasta el copy paste sin comprobar llega al mundo Linux) como instalar un LAMP o XAMP para mi Ubuntu de varias formas pero, !Pobre de ti como te de problemas!
En fin, lo dicho, !Vamos pasico a pasico! y ajústome al esquema.

*MÉTODO DOS (para el que no sabe o no quiere usar la instalación por Webmin) "Instalación de LAMP + PhpmyAdmin pasico a pasico con alguna observación".


          Bueno.. !Allá que vamos! Instalción del 'LAM',  luego haremos la de PHP y, por último, el PhpMyAdmin.

          Vamos a suponer, como en el caso de webmin,  que no hemos instalado aun nada.

  Para  LAM tenemos dos opciones:

  • dejamos que lo haga "el sistema opertivo" (acordaros que os dije que estaba “preconfigurada” la instalación) 
  • lo hacemos nosotros orden tras orden.


A) Dejamos que instale el sistema operativo , los pasos a seguir son

IMPORTANTÍSIMO
  1. Abrimos un terminal y ejectamos sudo apt-get install tasksel
  2. Ya instalado el tasksel ejecutamos sudo tasksel 
  3. Ahora , aparecerá  un "menu de los de antes"  de: los de cursores para mover, espacio para marcar o desmarcar y tabular para moverse entre secciones... Marcamos LAMP Server y Ok   
  4.  
     4.-   Este punto que ahora tratamos es crucial !OJO! Cualquier error aquí !Date por jodido, maño!
    Linux no admite en este tipo de instalación (ni en la siguiente que detallaré) la instalacion de una base de datos MySQL sin que le pongamos contraseña... 
        Asi que:   !Apuntando lo que escribamos en papelico!,
    (ya sabéis minúsculas, no empiece por numero , no lleve simbolos raros y tal y tal...)
      Porque, mucho más adelante, cuando instalemos el PhpMyAdmin está contraseña, que ahora escribimos, será decisiva y puede costarnos muchos paseos por ficheros de configuración en vano.

         A partir de este punto, en que ya hemos instalado el LAM, la instalación de PHP y PhpMyAdmin son completamente iguales que si lo hicieramos por ordenes así que sin más preambulos paso a detallar el  método de orden a orden.

B) Otra forma de instalar: Orden a orden.
Pues precisamente que vamos a ir ejecutando la instalacion de los servicios por linea de comandos, sentencia tras sentencia, debemos seguir un orden para no liarla...


Vamos al terminal

  1. Empezamos instalando el MySQL en realidad vamos al server pero por el mismo precio instalaremos tambien el client.

                                   sudo apt-get install mysql-client mysql-server

OJITO! Instalamos dos, asi que, nos va a pedir sendas contraseñas... !Al papel!.... !Al papel he dicho!
         Estamos dando las contraseñas de root para cada instalación asi que de salida al papel. !Y nada de ponerse creativos!.

         Mi fallo fue en este punto , me puse creativo y pasé del papel diciendo "Ala Paquico, valiente que, esto, son 5 minutos y hecho....
         !2 semanas!, 2 bonitas semanas rumiando por las tardes y por las noches y algunas “madrugás” que cojones pasaba, poqué no iba nada... 
         De tanto mirarlos y reeditarlos me sé de memoria todos los ficheros “.cfg de la instalcion LAMP” , incluso le he echado mano al "history" que me guarda todo lo que he hecho desde que instalé el sistema...  semanas, buscando en internet soluciones y no encontrando nada más que copias de blog a blog sin verificar siquiera lo que cada cual teclea.... (De eso ya hable en la entrada de "Sin perdón" , pero uno piensa que los linuxeros son más creibles ... nada , pedorros hay en todos los lados y la vanidad, no veas como campa por el mundo)
En fin , lo dicho: al papel ;-)



   2.- Ahora,    vamos a instalar el servidor html
'Apache 2'
sudo apt-get install apache2

Sencillo , no? Además este no da problemas y aprovechando tanto tecnicismo me detengo y  os cuelgo  una fotico que os anime. 
 
Bueno, tras este momento , refresco seguimos....
El servidor html ya "trabaja"  y bien ;-)  ahora, los dos métodos expuestos se unifican de nuevo para instalar el Php y el PhpmyAdmin.






Paso 3 instalación de PHP:

sudo apt-get install php5 libapache2-mod-php5


        Indican por ahi, blogs, que conviene reiniciar el servidor Apache para ver que todo está bien. Si bien decir que, nunca está de más, indicar que la siguiente sentencia, yo, no la ejecuté y funcionó la cosa igual de bien.
sudo /etc/init.d/apache2 restart

          Esto, lo siguiente, si es interesante y si que , a modo de token , nos va permitir comprobar que la cosa rula. Vamos a crear un fichero .php
sudo gedit /var/www/info.php
Que contendrá las siguientes sentencias

<?php
     phpinfo();
?>



Si ahora tras guardarlo y cerrarlo vamos a
http://localhost/info.php
veremos un documento .html con datos de php

Paso 4 interconectar Php, Apache y Mysql: 

Google: Humor geek

Ahora y siguiendo esta curiosa observación que encontré en un blog en terminal ejecuto lo siguiente:
sudo apt-get install php5-mysql php5-curl php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl php5-common


       La idea es, básicamente, dopar a php para que haga una comunicación muchísimo más funcional con MySQL y Apache , ¿Es imprescindible? La respuesta es no , no lo es. Pero ¿Por que no dar más funcionalidad con un simple "copia y pega"?

Ahora instalaremos como paso final o ,  PhpMyAdmin:


sudo apt-get install phpmyadmin


Como en la instalación de Mysql nos va a pedir una contraseña para "logueo" pues, esta aplicación, permite gestionar, como administrador, nuestro MySQL , así que este es un buen momento para rescatar de nuestro papel la contraseña y replicarla.


       Cumplido este paso, resta ya indicar que si habrimos nuestro navegador y direccionamos a http://localhost/phpmyadmin accederemos a la pantalla de logueo de esta aplicación , restando en ella seleccionar nuestro idioma y acceder.

         Todo "muy limpio"... ya tendríamos nuestro sistema de servidor web básico "montadito y coleando".


        Solución mejor, incialmente, es Webmin puesto que, el logueo al servidor se realizará vía https mientras que, phpmyadmin lo realiza vía  http. Por no citar que la funcionalidad es mucho mayor (o eso me lo parece del primero respecto al segundo).

Sin embargo, si la "pagina web" que vamos a servir se va a hospedar en un hosting externo y ajeno a nosotros de esos que te alquilan , quiźas no tengamos oportunidad de instalar dicho software y tampoco sea provisto en el paquete que nos alquilan mientras que PhpMyAdmin si suele ser incorporado como un como un añadido al paquete de hospedaje que se contrata.
    Antes de finalizar este apartado que se titulaba: 
"¿Cómo instalo lo que quiero?"
y que, siguiendo los pasos y poniendo atención a las observaciones expuestas a la vista queda que, no da problema, os pongo una foto realizada sobre la edición del fichero  /etc/dbconfig-common/phpmyadmin.conf
mostrandoos donde se guardan por defecto el logueo para acceso a la aplicación (recordad que la correspondencia con el root del MySQL instalado en el paso dos, debe de ser exacta, para el caso del phpmyadmin.



¿Cómo desinstalo?
Goolge: Humor geek
     
                 Aqui "la madre del cordero", ¿Qué pasa si no hemos seguido los pasos, si hemos instalado como nos ha salido de los cascabeles, mismamente?

       Mi caso ya os lo comenté , instalado el sistema con mas omenos gloria por hacerlo "a mi modo " y no como aqui os he expuesto...  no daba con la contraseña,  Phpmyadmin me soltaba "error #1405" , al logueo  y si intentaba cambiar la contraseña como root de Mysql me decía que nones , empece a intentar desintarlar los servidores uno a uno.... que si con pluge, que si con synaptic que si.....
Bueno para que contaros los experimentos... !Vamos a lo eficaz!

Si quiero desinstalar este sistema la opción idónea que a mi , al final , me resultó fue, como véis en la foto:
for pkg in `dpkg -l *apache* *mysql* phpmyadmin | grep ^ii | awk '{ print $2 }'`; do sudo apt-get -y purge --auto-remove $pkg; done;
Y con esto desintalo... "chino chano" mi problema con el MySQL se disuelve del modo que, ya prácticamente,  me encuentro en el cómo lo instalo.
        Quedaran, obviamente, los restos de Php  pero , esos, no me van a dan problemas , mi problema era el MySQL que se interconactaba con Phpmyadmin...y esa maldita contraseña que me hacía la puñeta. !Solucionado!

Con esto salvo la pregunta "consideraciones a tener en cuenta".

Llegando ya al ultimo punto a tratar: planes de futuro
         Ya quisiera, el mendas, como plan de futuro, tener un harem de huríes esperándole en algún sitio... o al menos una... o aunque no fuera huríe... o aunque estuviera encima de la oreja aporreandote la cocota en este momento...
    Así que como la vida es caprichosa y no se puede depender de futuros , por de pronto, en este presente y con Phpmyadmin, crearé una base de datos nueva con nombre Joomla
;-)


Salida 3,2,1
!SED BUENOS!