2009-05-15 10 views
8

Básicamente soy nuevo en PEAR (y PhpDocumentor); He instalado phpDocumentor mediante la CLI PERA, y todo parece ir bien ... hasta que fui a usarlo, y en ese momento me dieron el siguiente error:PhpDocumentor instalado mediante PEAR en OSX no funciona, ¿faltan archivos?

Warning: require(PhpDocumentor/phpDocumentor/phpdoc.inc): 
failed to open stream: No such file or directory in 
/usr/local/bin/phpdoc on line 40 

Fatal error: require(): Failed opening required 
'PhpDocumentor/phpDocumentor/phpdoc.inc' (include_path='.:/usr/share/pear') 
in /usr/local/bin/phpdoc on line 40 

no pude encontrar nada en línea sobre el error , así que desinstalé/reinstalé a través de la línea de comando nuevamente sin error, pero estoy obteniendo el mismo problema. ¿He pasado por alto algo? Como dije, soy bastante nuevo en PEAR :)

Gracias. D

Respuesta

0

¿Existe PhpDocumentor/phpDocumentor/phpdoc.inc? ¿Existe en/usr/share/pear? Si las respuestas son "sí" y "no", respectivamente, debe agregar el directorio que PhpDocumentor tenga en su ruta de inclusión.

Para abreviar, busque phpdoc.inc, y luego trabaje desde allí.

+0

Hola. Gracias por responder. Acabo de echar un vistazo ... no, phpdoc.inc no parece existir en ningún lado. Tampoco existe el dir/usr/share/pear Hmm. ¿Tal vez la instalación de Dodgy Pear? En realidad, acabo de verificar algunos de los paquetes instalados. MDB2 está instalado, por ejemplo, pero require_once en una secuencia de comandos arroja un error fatal. Probablemente no he establecido un camino de inclusión o algo así? –

4

Para averiguar dónde está poniendo PEAR, ejecute pear config-show. Si PEAR había dicho anteriormente que había instalado PhpDocumentor con éxito, entonces el archivo que está buscando debe encontrarse en el valor de la configuración php_dir (en mi Mac, esto es /usr/lib/php/PEAR).

Es necesario que este valor php_dir se establezca en su include_path para que la mayoría de los paquetes PEAR funcionen correctamente. Como /usr/share/pear parece estar en su include_path, según el error que incluyó anteriormente, tendría que adivinar que su instalación PEAR tiene su php_dir configurado en alguna otra ubicación.

Ahora, si desea cambiar su instalación de PEAR para que apunte a /usr/share/pear, debe entender algo acerca de cómo PEAR instala cosas. Muchos paquetes usan install-time text replacement, que pone la configuración de su instalación en el código del paquete. Si mira hacia atrás en su salida pear config-show, verá varias otras configuraciones de * _dir (data_dir, bin_dir, www_dir, etc.). Por lo tanto, es importante que estos se configuren como los desea ANTES de instalar sus paquetes. No obstante, no se preocupe, es no demasiado tarde para los paquetes que ya ha instalado.

Para cambiar la configuración de PEAR, use pear config-set (setting name) (setting value), como pear config-set php_dir /usr/share/pear. Como solo php_dir es absolutamente necesario para estar en su include_path, probablemente pueda dejar las otras configuraciones tal como están. Por lo general, me aseguro de que todos apunten al mismo directorio raíz, solo para mantener todo en un lugar general.

Una vez que cambie ALGUNA de estas configuraciones, debe ejecutar un pear update de cada uno de los paquetes que ya tiene instalados. Lo que esto hará es realizar ese install-time text replacement que mencioné anteriormente, pero esta vez usará la configuración actual, es decir, las que acaba de configurar. Ejecute esto primero en el paquete principal PEAR, pear update --force pear ... tendrá que incluir el indicador --force porque PEAR se dará cuenta me está pidiendo que actualice el paquete cuando ya está 'actualizado' y se detenga solo. Una vez que haya ejecutado este update para TODOS sus paquetes instalados, su instalación PEAR tendrá sus archivos ubicados donde su actual include_path espera encontrarlos.

4

Bueno, esta pregunta es cómicamente antigua, pero tuve este mismo problema y lo resolví después de mucho rascarse la cabeza, así que pensé en compartirlo.

ejecuté pear config-show como @ashnazg y mi php_dir está configurado en /usr/lib/php. Intenté ejecutar phpdoc -h desde allí y - ¡voila! -- funcionó. Entonces, el problema para mí era que PHP necesitaba saber sobre este camino. Edité php.ini (que para mí está en /private/etc/php.ini) y edité include_path para incluir /usr/lib/php. El mío se veía así:

include_path = ".:/usr/lib/php" 

¡Después de eso, funciona como un amuleto! Espero que esto ayude a alguien más allá. FWIW, estoy en Snow Leopard e instalé phpdoc ejecutando sudo pear install phpdocumentor.

+0

¡Gracias por eso! Tuve el mismo problema en Mountain Lion. Debe ser que la ruta predeterminada utilizada esté destinada a Linux (lo cual tendría sentido) y eso es diferente en OS X. – Bendihossan

Cuestiones relacionadas