RSS .92| RSS 2.0| ATOM 0.3
  • Inicio
  • Correo Web
  •  

    LAMP en OSX 10.5.3

    Junio 15, 2008 @ 18:57
    Alex Sancho

    Después de unos cuantos intentos y algunos litros de café, por fin he logrado montar un entorno de desarrollo basado en MacOSX Leopard (aka 10.5.3).

    Para muchos esto puede parecer exagerado puesto que Leopard viene con Apache 2 y PHP 5.2.5 instalados por defecto, pero la verdad es que la compilación de PHP esta bastante limitada en cuanto a los módulos que incluye, básicamente no trae ni GD2, ni mcrypt, ni muchas otras utilidades, con lo que resultaba inservible para mis necesidades.

    Después de documentarme un poco sobre el tema vi que hay varias opciones para mejorar la instalación por defecto y al final me he decidido por instalar macports por la similitud que tiene con el sistema de paquetes apt y su facilidad de mantenimiento.

    El proceso a seguir para tener un sistema con Apache 2, MySQL 5 y PHP 5 partiendo de una instalación de Leopard totalmente limpia es el siguiente:

    Para empezar instalamos OSX desde el DVD correspondiente, una vez acabada la instalación pasamos a instalar las Xcode Tools que encontramos en el mismo DVD y actualizamos el sistema aplicando los últimos parches mediante la herramienta de actualización de software, una vez finalizados estos pasos tendremos nuestro sistema preparado para la instalación de macports.

    Seguidamente descargamos el paquete de macports desde la web, en el momento de escribir esto esta disponible la 1.6.0, y lo instalamos siguiendo las instrucciones que encontraremos dentro del propio paquete.

    Una vez instalado, abrimos una ventana de terminal y nos aseguramos de que en el fichero .profile se ha añadido una entrada que incluya el path para los ejecutables de macports, si contiene una linea como la siguiente todo ha ido bien, en caso contrario la añadimos y ejecutamos $ source .profile.

    export PATH=/opt/local/bin:/opt/local/sbin:$PATH

    A continuación ejecutamos $ sudo port selfupdate para sincronizar nuestra instalación con la ultima versión. Terminada esta operación podemos empezar a instalar paquetes.

    Bash Completion

    Esta es una instalación opcional, pero personalmente encuentro de gran utilidad el autocompletado en la consola y siguiendo estos pasos conseguiremos que cada paquete instalado mediante el comando ports añada el suyo propio.

    Una vez mas en la consola ejecutamos $ sudo port install bash-completion, una vez instalado editamos nuevamente el fichero .profile y añadimos las siguientes lineas

    # bash-completion
        if [ -f /opt/local/etc/bash_completion ]; then
            . /opt/local/etc/bash_completion
        fi

    Por ultimo editamos el fichero /opt/local/etc/macports/variants.conf y añadimos +bash_completion al final.

    Apache 2, PHP 5 y MySQL 5

    Debido a un problema que existe con la instalación de Apache 2 este proceso lo realizamos de dos partes, primero ejecutamos $ sudo port install apache2 y esperamos a que la instalación se detenga por no encontrar awk, seguidamente ejecutaremos el comando con el que se realizara la instalación definitiva, $ sudo port install apache2 && sudo port install mysql5 +server && sudo port install php5 +apache2 +macosx +mysql5 +pear +sqlite.

    Este ultimo comando tardara mas o menos dependiendo de la arquitectura de la maquina, en mi caso, con un ppc de 1,42Ghz y 1 Gb de RAM, ha tardado casi unas dos horas entre descargas y compilaciones.

    Un detalle a tener en cuenta y que he aprendido sobre la marcha es que si algun paquete no puede ser descargado automaticamente, el proceso se interrumpira sin llegar al final. En este caso basta con descargarlo manualmente colocandolo dentro del directorio correspondiente en /opt/local/var/macports/distfiles/, por ejemplo si como me ha ocurrido a mi, la instalación no encuentra el fichero httpd-2.2.8.tar.bz2 en los repositorios, lo descargamos dentro del directorio apache en la ruta que he indicado. Al reiniciar la instalación todo continuara correctamente.

    Una vez instalados todos los paquetes pasamos a configurarlos, empezando por apache.

    Antes de empezar a configurarlo tenemos que copiar el fichero de configuración de ejemplo mediante el comando $ sudo cp /opt/local/apache2/conf/httpd.conf.sample /opt/local/apache2/conf/httpd.conf y añadimos el script de autoarranque $ sudo launchctl load -w /Library/LaunchDaemon/org.macports.apache2.plist

    Para mysql el proceso es similar; primero nos aseguramos de que existen todos los directorios necesarios, /opt/local/var/db/mysql5/ y /opt/local/var/run/mysqld5/, en caso contrario los crearemos dandole permisos al usuario mysql grupo mysql.

    sudo chown -R mysql:mysql /opt/local/var/db/mysql5/ 
        sudo chown -R mysql:mysql /opt/local/var/run/mysqld5/

    A continuación cargamos el fichero de autoarranque $ sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql5.plist e inicializamos la base de datos de mysql $ sudo mysqlinstalldb5. Si todo ha ido bien, podemos arrancar el servidor $ sudo /opt/local/bin/mysqld_safe5 & y añadir la contraseña para el usuario root $ mysqladmin5 –u root –p password

    Seguidamente pasamos a configurar el entorno PHP, registrando el modulo para apache

    cd /opt/local/apache2/modules
        sudo /opt/local/apache2/bin/apxs -a -e -n "php5" libphp5.so

    a continuación editamos el fichero de configuración de apache para añadir el modulo, LoadModule php5module modules/libphp5.so y la configuración necesaria para ejecutar scripts php Include conf/extras-conf/modphp.conf.

    Para acabar, copiamos la configuración de ejemplo de php dentro de la ruta correspondiente

    cd /opt/local/etc
        sudo cp php.ini-dist php.ini

    y reiniciamos apache para activar los cambios

    cd /opt/local/apache2/bin/
        sudo ./apachectl -k restart

    phpmyadmin

    Esta es la parte mas sencilla de todo el proceso, opcionalmente podemos instalar este paquete para gestionar mysql desde un entorno gráfico.

    Nuevamente utilizamos macports para instalarlo $ sudo port install phpmyadmin, cuando lo tengamos instalado creamos el fichero /opt/local/apache2/conf/extra/httpd-phpmyadmin.conf con el siguiente contenido

    AliasMatch ^/phpmyadmin(?:/)?(/.*)?$ "/opt/local/www/phpmyadmin$1"
    
        <Directory "/opt/local/www/phpmyadmin">
            Options -Indexes
            AllowOverride None
            Order allow,deny
            Allow from all
    
           LanguagePriority es en de fr ja ko pt-br ru 
           ForceLanguagePriority Prefer Fallback
        </Directory>

    y lo añadimos al fichero de configuración de apache, Include conf/extra/httpd-phpmyadmin.conf.

    Por ultimo copiamos el fichero de configuración de ejemplo dentro de la ruta correspondiente

    cd /opt/local/www/phpmyadmin/
        cp libraries/config.default.php ./config.inc.php

    Despues de esto solo queda reiniciar apache. Para acceder al gestor utilizamos la direccion http://localhost/phpmyadmin

    Bueno, creo que con esto ya tenemos suficiente por hoy, en un proximo episodio explicare como instalar y configurar un servidor de subversion con su interface WebDAV.

    Comentarios (2) | | Digg It! | | ma.gnolia |


    Prompt personalizado en OSX

    Mayo 26, 2008 @ 20:03
    Alex Sancho

    Este fin de semana he estado entretenido dándole un toque de color a la consola de OSX, la verdad es que tal y como viene por defecto me resulta bastante.. “difícil de mirar”.

    Como base he elegido el tema que siempre uso con linux flex, que resulta ideal cuando utilizas una consola con fondo negro.

    Para poderlo utilizar en osx hay que modificarlo ligeramente, sacando algunas cosillas que no son necesarias, como el soporte para apm, y adaptando otras para que funcionen correctamente.

    Como resulta un poco largo, dejare el código al final del post, para habilitarlo tan solo hay que copiarlo dentro del fichero .profile.

    Un ultimo detalle a tener en cuenta es que tenemos que cambiar la codificacion de la tipografía utilizada por la consola, para hacerlo solo tenemos que elegir “Occidental (ISO latino1) dentro de las preferencias.

    Despues de esto solo queda recargar el fichero profile source .profile para tenerlo todo funcionando.

    Espero que os resulte util.

    Comentarios (0) | | Digg It! | | ma.gnolia |


    OSX: /etc/hosts

    Abril 21, 2007 @ 3:40
    Alex Sancho

    En alguna ocasión puede resultar de utilidad configurar la resolución de un dominio hacia una maquina dentro de la red local, normalmente en entornos de desarrollo o mientras se propaga el dominio por los servidores raíz.

    Si utilizamos gnu/linux o windows, solo es necesario modificar el fichero /etc/hosts o windows/hosts añadiendo la entrada correspondiente. En cambio en OSX hay que dar un par de pasos adicionales para que esto funcione.

    Ademas de modificar el fichero /etc/hosts, para que los cambios se produzcan de inmediato, tenemos que ejecutar el comando sudo niload -v -m hosts . < /etc/hosts que actualizara la base de datos de Netinfo, y luego limpiar la cache de resolución de nombres ejecutando lookupd -flushcache.

    Comentarios (3) | | Digg It! | | ma.gnolia |


    OSX: Estado de la bateria en la terminal

    Abril 10, 2007 @ 0:22
    Alex Sancho

    Continuando con las andanzas en OSX, estos días he estado buscando alguna utilidad para mostrar el estado de la batería del MacBook en la linea de comandos.

    El programa necesario para obtener esta información viene incluido en OSX, se trata de ioreg. Aunque la salida del programa no es que sea muy amigable, es relativamente sencillo filtrar las lineas que nos interesan, siempre teniendo en cuenta varia según se trate de un Mac PPC o un Mac Intel.

    En los primeros el comando seria ioreg -w0 -l | grep IOBatteryInfo mientras que en los Mac Intel tenemos que ejecutar ioreg -w0 -l | grep LegacyBatteryInfo.

    La verdad es que la información que obtenemos es útil, pero poco legible para mi gusto. Indagando un poco en la red he encontrado este script que hace justo lo que buscaba.

    Utiliza ioreg y presenta los datos de forma mas comprensible, la única desventaja es que tal y como advierte su autor, no funciona con Mac Intel.

    He estado probando con un macbook c2d y tan solo hace falta cambiar ligeramente la función get_battery_info para obtener los valores deseados.

    get_battery_info ()
        {
            local line
            local line1
            local line2
    
            $IOREG -p IODeviceTree -n "battery" -w 0 | grep LegacyBatteryInfo | {
                read line
                line1=${line:s/LegacyBatteryInfo/ BATTERY 1 /}
                line2=${line1:s/\}\,\{/ BATTERY 2 /}
                echo "${line2//[|\"=\(\{\}\),]/ }"
            }
            return 0
        }

    Una vez guardamos el script en algún directorio dentro del $PATH, tan solo hace falta llamarlo escribiendo battery desde la terminal.

    El script puede mostrar la información de diferentes maneras,

    • battery (formato largo)
    • battery long (formato largo)
    • battery short (formato corto)
    • battery compact (formato compacto)
    • battery csv (valores separados por comas)

    Comentarios (0) | | Digg It! | | ma.gnolia |


    Midnight Commander en OSX

    Abril 5, 2007 @ 15:58
    Alex Sancho

    Para quienes como yo, estáis acostumbrados a trabajar en linux, coincidiréis en que OSX presenta una serie de “carencias” como puede ser el no contar con un navegador de archivos en modo texto.

    Midnight Commander, mc para los amigos, es la solución perfecta para trabajar desde la consola, no solo nos permite navegar por el disco duro, es una herramienta muy completa que entre otras cosas cuenta con un editor propio muy completo, nos permite abrir sesiones ssh, ftp o samba con otros servidores y algunas cosillas mas.

    Para disponer de esta joya en OSX tendremos que compilarla e instalarla desde el paquete fuente, instalando antes todas las dependencias.

    Antes de empezar solo apuntar que para el tutorial doy por sentado que se utiliza Mac OSX 10.4.x y bash como interprete de la consola.

    Basicamente necesitamos tener instalado glib y como dependencia de este pkgconfig,

    empezaremos con este ultimo, el paquete de las fuentes lo podemos descargar desde el sitio oficial, descomprimimos, compilamos e instalamos

    tar -xvzf ~/Desktop/pkgconfig-0.21.tar.gz
        cd pkgconfig-0.21/
        ./configure
        make
        sudo make install

    Los binarios se instalaran en /usr/local/bin/, por lo que una vez instalado tenemos que añadir la ruta al path, y reiniciar terminal.app

    sudo pico -w /etc/profile
        ...
        PATH="$PATH:/usr/local/bin"
        ...

    También necesitamos instalar gettext siguiendo el mismo proceso, las fuentes se pueden obtener siguiendo este enlace

    tar -xvzf ~/Desktop/gettext-0.16.1.tar.gz
        cd gettext-0.16.1/
        ./configure
        make
        sudo make install

    Ahora ya podemos instalar el paquete de glib, las fuentes las obtendremos de la pagina de descargas del proyecto GTK, en el momento de escribir este tutorial la versión mas nueva es la 2.12.

    tar -xvzf ~/Desktop/glib-2.12.0.tar.gz
        cd glib-2.12/
        ./configure
        make
        sudo make install

    Y para acabar ya solo nos faltaría instalar el paquete de mc, descargamos las fuentes desde el sitio oficial y a compilar,

    tar -xvzf ~/Desktop/mc-4.6.1.tar.gz
        cd mc-4.6.1/
        ./configure --without-x --with-screen=ncurses
        make
        sudo make install

    Eso es todo, para arrancar el programa tan solo tendremos que teclear mc desde la terminal.

    Como añadido también podemos instalar el paquete fileutils, que contiene algunas utilidades básicas como dircolors, df o ls con soporte de color

    tar -xvzf ~/Desktop/fileutils-4.1.tar.gz
        cd fileutils-4.1/
        ./configure --without-x --with-screen=ncurses
        make
        sudo make install

    Una vez mas los binarios se instalan en /usr/local/bin/, para utilizar el binario de ls que se instala con el paquete en lugar del que viene por defecto en osx tendremos que añadir lo siguiente al fichero ~/.bash_profile

    hash -p /usr/local/bin/ls ls
        alias ls='ls --color=auto'

    Creo que eso es todo lo necesario para hacer que la consola de OSX sea un poco mas amigable.

    Comentarios (3) | | Digg It! | | ma.gnolia |