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

Configuración Correcta de Zend Framework antes de trabajar

Estas en el tema de Configuración Correcta de Zend Framework antes de trabajar en el foro de Zend en Foros del Web. He visto muchos temas donde al empezar a trabajar, siguen todo como en el Quickstart y tienen luego problemas al subir a sus hosts con ...
  #1 (permalink)  
Antiguo 02/06/2011, 08:29
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Configuración Correcta de Zend Framework antes de trabajar

He visto muchos temas donde al empezar a trabajar, siguen todo como en el Quickstart y tienen luego problemas al subir a sus hosts con CPanel, o alguno similar porque estan en una subcarpeta, y en su local no lo estaban, o no crean un virtual host para trabajar por desconocimiento de como migrar a su servidor.

Por eso pongo esta pequeña guia de lo que tienen que hacer antes de empezar a desarrollar su aplicación, pensando en migrar a un servidor de estos.

Primero creamos nuestro proyecto con el ZF Tool de la manera habitual, vamos a suponer que esta en C:\web\sites\zfapp, después, creamos su virtual host, es un paso necesario y hay mucho material disponible:

http://www.maestrosdelweb.com/editorial/host/
http://framework.zend.com/manual/en/...e-project.html

Una vez que este listo, vamos a suponer que nuestro virtual host es http://zfapp.local (que apunta a C:\web\sites\zfapp\public), vamos a migrar todo el contenido de nuestra carpeta public a un subdirectorio dentro de esta, este subdirectorio se debe de llamar igual que la carpeta donde vas a subir los archivos en tu host (CPanel).

Por ejemplo si nuestra app va a vivir dentro de: http://host(cpanel).com/zfapp/ entonces creamos una carpeta dentro de public llamada zfapp y ahí pegamos el index.php, .htaccess, etc.

Es importante dejar todo lo demás (application, library, etc.) en sus carpetas originales, es decir en C:\web\sites\zfapp.

Lo siguiente a modificar es el index.php ubicado dentro de nuestra carpeta public/zfapp. Como las rutas creadas son diferentes a lo que vamos a utilizar, solo es cuestión de indicar correctamente el include path dentro de nuestro index.php.

Originalmente esta así:
Código PHP:
Ver original
  1. // Define path to application directory
  2. defined('APPLICATION_PATH')
  3.     || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));
  4.  
  5. // Define application environment
  6. defined('APPLICATION_ENV')
  7.     || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production'));
  8.  
  9. // Ensure library/ is on include_path
  10. set_include_path(implode(PATH_SEPARATOR, array(
  11.     realpath(APPLICATION_PATH . '/../library'),
  12. )));

Como nuestra carpeta application y library van a estar en un directorio superior, solo es cuestión de pasarlo (modificando la línea 2):
Código PHP:
Ver original
  1. // Define path to application directory
  2. defined('APPLICATION_PATH')
  3.     || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../../application'));
  4.  
  5. // Define application environment
  6. defined('APPLICATION_ENV')
  7.     || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production'));
  8.  
  9. // Ensure library/ is on include_path
  10. set_include_path(implode(PATH_SEPARATOR, array(
  11.     realpath(APPLICATION_PATH . '/../library'),
  12. )));

Al hacer esto, le decimos a Zend que nuestro directorio raiz va a estar en un directorio más arriba al normal, también podemos cambiar realpath(dirname(__FILE__) . '/../../application') por la ruta exacta a nuestro directorio application (esto hace un poco más rápido la carga de Zend ya que así no tiene que buscar la ruta). Si haces esto, también se puede cambiar la ruta al directorio library para asegurar que todo sea lo más optimo posible (línea 11).

Con esto al entrar a http://zfapp.local/zfapp/ debemos de ver la pagina inicial de Zend sin problema, ahora al codificar es importante usar el baseUrl helper:
Código PHP:
Ver original
  1. /*
  2. * Prints:
  3. * <base href="/zfapp/" />
  4. */
  5. <base href="<?php echo $this->baseUrl(); ?>" />
  6.  
  7. /*
  8. * Prints:
  9. * <link rel="stylesheet" type="text/css" href="/zfapp/css/base.css" />
  10. */
  11. <link rel="stylesheet" type="text/css"
  12.      href="<?php echo $this->baseUrl('css/base.css'); ?>" />

Para que en la pagina web se pueda ver correctamente todos los assets.

Con esto al migrar un hosting como CPanel va a ser muy simple:
- Primero subimos nuestra carpeta application, y library a un directorio por arriba de la carpeta httpdocs.
- Posteriormente creamos el subdirectorio dentro de httpdocs (zfapp), y ahí subimos la carpeta zfapp con todos los elementos (.htaccess, index.php, etc.).

Con eso la migración es sencilla y podemos desarrollar sin problemas a la hora de hacer el release de la aplicación.

Saludos.

Última edición por GatorV; 23/01/2012 a las 14:08
  #2 (permalink)  
Antiguo 02/06/2011, 08:39
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Configuración Correcta de Zend Framework antes de trabajar

Muy bueno para los que quieren comenzar a trabajar con Zend
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 02/06/2011, 09:04
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Configuración Correcta de Zend Framework antes de trabajar

Como siempre, excelente GatorV, una pregunta, no se puede asociar al tag de Zend el thread ?, como el FAQ de OOP, porque hay varios temas que estamos repitiendo continuamente las respuestas y seria bueno tener FAQ's de Zend, sino se puede asociar a los tag's podría ser una buena sugerencia para el foro.

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #4 (permalink)  
Antiguo 02/06/2011, 10:57
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Configuración Correcta de Zend Framework antes de trabajar

@masterpuppet, no entiendo a que te refieres, ya tiene el tag de Zend...
  #5 (permalink)  
Antiguo 02/06/2011, 10:58
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Configuración Correcta de Zend Framework antes de trabajar

Eso mismo pensé
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #6 (permalink)  
Antiguo 02/06/2011, 12:10
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Configuración Correcta de Zend Framework antes de trabajar

Me refiero a si se puede hacer un Sticky a un tag ?, ya que Zend no es un foro, en caso que no se pueda, se puede crear un Sticky para Zend en este foro ?

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #7 (permalink)  
Antiguo 02/06/2011, 13:38
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Configuración Correcta de Zend Framework antes de trabajar

No creo que se pueda hacer un "sticky" a un tag, pero si hay un sticky para los frameworks, o había lo voy a buscar y dejarlo como sticky para poner ahí los FAQs para los frameworks.
  #8 (permalink)  
Antiguo 15/06/2011, 10:03
 
Fecha de Ingreso: febrero-2009
Mensajes: 218
Antigüedad: 15 años, 2 meses
Puntos: 9
Respuesta: Configuración Correcta de Zend Framework antes de trabajar

Hola amigos, les cuento lo que yo hice...

Subi lo que tenía dentro de "public" (en local) al archivo pubic_html del servidor... el resto de los archivos los dejé afuera de public_html.

En pocas palabras, es como si al archivo public de ZF, le hubiese cambiado el nombre a public_html y hubiese subido todo como esta.

Así anda perfecto... quisiera saber si tiene alguna desventaja (la unica diferencia que noto es que no le agregue la carpeta zfapp, dentro de public).

saludos.
  #9 (permalink)  
Antiguo 15/06/2011, 10:35
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Configuración Correcta de Zend Framework antes de trabajar

@fernandozunni no, de hecho esa es la forma correcta de subir, esta forma que expongo es para la gente que no penso en subir su app en ZF directamente, si no que la quería en un subdirectorio desde un inicio...
  #10 (permalink)  
Antiguo 26/04/2012, 12:27
 
Fecha de Ingreso: agosto-2004
Mensajes: 79
Antigüedad: 19 años, 8 meses
Puntos: 0
Pregunta Respuesta: Configuración Correcta de Zend Framework antes de trabajar

Cita:
Iniciado por GatorV Ver Mensaje
@fernandozunni no, de hecho esa es la forma correcta de subir, esta forma que expongo es para la gente que no penso en subir su app en ZF directamente, si no que la quería en un subdirectorio desde un inicio...
Pregunta: Y si tienes un hosting compartido, por ftp solo llegas a tu directorio public asignado, no tienes acceso hacia arriba, por lo tanto debo subir toda la estructura

/application
/docs
/library
/public

En este caso, qué debo hacer para que al escribir mi dominio llegue directo al index y no muestre los directorios?
  #11 (permalink)  
Antiguo 26/04/2012, 12:38
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Configuración Correcta de Zend Framework antes de trabajar

Ese caso es un poco más complicado pero no imposible, pon /application y /library directamente donde este tu index.php y solo ajusta las rutas en el index.php:
Código PHP:
Ver original
  1. // Define path to application directory
  2. defined('APPLICATION_PATH')
  3.     || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/application'));
  4.  
  5. // Define application environment
  6. defined('APPLICATION_ENV')
  7.     || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'development'));
  8.  
  9. // Ensure library/ is on include_path
  10. set_include_path(implode(PATH_SEPARATOR, array(
  11.     realpath(APPLICATION_PATH . '/../library'),
  12. )));

Así ya no usas la carpeta "public" ya que va a ser la carpeta raiz, el único inconveniente es que dejas la carpeta application/config/config.ini abierto así que usa un .htaccess para denegar el contenido de esa carpeta (o de todo application).

Saludos.
  #12 (permalink)  
Antiguo 27/04/2012, 00:52
Avatar de Uncontroled_Duck
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Málaga [Spain]
Mensajes: 806
Antigüedad: 12 años, 11 meses
Puntos: 261
Respuesta: Configuración Correcta de Zend Framework antes de trabajar

En una ocasión hice algo similar, pero lo solucione con dos .htaccess

Manteniendo la estructura de Zend

Uno en el root
Código:
#SetEnv APPLICATION_ENV development

RewriteEngine On
RewriteRule ^\.htaccess$ – [F]
RewriteCond %{REQUEST_URI} =''
RewriteRule ^.*$ /public/index.php [NC,L]
RewriteCond %{REQUEST_URI} !^/public/.*$
RewriteRule ^(.*)$ /public/$1
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^.*$ – [NC,L]
RewriteRule ^public/.*$ /public/index.php [NC,L]
Y el otro en la carpeta public
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]
Las carpetas me permitían protegerlas desde el panel de control del server.

Saludos,
__________________
Todos agradeceremos que pongas el código en su respectivo Highlight
  #13 (permalink)  
Antiguo 30/04/2012, 16:28
 
Fecha de Ingreso: agosto-2004
Mensajes: 79
Antigüedad: 19 años, 8 meses
Puntos: 0
Respuesta: Configuración Correcta de Zend Framework antes de trabajar

probé con los dos .htaccess y sigue mostrando el directorio
  #14 (permalink)  
Antiguo 30/04/2012, 20:49
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Configuración Correcta de Zend Framework antes de trabajar

Usa lo que te digo, tu carpeta public va a ser la raiz, ya no debes de ponerla aparte, si no a la par de todo.

Saludos.
  #15 (permalink)  
Antiguo 04/05/2012, 07:14
 
Fecha de Ingreso: diciembre-2008
Ubicación: PERU
Mensajes: 294
Antigüedad: 15 años, 4 meses
Puntos: 23
Respuesta: Configuración Correcta de Zend Framework antes de trabajar

Ya que tocas el tema.
Cuando tengo que correr mis proyectos Zend tengo que habilitar el include_path en el php.ini.
Y si quiero correr proyectos CodeIgniter debo desactivar (comentar) el include y dejarlo como estaba antes, porque si lo dejo con el include_path me arroja error, existe la manera de trabajar con los dos Framework juntos?

Yo tengo trabajando zend con appserv y mis proyectos los tengo asi:
localhost/zendwebunit/public/

Esta ok o mejor es ubicarlo asi: localhost/zendwebunit/

Última edición por yuo2; 04/05/2012 a las 07:37
  #16 (permalink)  
Antiguo 04/05/2012, 11:03
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Configuración Correcta de Zend Framework antes de trabajar

Usa un virtual host, con eso puedes tener directivas específicas por cada Host que no hagan conflicto con las otras.

Saludos.
  #17 (permalink)  
Antiguo 06/03/2015, 15:46
 
Fecha de Ingreso: marzo-2015
Mensajes: 1
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Configuración Correcta de Zend Framework antes de trabajar

Algún vídeo tutorial para poder configurar mi zf....

Etiquetas: cpanel, faq, framework, frameworks-y-php-orientado-a-objetos, trabajo
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

SíEste tema le ha gustado a 6 personas




La zona horaria es GMT -6. Ahora son las 01:47.