viernes, 16 de agosto de 2013
Primero que todo pido disculpas si existe algún error en lo que he escrito. Saludos para todos y espero que sea de mucha ayuda.
Empezando
con Symfony 2.3.3 en Windows 8 –x64
Se utiliza
como servidor web WampServer 2.4 –x64 y como entorno de desarrollo integrado el
NetBeans 7.2
1.
Instalamos el WampServer.
2.
Instalamos el NetBeans.
3.
Después de descargar el framework Symfony 2.3.3 se descomprime
en el directorio ‘C:\wamp\www’. (Este
ejemplo esta realizado con la versión de Symfony que tiene los vendors)
4.
Verificamos que la configuración local del sistema
esté preparada para Symfony, esta acción la podemos realizar por dos vías
diferentes.
a)
La primera forma es ejecutando en la consola la
instrucción php app/check.php.
En Windows el comando php no se reconoce apenas se
instala el servidor web por lo que debemos realizar una configuración para que
sea soportado el comando. Con exactitud lo que haremos es colocar la dirección
donde se encuentra el php instalado en la variable de entorno Path.
Window+X/Sistema/Configuración Avanzada del Sistema/
Damos clic en el botón Variables de Entorno, en las
variables del sistema buscamos la variable Path y agregamos la dirección del
php que en mi caso está en ‘C:\wamp\bin\php\php5.4.12’.
b)
La segunda forma y la que se utilizó en este ejemplo
es utilizar una variante que viene con el framework de Symfony, para realizar
esta comprobación introduzca la siguiente url en su navegador web.
Url: http://localhost/Symfony/web/config.php
La comprobación anterior arrojo que todos los
requisitos obligatorios se cumplían y que las siguientes recomendaciones
opcionales deberían ser corregidas. (De las recomendaciones opcionales la
última se dejara sin resolver. Si se desea instalar Symfony en un ambiente de
producción se recomienda que todas las recomendaciones sean rectificadas)
-
Set "xdebug.max_nesting_level" to e.g.
"250" in php.ini* to stop Xdebug's infinite recursion protection
erroneously throwing a fatal error in your project.
Para darle solución a esta recomendación se busca en
el php.ini donde dice ‘[xdebug]’, encontraras unas variables definidas debajo
que tienen que ver con xdebug, al final crea una variable llamada xdebug.max_nesting_level = 250. Para
que la configuración se haga efectiva reinicie el servidor web.
-
Install and enable the intl extension (used for
validators).
Para darle solución a esta recomendación basta con
habilitar la extensión intl en el servidor web. Para que la configuración se
haga efectiva reinicie el servidor web.
-
Install and enable a PHP accelerator like APC (highly
recommended).
Esta recomendación no se resolverá pero es importante
que se corrija si se está configurando un ambiente de producción.
Después de corregir las recomendaciones opcionales
volvemos a la url que se menciona anteriormente y se da clic en ‘Re-check configuration’ para
verificar que los cambios se hicieron efectivos.
5.
Después de verificar que los cambios se hicieron
efectivos en la misma url se da clic en ‘Configure your Symfony Application online’ para configurar el fichero que se
encuentra en ‘app/config/parameters.yml’, el cual se utiliza para la
comunicación con la base de datos y para generar el secreto global de la
aplicación. (Para configurar este fichero también se puede hacer dando clic en
‘configure’ en la siguiente url: http://localhost/Symfony/web/app_dev.php/)
Nota: Antes de configurar el fichero primero crearemos
el usuario que usaremos para conectar la aplicación con la base de datos
utilizando el phpMyAdmin.
Para configurar el fichero ‘parameters.yml’ en la
página solo es necesario el driver, pero como ya estamos haciendo este pasó,
aprovecharemos para cambiar otros datos como son:
-
Name. (Donde dice Symfony pondremos el nombre que
deseamos tenga nuestro proyecto en la base de datos)
-
User. (Usuario que acabamos de crear)
-
Password. (Password que le pusimos al usuario que
acabamos de crear)
-
Password again. (Repetimos el password)
Le damos al botón NEXT STEP para pasar a configurar el
secreto global de la aplicación, le damos al botón generate tantas veces como
queramos y después volvemos a dar al botón NEXT STEP. La acción que acabamos de
hacer te llevara a una página en la que te mostrara la forma en que quedo la
configuración que se realizó al fichero ‘parameters.yml’.
6.
Para verificar que todos los cambios que hemos
realizado hayan sido satisfactorios, visitaremos esta url: http://localhost/Symfony/web/app_dev.php/demo/hello/
Ivan
La página devuelta mostrara un mensaje de: Hello
Ivan!
7.
Ahora pasaremos a configurar el servidor web,
crearemos dos host virtuales, uno que apunte a localhost y otro a nuestro
proyecto.
a)
Editamos el fichero ‘C:\wamp\bin\apache\Apache2.4.4\conf\http.conf’.
Quitamos el comentario (#) en la
línea ‘Include conf/extra/httpd-vhosts.conf’. En este
fichero que acabamos de quitarle el comentario configuraremos los host
virtuales.
b)
Editamos el fichero ‘C:\wamp\bin\apache\Apache2.4.4\conf\extra\httpd-vhosts.conf’.
Quitamos los dos ejemplos de host
virtuales que están por defecto y agregamos las siguientes líneas:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot "C:\wamp\www"
ServerName localhost
ErrorLog "logs/localhost-error.log"
CustomLog "logs/localhost-access.log" common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin webmaster@symfony
DocumentRoot "C:\wamp\www\Symfony\web"
ServerName Symfony
ErrorLog "logs/symfony-error.log"
CustomLog "logs/symfony -access.log" common
</VirtualHost>
El primer host virtual es para que
localhost siga funcionando como hasta ahora. El segundo host virtual es para el
nuevo proyecto que se va a desarrollar. Tener en cuenta que en esta
configuración el ‘DocumentRoot’ que se
ponga debe apuntar a la carpeta web de nuestro proyecto Symfony.
Estas configuraciones te permitirán
realizar lo siguiente:
Esta url: ‘http://localhost/Symfony/web/app_dev.php/’, ahora
podrás utilizarla de la siguiente manera ‘http://Symfony/app_dev.php/’, como ves
es más pequeña y más legible. Esto se logra debido al segundo host virtual, el
cual tiene como:
-
‘DocumentRoot "C:\wamp\www\Symfony\web"’
-
‘ServerName Symfony’
Lo que hace
posible que se pueda cambiar ‘localhost/Symfony/web’ por ‘Symfony’.
c)
Y por último editamos el archivo ‘C:\WINDOWS\system32\drivers\etc\hosts’ y
agregamos lo siguiente para que no salga por el proxy:
127.0.0.1 Symfony
Importante:
agregarlo a las excepciones del navegador para que no use proxy. (Symfony)
8.
Configuramos el
NetBeans.
a)
Proyecto Nuevo
(Ctrl+Mayús+N)
b)
En Seleccionar proyecto, escogemos la Categoría PHP y en Proyectos PHP Aplication with Existing Sources. Damos Siguiente.
c)
En Name and Location, en Sources Folder
buscamos el proyecto en el directorio www del servidor web, lo marcamos y le
damos Abrir. En PHP Version, escogemos el PHP 5.4 y le damos Siguiente.
d)
En Run Configuration, en Index File buscamos en el directorio
web de nuestro proyecto el fichero ‘app_dev.php’
y le damos Select File, luego damos
Terminar.
9.
Seguimos configurando algunos detalles en el NetBeans.
a)
Herramientas/ Opciones/
b)
Damos clic en PHP,
luego vamos a la pestaña Symfony2 y buscamos el Framework de Symfony 2.3.3 con
los vendors y comprimido en zip.
c)
Damos clic en Asignación
de Teclas, en Buscar ponemos Symfony2 y debajo nos salen tres acciones que
podemos ponerles una combinación de teclas (Método abreviado) para poder
realizar dichas acciones mucho más fácil.
d)
Luego se aceptan las modificaciones.
10. Ahora
procedemos a quitar el demo que trae Symfony por defecto del proyecto para
empezar a desarrollar desde cero. El demo se llama ‘AcmeDemoBundle’, lo vamos a
eliminar siguiendo estos pasos:
a)
Borrar Acme que se encuentra en el directorio src/Acme
b)
Eliminar la entrada de enrutamiento referenciando a
AcmeDemoBundle en:
‘app/config/routing_dev.yml’
c)
Eliminar el AcmeDemoBundle de los bundles registrados
en:
‘app/AppKernel.php’
d)
Borrar acmedemo que se encuentra en el directorio
web/bundles/acmedemo
e)
Reemplazar el fichero de seguridad ‘security.yml’ por esto:
security:
encoders:
Symfony\Component\Security\Core\User\User: plaintext
role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]
providers:
in_memory:
memory:
users:
user: { password: userpass,
roles: [ 'ROLE_USER' ] }
admin: { password: adminpass, roles: [ 'ROLE_ADMIN' ] }
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
secured_area:
pattern: ^/
anonymous: ~
http_basic:
realm: "Secured Demo Area"
access_control:
- {
path: ^/admin/, roles: ROLE_ADMIN }
Listo, ya podemos comenzar a desarrollar nuestro proyecto.
No hay comentarios:
Publicar un comentario