La configuración de PHP en OS X no tiene habilitada la extensión de GD, la cual es una de las extensiones más utilizadas en caso de que quieras manipular gráficas, como por ejemplo crear un thumbnail de una imagen que subes. La primera ves que me tope con este problema, lo único que hice fue bajar MAMP que es un todo en uno al estilo de easyphp. Después de usar MAMP un tiempo, me salió lo geek y busqué la forma de agregar GD a PHP que viene en Leopard.
Para compilar GD a PHP ocupas lo siguiente:
- XCode (Si no lo tienes, lo puedes instalar del DVD de Leopard)
- X11 el cual en mi caso ya lo tenia instalado al instalar los “Developer Tools”
- Apache debe estar corriendo (System Configuration -> Sharing -> Web Sharing)
- PHP debe estar habilitado (Quita el # de LoadModule php5_module en /etc/apache2/httpd.conf)
Instalacion
- Abre la terminal y crea un folder, de preferencia en tu carpeta home, utiliza un nombre como .sources para que este oculto cuando entres desde Leopard. Escribe lo siguiente:
cd ~
mkdir .sources
cd .sources - Descarga libjpeg, escribe:
curl -O http://www.ijg.org/files/jpegsrc.v6b.tar.gz - Si tienes la version mas nueva de Leopard (10.5.7), tienes PHP 5.2.8, checa bien la version para que descarges el archivo correcto. Escribe:
curl -O http://www.opensource.apple.com/source/apache_mod_php/apache_mod_php-44.2/
Si tienes otra versin de Leopard, busca la version correcta en opensource.apple.com y remplaza el link anterior. - Asegurate de estar en la carpeta .sources y descomprime libjpeg que bajaste anteriormente, escribe:
tar -xzvf jpegsrc.v6b.tar.gz - Entra al folder creado y copia los archivos de configuracion
cd jpeg-6b
cp /usr/share/libtool/config.sub .
cp /usr/share/libtool/config.guess . - Ahora necesitamos compilar libjpeg, copia y pega lo siguiente:
MACOSX_DEPLOYMENT_TARGET=10.5 CFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe -no-cpp-precomp" CCFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe" CXXFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe" LDFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -bind_at_load" ./configure -enable-sharedAqui hay que tener mucho cuidado wordpress reemplaza algunos caracteres, por lo que te recomiendo pegar el comando anterior en textedit y remplazar todas las comillas dobles (generalmente las que estan en la tecla 2 para teclados en español o a la izquierda del enter en teclados americanos) y los guiones (asegurate de usar guiones y no signo de menos). Creeme, esto es con lo que batalle más, tengan mucho cuidado y reemplazen cada caracter que parezca comilla doble o guion.
- Escribe:
make - Si no hay errores escribe:
sudo mkdir -p /usr/local/include
sudo mkdir -p /usr/local/bin
sudo mkdir -p /usr/local/lib
sudo mkdir -p /usr/local/man/man1 - Escribe:
sudo make install
Si ves errores posiblemente no reemplazaste bien un caracter del comando anterior, revisalo e inténtalo de nuevo, si todo salio bien, regresate un nivel atras en la carpeta y descomprime el archivo fuente de php y escribe:
cd ..
tar -xvf php-5.2.8.tar.bz2
cd php-5.2.8/ext/gd
phpize - Una vez mas y con mucho cuidado escribe el siguiente comando para compilar php:
MACOSX_DEPLOYMENT_TARGET=10.5 CFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe -no-cpp-precomp" CCFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe" CXXFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe" LDFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -bind_at_load" ./configure -with-zlib-dir=/usr -with-jpeg-dir=/usr/local/lib -with-png-dir=/usr/X11R6 -with-freetype-dir=/usr/X11R6 -with-xpm-dir=/usr/X11R6 -with-gd - Si no hay errores, escribe:
make
sudo make insallInsisto si hay errores, la bronca es con las comillas dobles y los guiones, busca uno que se te haya pasado
- Renombra el archivo /etc/php.ini.default a /etc/php.ini usando:
sudo mv /etc/php.ini.default /etc/php.ini
Abre php.ini con tu editor de textos favorito y agrega la extension gd, donde estan todas las extensione escribe:
extension=gd.so - Busca esta linea extension_dir = “./” y escribe ; para cancelar la linea
- Listo, reinicia apache y has un phpinfo para comprobar que GD este configurado. Mucha Suerte
