Foros del Web » Programando para Internet » PHP » Zend »

Problema con Rewrite URL, o eso creo

Estas en el tema de Problema con Rewrite URL, o eso creo en el foro de Zend en Foros del Web. Hola de nuevo foreros. He comenzado a hacer pruebas con Zend y tengo un problemilla con los enlaces, pues no se procesa bien la llamada. ...
  #1 (permalink)  
Antiguo 17/12/2010, 12:51
 
Fecha de Ingreso: agosto-2003
Ubicación: Málaga, España
Mensajes: 419
Antigüedad: 21 años, 4 meses
Puntos: 1
Exclamación Problema con Rewrite URL, o eso creo

Hola de nuevo foreros.

He comenzado a hacer pruebas con Zend y tengo un problemilla con los enlaces, pues no se procesa bien la llamada.
Este es mi entorno de trabajo: WIN XP Pro, Apache 2.2.17, PHP Version 5.2.11.
Las librerias de Zend son la versión 1.10.8, y están incluidas en el include_path del php.ini.

He bajado el Quickstart de la página oficial de Zend (que seguro muchos conoceréis) porque me parecía que era lo mejor para empezar. Poner el ejemplo a funcionar y tocar aquí y allí para ir asimilando los conceptos de la teoría.

Quick start oficial zend

He seguido todas las instrucciones y ha funcionado la 'Home', pero el único enlace que muestra la página, el 'Guestbook', que llama al controlador 'Guestbook' devuelve error (404) el enlace no es capaz de llegar al index, así que pienso que el Rewrite no funciona, pero no tiendo por qué pues me funciona en en otros sitios...

- He seguido todas las instrucciones de la página de Zend.
- El Módulo para Rewrite está habilitado en Apache y este sencillo ejemplo me funciona.
- El sitio para este ejemplo se llama mediante un dir virtual definido en httpd.con. Esta es su configuración:

Código:
#1. Definir el alias al sitio
Alias  /zend  "C:/httdocs/Zend/public/"
#2. Definir dir virtual
<Directory "C:/httdocs/Zend/public/">
Options FollowSymLinks
AllowOverride All
Order deny,allow
Allow from all
Satisfy all
</Directory>
- Y el /public/.haccess es tal y como venía:

Código:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
Y nada...no va. He revisado pero no sé que pueda estar mal.
Despues de soltar toda esta info ¿Podría alguien ayudarme?

Gracias y un saludo.
  #2 (permalink)  
Antiguo 17/12/2010, 13:06
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 11 meses
Puntos: 845
Respuesta: Problema con Rewrite URL, o eso creo

Que tal bauhaus1975, lo primero seria checkear mod_rewrite, esta habilitado en tu httpd.conf? y luego mirar los logs de apache a ver si te tiran alguna pista.

Salu2.
  #3 (permalink)  
Antiguo 17/12/2010, 13:22
 
Fecha de Ingreso: agosto-2003
Ubicación: Málaga, España
Mensajes: 419
Antigüedad: 21 años, 4 meses
Puntos: 1
Respuesta: Problema con Rewrite URL, o eso creo

Hola masterpuppet, gracias por tu atención.

Sí mod_rewrtite está habilitado en httpd.conf. De hecho me funciona el ejemplo que antes comentaba.

El log de acceso dice error 404. Concretamente:
GET /zend/guestbook HTTP/1.1" 404 328

Gracias y un saludo.
  #4 (permalink)  
Antiguo 17/12/2010, 13:31
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 11 meses
Puntos: 845
Respuesta: Problema con Rewrite URL, o eso creo

Perdon por no prestar la atención suficiente al leer, no habia visto tu aclaración del mod_rewrite, el log como que no dice mucho, probaste usar la configuración tal cual la pone en el ejemplo?

Código Apache:
Ver original
  1. <VirtualHost *:80>
  2.     ServerName quickstart.local
  3.     DocumentRoot /path/to/quickstart/public
  4.  
  5.     SetEnv APPLICATION_ENV "development"
  6.  
  7.     <Directory /path/to/quickstart/public>
  8.         DirectoryIndex index.php
  9.         AllowOverride All
  10.         Order allow,deny
  11.         Allow from all
  12.     </Directory>
  13. </VirtualHost>

Pequeñas modificaciones en apache pueden ser un dolor de cabeza.
  #5 (permalink)  
Antiguo 18/12/2010, 06:32
 
Fecha de Ingreso: diciembre-2010
Ubicación: Santiago, Chile
Mensajes: 16
Antigüedad: 14 años
Puntos: 3
Respuesta: Problema con Rewrite URL, o eso creo

En el application.ini agrega:
Código:
resources.frontController.baseurl = "/zend"
y en el .htacces
Código:
RewriteBase /zend
  #6 (permalink)  
Antiguo 18/12/2010, 12:28
 
Fecha de Ingreso: agosto-2003
Ubicación: Málaga, España
Mensajes: 419
Antigüedad: 21 años, 4 meses
Puntos: 1
Respuesta: Problema con Rewrite URL, o eso creo

masterpuppet y ahenriquez gracias por vuestra ayuda.

Al final simplemente con añadir 'RewriteBase /zend' en el .htacces el enlace a conseguido volver a pasar por el index.php.

Aunque ahora resulta que la app devuelve el error:
"An error occurred... Application error"

Tendré que investigar que puede ser, pero al menos los link son encauzados.

La solución de crear un virutal host, la verdad siempre que pueda evitarla mucho mejor.
Yo siempre intento trabajar las App Web de la manera más sencilla: Un simple dir virtual y rutas relativas dentro de la aplicación, es lo más simple, y eso luego nos garantiza que funcionará en cualquier tipo de configuración web. Espero que con Zend también pueda seguir así.

Muchas gracias.

Última edición por bauhaus1975; 18/12/2010 a las 12:39
  #7 (permalink)  
Antiguo 18/12/2010, 13:41
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 11 meses
Puntos: 845
Respuesta: Problema con Rewrite URL, o eso creo

Ahora deberias setear en tu htaccess el env

Código Apache:
Ver original
  1. SetEnv APPLICATION_ENV development

asi te muestra toda la info de la Exception.

Salu2.
  #8 (permalink)  
Antiguo 20/12/2010, 04:02
 
Fecha de Ingreso: agosto-2003
Ubicación: Málaga, España
Mensajes: 419
Antigüedad: 21 años, 4 meses
Puntos: 1
Respuesta: Problema con Rewrite URL, o eso creo

Hola de nuevo, según parece es problema del motor SQLite:

Pues con el debug activo devuelve: "Message: The sqlite driver is not currently installed"

Según veo en phpinfo, SQLite está activo. La versión que aparece es:2.8.17
  #9 (permalink)  
Antiguo 20/12/2010, 04:58
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 11 meses
Puntos: 845
Respuesta: Problema con Rewrite URL, o eso creo

Seguramente sea un problema de versiones, deberias agregar en tu application.ini

Código INI:
Ver original
  1. resources.db.params.sqlite2 = true


Saludos.
  #10 (permalink)  
Antiguo 24/12/2010, 06:09
 
Fecha de Ingreso: agosto-2003
Ubicación: Málaga, España
Mensajes: 419
Antigüedad: 21 años, 4 meses
Puntos: 1
Respuesta: Problema con Rewrite URL, o eso creo

Hola de nuevo.
Efectivamente, con eso he superado el problema del sqlite. Pero esto es chocar con un muro tras otro... Ahora tengo este error:

Fatal error: Call to a member function setAttribute() on a non-object in
\ZendFramework-1.10.8\library\Zend\Db\Adapter\Pdo\Abstract.php on line 134

La verdad, es complicado empezar con Zend...
Estoy intentando hacer debug con el Eclipse, pero resulta que no puedo llegar a depurar el error porque al incluir el archivo Application de las librerias Zend, no lo tiene accesible el proyecto (El Quickstart).
Y no sé como incluir las librerias Zend al proyecto pues yo las tengo incluidas en el include_path del php.ini.

Gracias y un saludo.
  #11 (permalink)  
Antiguo 24/12/2010, 08:00
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 11 meses
Puntos: 845
Respuesta: Problema con Rewrite URL, o eso creo

Que tal bauhaus1975, no te desanimes, te aseguro que al final la recompensa vale la pena, el error que estas teniendo seguramente esta documentado en algún lado, habría que buscar, el problema es que al instanciar PDO si algo falla debería lanzar una Exception pero si configuras mal el dsn el muy traidor te devuelve un null!, en tu application.ini deberias tener algo asi:

Código INI:
Ver original
  1. resources.db.params.dbname = APPLICATION_PATH "/../data/db/guestbook-dev.db"

si tenes algo como esto:
Código INI:
Ver original
  1. resources.db.params.dbname = APPLICATION_PATH "/../data/db/"

te lanza la Exception que esta mostrando, checka la ruta de la bbdd y que esta exista.

Saludos.

Última edición por masterpuppet; 24/12/2010 a las 09:29
  #12 (permalink)  
Antiguo 25/12/2010, 07:13
 
Fecha de Ingreso: agosto-2003
Ubicación: Málaga, España
Mensajes: 419
Antigüedad: 21 años, 4 meses
Puntos: 1
Respuesta: Problema con Rewrite URL, o eso creo

Finalmente ha funcionado!
Pero es raro, me he puesto a hacer pruebas y dejando la configuración como estaba originalmente es como lo he conseguido (en el application.ini).
Se ve que en algún momento hice algo mal tocando el php.ini que luego arreglé y nos ha estado despistando todo este rato.

Supongo que ahora para usar este Framework lo más importante es que aprenda a hacer el diseño MVC de manera correcta, es decir, identificar en un posible sitio web que modelos y vistas hay... Si conoces alguna lectura especialmente recomendada sobre este particular te estaría enormemente agradecido.

Bueno, muchas gracias por la paciencia y la ayuda!
  #13 (permalink)  
Antiguo 27/12/2010, 03:19
 
Fecha de Ingreso: agosto-2003
Ubicación: Málaga, España
Mensajes: 419
Antigüedad: 21 años, 4 meses
Puntos: 1
Respuesta: Problema con Rewrite URL, o eso creo

Añado comentario.

Cita:
Iniciado por bauhaus1975 Ver Mensaje
Estoy intentando hacer debug con Eclipse, pero resulta que no puedo llegar a depurar el error porque al incluir el archivo Application de las librerias Zend, no lo tiene accesible el proyecto (El Quickstart).
Y no sé como incluir las librerias Zend al proyecto pues yo las tengo incluidas en el include_path del php.ini.
Creo que por defecto las librerias están incluidas. Se puede comprobar en Window → Preferences → PHP → PHP Libraries. Ocurre que yo trabajo contra un server y las librerias zend no estaban accesibles/visibles desde mi máquina.
Así que copié las librerias a mi máquina en la misma ruta que existen en el servidor y ya puedo 'debuggear' a través de lo archivos de Zend Framework.

Saludos.

Etiquetas: rewrite, url
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:03.