Problema al crear proyecto nuevo en Netbeans 7.0.1 en Ubuntu

ubuntu-logo32

 

Si al intentar crear un proyecto nuevo, en la ventana de creación del proyecto se queda pensando y no te deja elegir que tipo de proyecto es, con lo que no puedes seguir al paso siguiente, seguramente sea porque tienes instalada una versión de openjdk que tiene algún bug.

La solución es desinstalar la librería openjdk e instalar la oficial de Oracle:

1. Desinstalación de openjdk. En mi caso tengo la 6 con lo que lo primero sería cambiar ese número por la que tengáis instalada. Para mirar qué número de versión tenéis:

Lo siguiente es desinstalar openjdk (cambiando el 6 por lo que sea):

Después de hacer esto si ejecutamos

Nos dirá algo así como bash: /usr/bin/java: No such file or directory

Con esto ya habremos desinstalado openjdk

2. Instalar Java 7 de Oracle:

Con esto en principio ya podréis crear proyectos sin problema.

+info:

http://kiranscience.blogspot.co.uk/2012/08/remove-openjdkjre-from-ubuntu-1204.html

http://www.webupd8.org/2012/01/install-oracle-java-jdk-7-in-ubuntu-via.html

Netbeans 6.8 y Xdebug 2.0.5

Para el proyecto en el que estoy implicado actualmente decidimos usar como IDE Netbeans 6.8, dado que usamos Symfony para el proyecto y el IDE elegido por Symfony para su integración con él ha sido Netbeans por votación popular. De todas formas ya venía usando este genial software para todos mis proyectos en php.

Hace cosa de dos meses, escribí un articulo para integrar el debugging con Xdebug en MAMP con NetBeans. Al prescindir de MAMP tenía que volver a instalar Xdebug en mi entorno AMP, con lo que decidí utilizar MacPorts para buscar la última librería Xdebug. Al hacer un search con $ port search xdebug ahí estaba, la versión xdebug 2.0.5. Instalé y rearranqué mi entorno de desarrollo.

Hice mi primera prueba desde Netbeans 6.8 y puse una parada en un trozo de código de una aplicación que tenía en mi servidor local. Al darle a F8 para continuar a la siguiente instrucción, Netbeans me dió un error inesperado:

Cada vez que intentaba pasar a la siguiente instrucción me daba el mismo error. Buscando por ahí resulta que la versión de Xdebug 2.0.5 manda una señal de Stop a Netbeans que hace que casque (no se donde lo leí ahora mismo). El caso es que yo lo solucioné instalando una versión anterior de Xdebug bajandola de las utilidades de debug Komodo Debugger Extensions. Descargué la versión que me interesaba y al poco ya estaba haciendo debugging sin ningún problema.

Otra forma que he visto que le funciona a la gente por ahí es que al configurar Xdebug en el archivo de configuración de php (php.ini), la línea xdebug.extended_info=0 se cambie por xdebug.extended_info=1. No lo he probado pero puede ser otra solución si la mia no funciona.

Xdebug en MAMP

Loco! Me he vuelto loco para conseguir que funcionara el xdebug en el MAMP para hacer debugging de mi código php en Netbeans. Llevaba tiempo queriendolo instalar pero ni por asomo me habría imaginado que me iba a costar tanto.

Siguiendo las instrucciones de la página de netbeans que explica como instalar xdebug al hacer phpize para compilar el xdebug que genera el archivo xdebug.so siempre me daba el mismo error:

Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF
environment variable is set correctly and then rerun this script.

Buscando como alma que lleva al diablo, todas las páginas que encontraba me armaban un cacao de cojones. Hasta me hice una cuenta developer en .mac para descargarme XCode Tools por si fuera eso (lo pone como sugerencia por si no te funciona el make).

En fin, no me entretengo, al final ha sido tan facil como descargarse un xdebug.so ya compilado y utilizarlo en otra carpeta a la que dice el tutorial (osea, nada de lo que dice…).

Despues de mucho buscar llegué a esta página donde había una explicación detallada de como hacer que funcionara xdebug (pero sin suerte para mí como en las anteriores 107). Gracias a San Dios había un enlace a los Komodo Debugger Extensions, que tiene enlaces a la ultima version de xdebug compilada.

Aleluya!! Ya tenía el dichoso archivo sin tener que compilar, saltandome unos cuantos pasos del tutorial. Descargué la última versión para Mac Osx de PHP Remote Debugging de la sección Komodo 5.1 Remote Debugging Packages. Descomprimí ese y había varias carpetas. Cogí el de la versión 5.2 porque rebuscando por google buscando Komodo, encontré esta página donde explica como instalar xdebug en Leopard, es decir lo mismo que estoy explicando yo, menos de donde sacar el xdebug.so compilado.

Una cosa importante es deshabilitar el PHP Zend Optimizer que trae por defecto acivadoel MAMP, así es que desde la ventana de MAMP ya estas tardando en desactivarlo.

En fin, puse el archivo xdebug.so en el directorio “/Applications/MAMP/bin/php5/xdebug” y al final del fichero de configuración de php5 en MAMP “/Applications/MAMP/conf/php5? puse lo siguiente:

; xdebug config for Linux and Mac OS X
zend_extension=/Applications/MAMP/bin/php5/xdebug/xdebug.so
xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
xdebug.idekey=jeffg
xdebug.profiler_enable=1
xdebug.profiler_output_name=xdebug.cachegrind-out.%s.%p

En la entrada “remote_port” es muy importante poner el mismo puerto que está configurado en NetBeans para poder hacer debugging desde el propio IDE. Este se puede cambiar desde las preferencias de NetBeans en la sección PHP, por defecto está a 9000 y para que nos vamos a complicar, yo lo dejé igual.

Una vez hecho esto y habiendo reiniciado MAMP, haciendo un phpinfo() podremos saber si xdebug está bien instalado. Si lo está nos saldrá una linea como esta:

This program makes use of the Zend Scripting Language Engine:
Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies
with Xdebug v2.0.4, Copyright (c) 2002-2008, by Derick Rethans

Cuando se empiece a hacer debugging desde NetBeans en la parte inferior derecha debe aparecer netbeans-xdebug [ running ]. Si aparece algo como netbeans-xdebug [ waiting ] o algo parecido, revisalo todo porque algo tienes mal, seguramente algo en el php.ini está mal escrito.

Espero que ayude a alguien…