Configura Apache, PHP y Mysql de OSX 10.6

Hola, la idea de este largo post es documentar, paso a paso como configurar y usar el servidor Apache y php que vienen ya instalados en mac OSX 10.6, añadiendo una base de datos MySQL para establecer una base con la que trabajar en tus proyectos.

Por qué complicarse la vida si usando Mamp o Xampp es más facil?

Pues primero, saber qué es lo que estamos activando, y qué no, donde se instala, que librerías tenemos y cuales nos hacen falta o no. Por otra parte promover el uso del terminal, que para muchas tareas, es la forma más limpia de trabajar, así ‘optimizamos’ recursos noinstalando otra vez algo que ya lleva el sistema por defecto.

Configurar los proyectos en hosts virtuales separados, ayuda a organizarse y a trabajar de manera más limpia en entornos de desarrollo, así que si tienes un rato libre y te apetece trastear tu ordenador yo te animo a hacerlo. Decir que las bases de lo que se explica te servirá para también para entornos linux, así que si algún día tienes que manejarte en ese entorno, ya te sonará.

Antes de nada recomiendo un editor de texto liviano que no sea TextEdit, a mi personalmente me gusta TextMate, pero hay infinidad, BBEdit, TextWrangler, etc.

Mostrar archivos ocultos de Mac

Necesitaremos manejar continuamente archivos del sistema que están ocultos, yo personalmente siempre los tengo visibles en el Finder por que así puedes copiar o abrir el archivo si lo tienes más a mano, aunque no es necesario si usas el terminal siempre. Para ello escribiremos en el Terminal (Aplicaciones/Utilidades):

defaults write com.apple.finder AppleShowAllFiles TRUE

Y reiniciamos el Finder después:

killall Finder

Si vemos archivos en el escritorio como .DS_Store o .localized, todo bien, deberíamos tener acceso por el Finder a /usr/ o a /etc/…

Activando Apache

Abre ‘Preferencias del Sistema’, ve a ‘compartir’, y activa la casilla ‘compartir web’.

Veamos la versión de apache instalada, abre el Terminal dentro y pon:

sudo apachectl -v

Si sale algo como esto, Apache esta funcionando.

Server version: Apache/2.2.15 (Unix)
Server built: Jul 1 2010 17:16:33

Debes saber que dejando la casilla activada en preferencias del sistema, cuando se apague el ordenador y se vuelva a encender, quedará activo y por tanto Apache estará corriendo. Para apagarlo desactiva la casilla ‘compartir web’.

Dónde está la raíz de mi servidor / ?

Por defecto la raíz está configurada en /Librería/WebServer/. Para modificarla deberemos modificar el archivo de configuración de apache ‘httpd.conf’ que está en /etc/apache2/httpd.conf. Para acceder al archivo que está en las carpeta oculta /etc/ usa el Terminal y abre el archivo con una aplicación de edición de texto, de esta manera:

sudo open /etc/apache2/httpd.conf

si tienes Textmate instalado también puedes usar

sudo mate /etc/apache2/httpd.conf

Si eres un friki también puedes usar comandos vim o nano desde el terminal para editar cualquier texto, http://macvim.org/OSX/index.php#Support, si no lo has usado nunca puede que se te haga un poco lío, mejor usa el editor.

Una vez abierto buscaremos la linea 171:

# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
### DocumentRoot "/Library/WebServer/Documents"

Crea una carpeta para alojar la raíz del servidor, por ejemplo Workspace, yo la tengo en Users/NombreDeUsuario/Workspace, así la tengo a mano junto con otras carpetas que uso como Documentos, Descargas, etc. Tú ponla donde quieras.

Entonces, cambiamos esa línea por:

# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
DocumentRoot "/Users/NombreDeUsuario/Workspace"

Un poco más abajo deberemos cambiar también ésta línea (198):

#
# This should be changed to whatever you set DocumentRoot to.
#
#<Directory "/Library/WebServer/Documents">

Por esta:

#
# This should be changed to whatever you set DocumentRoot to.
#
<Directory "/Users/NombreDeUsuario/Workspace">

Guardamos el archivo (cmd + s) y reiniciamos apache:

sudo apachectl restart

Probemos a crear un indice, creamos un archivo index.html que guardaremos en la carpeta raíz, algo como:

<html>
<head></head>
<body>
<h1>Hello World!!</h1>
</body>
</html>

Guardamos como index.html, en nuestro caso en /Users/NombreDeUsuario/Workspace/, y para verlo, con introducir en el navegador http://localhost/http://127.0.0.1/ debería imprimir un ‘Hello World!!’

Si solo vas a tener un servidor donde trabajar, que no lo recomiendo, una estructura muy común es:

/cgi-bin
/data
/errors
/htdocs
/logs

Donde los archivos de tu servidor estarán en /htdocs. Yo prefiero tener una carpeta genérica y luego administrar cada proyecto como host virtual, vemos eso más adelante.

Activando php5

(Si no quieres usar la instalación de php 5.3.3 que viene por defecto, debes saber que Marc Liyanage, compila la ultima versión de php para osx 10.6 y prepara un instalador disponible en su web, sigue estas instrucciones http://www.entropy.ch/software/macosx/php/#install, y obvia todos los pasos hasta -Instalando MySQL-).

En la configuración que Snow Leopard trae por defecto, el módulo de php5 está desactivado. Activémoslo, vuelve a abrir el archivo httpd.conf:

sudo open /etc/apache2/httpd.conf

Busca esta linea:

LoadModule alias_module libexec/apache2/mod_alias.so
LoadModule rewrite_module libexec/apache2/mod_rewrite.so
LoadModule bonjour_module libexec/apache2/mod_bonjour.so
#LoadModule php5_module libexec/apache2/libphp5.so

Y descoméntala, quitando la almohadilla:

LoadModule alias_module libexec/apache2/mod_alias.so
LoadModule rewrite_module libexec/apache2/mod_rewrite.so
LoadModule bonjour_module libexec/apache2/mod_bonjour.so
LoadModule php5_module libexec/apache2/libphp5.so

Guarda el archivo (cmd + s). Y reiniciaremos el servidor:

sudo apachectl restart

Veamos que version trae por defecto Snow Leopard:

sudo php -v

Debería salir algo como esto:

PHP 5.3.3 (cli) (built: Aug 22 2010 19:41:55)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies

Bueno, con esto nos apañamos más que bien para correr cualquier cms o framework que use php, ya que viene con GD library, drivers PDO, etc, si quieres ver con más detalle lo que trae instalado puedes hacer un phpinfo. Crea un archivo en blanco y escribe:

<?php
phpinfo();
?>

Guarda el archivo como ‘info.php’ en la raíz de tu servidor /Usuarios/NombreDeUsuario/Workspace. Compreba en http://localhost/info.php, donde debería salirte algo como esto.

Crear el archivo de configuración php.ini:

Al igual que apache, php tiene su propio archivo de configuración, ahí podrás configurar las extensiones, los Mb de subida de archivos, los drivers, etc. Primero creamos el archivo a partir del que viene por defecto, de este modo:

sudo cp /etc/php.ini.default /etc/php.ini

Editaremos el archivo para cambiar un par de cosillas (el timezone y max_filesize), primero vamos a la linea 996:

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
; date.timezone

Y la cambiamos por

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Europe/Madrid

Así configuramos bien la hora. Luego buscamos la linia 879:

; Maximum allowed size for uploaded files.
; http://php.net/upload-max-filesize
upload_max_filesize = 2M

Y lo cambiamos por:

; Maximum allowed size for uploaded files.
; http://php.net/upload-max-filesize
upload_max_filesize = 24M

Así nuestras aplicaciones no estarán limitadas al subir imágenes pesadas. Guardamos (cmd + s).

Cambiando el indice:

En la configuración de indice que trae apache solo esta marcada la opción para archivos html. Para cambiar esto edita ‘httpd.conf‘:

sudo open /etc/apache2/httpd.conf

Busca esta línea (233):

#
# DirectoryIndex: sets the file that Apache will serve if a directory
# is requested.
#
<IfModule dir_module>
    DirectoryIndex index.html
</IfModule>

y añade el index.php, así:

#
# DirectoryIndex: sets the file that Apache will serve if a directory
# is requested.
#
<IfModule dir_module>
    DirectoryIndex index.php index.html
</IfModule>
</code>

Guarda (cmd + s) y reinicia apache:

sudo apachectl restart

Instalando MySQL

Para instalar un servidor mysql, lo mejor es hacer uso del instalador que la gente de mysql deja preparadito en un archivo .DMG. para ello ves a http://www.mysql.com/downloads/mysql/ y descárgate el archivo, ojo! Deberás bajarte el archivo compilado para la arquitectura de tu procesador, 32bit o 64bit.

Como saber que tipo de procesador tienes?
Si es Core Dúo o G4(leopard), es 32 bit, si es, C2Duo, Xeon o G5 es 64bit.

Porqué no puedo bajarme Compressed TAR Archive en vez del .dmg?
Porque no está compilado, necesitarías un compilador (X11 y Xcode) para hacer el binario y luego instalarlo por terminal, si te quieres aventurar aquí explica el proceso. http://hivelogic.com/articles/installing-mysql-on-mac-os-x

Una vez te hayas descargado el .DMG, algo como mysql-5.X.osx10.6-x86_64.dmg, ábrelo y verás dos instaladores y un PrefPane, primero instala mysql-5.X.osx10.6-x86_64.pkg, despuésMySQLStartupItem.pkg y por ultimo MySQL.prefPane.

Ahora deberíamos tener mysql instalado en /usr/local/mysql, si te fijas el instalador ha echo un alias‘mysql’ que apunta a la carpeta con la versión que has instalado ‘mysql-x.x.x…’, de esta forma cada vez que sale una nueva versión de mysql y la instalas, redirige el alias a la carpeta correspondiente y así conservas las versiones anteriores sin que afecte a lo que has instalado.

Comprobemos si arranca el servidor, para levantar el servidor deberiamos usar:

sudo /usr/local/mysql/support-files/mysql.server start

Si sale esto es que todo ok:

Starting MySQL
SUCCESS!

Si, de lo contrario te sale algo como:

/usr/local/mysql/support-files/mysql.server: line 256: my_print_defaults: command not found

O

ERROR! Couldn’t find MySQL server (./bin/mysqld_safe)

KK, parece ser que es un bug de la versión 5.5.8, edita el archivo que estamos intentando ejecutar: ‘mysql.server‘, con tu editor de texto y busca las lineas 46 y 47:

# If you change base dir, you must also change datadir. These may get
# overwritten by settings in the MySQL configuration files.

basedir=
datadir=

Completa las rutas de esta forma:

# If you change base dir, you must also change datadir. These may get
# overwritten by settings in the MySQL configuration files.

basedir='/usr/local/mysql'
datadir='/usr/local/mysql/data'

Ahora debería arrancar el servidor mysql sin problemas.

Antes de seguir, es muy aconsejable instalar alguna aplicación para manejar el servidor mysql, yo uso SequelPro que es gratuita, ligera y muy visual, si eres programador back-end quizás necesites una herramienta más potente como Workbench, eso ya tu mismo. Si eres un super-friki, seguro que harás las querys desdel terminal mismo.

Para Encender/Apagar el servidor, usaremos el prefpane que hemos instalado en ‘Preferencias del Sistema’ > MySQL que es lo más comodo y rápido aunque como hemos visto tambien lo podemos hacer desde el terminal.

Si queremos que se inicie mysql al encender el ordenador, activamos la casilla del prefPane y deberemos corregir un bug ( en la versión mysql 5.5.8 ) del StartupItem que también hemos instalado, deberemos corregir los permisos, de esta forma:

sudo chown -R root:wheel /Library/StartupItems/MySQLCOM

Ahora deberiamos ser capaces de arrancar o parar el servidor desde el prefPane y que también se arrancase automáticamente al inicio.

Seteando el PATH

(Ésto se puede hacer de varias maneras, ésta solo es una de ellas)

Este paso no es imprescindible pero es cómodo si usas mysql en el terminal y no está de más dejarlo echo. Dirígete a la carpeta de tu usuario:

cd ~
open .

Ahora deberías estar en tu carpeta de usuario (donde tienes Documentos, música, Workspace, etc. ), mira si tienes un archivo que se llama .bash_profile, si lo tienes, edítalo, sino créalo y pon esto dentro:

export PATH=~/bin:/usr/local/bin:/usr/local/mysql/bin:$PATH

Guárdalo. Lo que acabamos de hacer es establecer la ruta a los binarios para que siempre que accedamos a mysql desde el terminal no tengamos que escribir la ruta completa. Accedamos a mysql:

mysql -u root

Debería salir algo como esto:

Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.5.8 MySQL Community Server (GPL)

Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

Salgamos de Mysql:

mysql> \q

No está demás añadir un password al usuario root, para ello usaremos mysqladmin:

mysqladmin -u root -p password 'tupassword'
Enter password: tupassword

Algunos trucos para automatizar tareas desde el terminal con mysqladmin http://luauf.com/2009/01/21/15-usos-practicos-de-mysqladmin/

Crear el archivo de configuración my.conf

Igual que apache y php, mysql trae su propio archivo de configuración donde esta la ruta al sock, el usuario, password, etc. Lo creamos a partir de uno de muestra que se nos ha instalado en la carpeta ‘support-files‘:

sudo cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.conf

Y lo abrimos para editar:

sudo open /etc/my.conf

Cambiaremos:

# The following options will be passed to all MySQL clients
[client]
#password= your_password
port = 3306
socket = /tmp/mysql.sock

Por esto otro, que es el usuario que conectara por defecto:

# The following options will be passed to all MySQL clients
[client]
user = root
password = tupassword
port = 3306
socket = /tmp/mysql.sock

Guardamos (cmd + s). Ya tenemos MySQL instalado y configurado.

Configurando VHOSTS

Aquí es donde está la gracia de todo esto, la idea es crear un servidor virtual por cada proyecto, por ejemplo creemos un entorno de desarrollo para un wordpress, al que denominaremos dev.wordpress.com, para ello deberemos 1. configurar el vhost en la configuración de apache, 2. declarar las rutas de logs, errores, cgis, y por último, 3. añadir el dominio a hosts.

Editemos la configuración de apache:

sudo open /etc/apache2/httpd.conf

Buscamos y descomentamos la siguiente línea, que importa un archivo de configuración para los vhosts de la carpeta ‘extra‘:

# Virtual hosts
#Include /private/etc/apache2/extra/httpd-vhosts.conf

La descomentamos:

# Virtual hosts
Include /private/etc/apache2/extra/httpd-vhosts.conf

Abrimos el archivo que estamos importando:

sudo open /private/etc/apache2/extra/httpd-vhosts.conf

Escribimos en él, borrando todo lo que haya:

#
# Virtual Hosts
#

NameVirtualHost *:80

# WORDPRESS
Include /users/NombreDeUsuario/workspace/wordpress.dev/data/apache.conf

Guardamos (cmd + s). Hemos linkado al archivo de configuración del vhost, que está en el propio vhost. Cada vez que creemos un proyecto añadiremos una linea a este archivo con la ruta al proyecto y su archivo de configuración.

Creemos la carpeta del vhost, dentro de nuestro ‘Workspace’, como nomenclatura esta bien que la carpeta se llame igual que el dominio que creamos en este caso ‘dev.wordpress.com‘.

cd ~
mkdir ./Workspace/wordpress.dev/

Ahora creamos una estructura de archivos que nos sirvan para montar el servidor:

cd Workspace/wordpress.dev
mkdir cgi-bin
mkdir data
mkdir errors
mkdir htdocs
mkdir logs

Creamos el archivo de configuración dentro de ‘data‘, abrimos un archivo de texto nuevo y escribimos las configuraciones del servidor virtual:

#
# WordPress development
# 04/01/2010
#
# tu@email.com
#
# Frontend Virtual Host (development environment)

<VirtualHost *:80>
    ServerAdmin     tu@email.com
    DocumentRoot    /users/NombreDeUsuario/workspace/wordpress.dev/htdocs/

    ServerName      wordpress.dev

    #AccessFileName .htaccess
	
    LogLevel debug

    ErrorLog        /users/NombreDeUsuario/workspace/wordpress.dev/logs/error.log
    CustomLog       /users/NombreDeUsuario/workspace/wordpress.dev/logs/combined.log combined
	
    Alias /errors   /users/NombreDeUsuario/workspace/wordpress.dev/errors/
	
    ErrorDocument 401 /errors/401/index.php
    ErrorDocument 403 /errors/403/index.php
    ErrorDocument 404 /errors/404/index.php
    ErrorDocument 500 /errors/500/index.php
	
    # httpd als entry redirect entry BEGIN.
    # httpd als entry redirect entry END.

    SetEnv APPLICATION_ENV development

    # httpd dmn entry cgi support BEGIN.
    ScriptAlias /cgi-bin/ /users/NombreDeUsuario/workspace/wordpress.dev/cgi-bin/
    <Directory /users/NombreDeUsuario/workspace/wordpress.dev/cgi-bin>
        AllowOverride None
        #Options ExecCGI
        Order allow,deny
        Allow from all
    </Directory>
    # httpd dmn entry cgi support END.

    <Directory /users/NombreDeUsuario/workspace/wordpress.dev/htdocs/>
        # httpd dmn entry PHP support BEGIN.
        # httpd dmn entry PHP support END.
        Options Indexes Includes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

Lo guardamos como ‘wordpress.development‘ en /users/nombredeusuario/workspace/dev.wordpress.com/config/. Puedes mirarte la documentación de apache en este sentido (http://httpd.apache.org/docs/2.0/vhosts/, también http://www.unix-girl.com/geeknotes/apache_virtual_host_conf.html) porque las opciones son muy amplias y variadas.

Ahora solo falta añadir el dominio: abrimos el archivo hosts en /etc/:

sudo open /etc/hosts

Hosts es donde se definen las nomenclaturas de los dominios y las ips en tu ordenador (si alguien ha echo cosas malas con los productos de adobe este archivo le sonará :] ). Deberíamos añadir esta línea:

######### VIRTUAL HOSTS

##### WordPress

127.0.0.1 wordpress.dev

######### / VIRTUAL HOSTS

Guardamos (cmd+s). Lo que hemos echo es decirle al ordenador que cuando vayamos a wordpress.dev, en realidad estemos dirigiéndonos a 127.0.0.1 y como consequencia apache nos llevará al host virtual configurado con ese dominio.

A ver si funciona, reiniciamos apache:

sudo apachectl restart

Si no ha dado error ( seguramente debido a rutas mal puestas) se deberían haber creado los logs automáticamente en la carpeta ‘logs’.
Lo comprobamos y si todo está ok, hagamos un clásico ‘Hello World’ en la raíz del vhost que hemos creado. En un archivo en blanco creamos:

<?php
echo '<h1>Hello World!</h1>';
?>

Guardamos en /users/nombredeusuario/workspace/wordpress.dev/htdocs/ como ‘index.php‘ y probamos en el navegador http://wordpress.dev, si sale el ‘Hello World’ misión cumplida.

Si has llegado hasta aquí, tengo que agradecer tu infinita paciencia, así que espero que te haya servido, :]

Cualquier aportación, aclaración o corrección constructiva será más que bienvenida. Si ves que me he olvidado algo, o hay algún paso que falla, pon un comentario y lo reportamos sin problemas :]

20 thoughts on “Configura Apache, PHP y Mysql de OSX 10.6

  1. Hola, tengo el mismo problema que Luis Serrano
    “Apreciado amigo, estoy desesperado. Este post resuelve mi vida y ahora me encuentro para crear el archivo de configuración my.conf al abrirlo en terminal-mac con la secuencia “sudo open /etc/my.conf” me sale este mensaje “No application knows how to open /etc/my.conf.” y no se que hacer, no hay manera de que responda bien y lo habra. lo necesito con urgencia para poder instalar un programa que necesita mysql. ¿Podrías ayudarme por favor?.”

    ¿Tienes respuesta para esto? Te lo agradecería muchísimo ya que llevo intentándolo días!

  2. Te cuento: he hecho hasta

    cuando tendría que poner en el navegador http://localhost/info.php no me sale nada, me dice que funciona apache2 pero voy a preferencias> compartir > compartir web y cuando cloqueo no se activa compartir web ¿podrias ayudarme? gracias

  3. no puedo ingresar la linea 127.0.0.1 dev.wordpress.com no me deja modificar el archivo. Compartir y permisos los cambie a leer y escribir, vuelvo abrir el archivo y cuando quiero guardar la linea agregada dev.wordpress.com no me deja… que puedo hacer??

  4. Kymayoq; Muchas gracias por el post, realmente muchas gracias, es difícil encontrar información en español tan clara y tan buena. Ojalá sigan realizando post como estos. Vuestra página a mis favoritos. Saludos

  5. Hola carlos, la duda es, cual la diferencia entre el pkg que descargas del website de marc? si el mac viene con php 5.3.3 y el instalador del website es php.5.3.0… mmm?

  6. Apreciado amigo, estoy desesperado. Este post resuelve mi vida y ahora me encuentro para crear el archivo de configuración my.conf al abrirlo en terminal-mac con la secuencia “sudo open /etc/my.conf” me sale este mensaje “No application knows how to open /etc/my.conf.” y no se que hacer, no hay manera de que responda bien y lo habra. lo necesito con urgencia para poder instalar un programa que necesita mysql. ¿Podrías ayudarme por favor?.
    Luis Serrano publivoz@me.com
    Muchas gracias.

  7. Hola antes q nada agradecerte por el tuto fue el mejor que encontre en la red,… solo una duda al final dices q se deven crear los logs despues de editar el documento hosts te agradeceria si pudieras ejemplificar mas esa parte lo q pasa q soy muy nuevo en esto y mas en mac yo llegue hasta el hola mundo pero en lugar de aparecer me dice pagina no encontrada,… todo hacia atras iba ok,…pero en esta parte al revisar la carpeta logs esta vacia…como son esos logs q se generan… gracias por tu atencion alcachofa182@yahoo.com.mx

  8. hola estimado primero agradecer ya que me ayudaste mucho, todo bien con el tutorial, manual lo que sea muy bueno solo que me ocurrio un problema al intentar montar uno de mis proyectos en php con el mysql.

    el problema lo solucione de la siguiente forma:

    en /etc/php.ini, reemplase todas las apariciones de /var/mysql/mysql.sock por /tmp/mysql.sock
    que en realidad son 3:
    pdo_mysql.default_socket=/tmp/mysql.sock
    mysql.default_socket = /tmp/mysql.sock
    mysqli.default_socket = /tmp/mysql.sock

    ademas despues de que solucione esto empezaron mas problemas pero pude ver por que era es por que en todos mis proyectos de php yo ocupo para el codigo php y no esto produce que la pag se vea en blanco o muestre el codigo php en algunos casos para solucionar esto hay que cambiar en el archivo php.ini la siguiente linea:

    short_open_tag = Off
    a
    short_open_tag = On

    escribo este comentario por que se que a mas de uno sera de utilidad la info.

    • Hola Noe,
      a tu archivo de configuracion (…./config/wordpress.development) deberías añadirle las rutas para los CGIs,
      algo como:
      # httpd dmn entry cgi support BEGIN.
      ScriptAlias ....../workspace/wordpress.dev/cgi-bin/
      AllowOverride None
      #Options ExecCGI
      Order allow,deny
      Allow from all
      # httpd dmn entry cgi support END.

      Aquí lo explica bien http://www.unix-girl.com/geeknotes/apache_virtual_host_conf.html

      Espero que te sirva. Saludos!

    • Buenas, gracias por los comentarios, espero que sirva a mas de uno.

      Manuel, creo que es una buena idea voy a ver si puedo implementarlo en el editor de wp.

      Galonsogr, lo primero tenemos que tener en cuenta para un editor de código, es que lea y guarde la codificación del texto que está trabajando (utf8, ASCII, latin1, …) y también las terminaciones de linea correctamente (LF es un estandar).

      Otros aspectos básicos a tener en cuenta por ejemplo son lon números de linea, el coloreado del texto según la sintaxis, que haga bien los espaciados, etc etc

      Texmate es uno de ellos, a mi el que más me gusta para mac, pero lo dicho hay otros también muy completos como Coda, BBEdit, TextWrangler, etc.

  9. Gracias por la currada. De todos los post que he leido para activar PHP en mac (snow leopard) es el único que me ha funcionado.

  10. Mil gracias de mucha ayuda el tutorial, sería interesante incluir en los pasos las líneas de cada modificación de script para evitar la búsqueda dispendiosa de los correspondientes puntos de cambio.
    Nuevamente mil gracias, de mucha ayuda para los novatos.

  11. Pingback: Articulo Indexado en la Blogosfera de Sysmaya

Leave a comment