Spanish (Español) translation by Rafael Chavarría (you can also view the original English article)



¿Quieres saber más sobre Yii? Lee Introducción al Framework Yii y sigue nuestra serie Programación Yii.
Bienvenido
En el tutorial de hoy, explicaré cómo instalar Yii en un entorno local de desarrollo tanto en Windows como en macOS. Para la guía de Windows, dependemos del Servidor WAMP, un entorno de desarrollo Windows para Apache, PHP y Mac, y para la guía Mac, usaremos a su primo, MAMP. Aunque Rod usa WAMP en el tutorial de hoy, también hay una versión para Windows de MAMP.
Estoy escribiendo la porción Mac de esta guía, y mi colega Rod Ussing está escribiendo el lado de Windows. Conocí a Rod en la preparatoria en California en mi segundo trabajo de programación, un número hexadecimal muy grande hace años. El aún usa Windows, pero después de ocho años de trabajar en Microsoft y cansado de reiniciar el sistema o reiniciar Outlook, lo abandoné por macOS.
¿Qué Es Yii?
Yii es un framework para PHP increíblemente confiable, bien diseñado y de alto desempeño, como Rails es para Ruby y similar a Laravel. Si te estás preguntando si puedes construir aplicaciones del mundo real en Yii, revisa Meeting Planner y nuestra serie Construyendo Tu Startup.
Cómo Programar Con Yii2: Usando la Plantilla Avanzada de Aplicación
Construyendo Tu Startup Con PHP: Tabla de Contenidos
Amo codificar en Yii. Todo es más rápido y sencillo para mi. Y es relativamente fácil en cuanto a frameworks se refiere (ese soy yo juzgando a Rails).
Comenzaremos con los básicos de lo que es único de instalar Yii en macOS, y después continuaremos con Windows. En cuanto a lo que se necesita para completar la instalación en cada plataforma, describiremos las instrucciones restantes de forma unificada para ambas plataformas.
Eligiendo Entre Yii Básico y Yii Avanzado
Yii Básico es la forma más simple de Yii. Puedes construir todo tipo de aplicaciones con el, pero es mejor para nivel individual, ej. un lado del cliente.
Aquí está la estructura de directorio de una aplicación Yii Básica con solo un conjunto de directorios para una sola aplicación:
assets/ contains assets definition commands/ contains console commands (controllers) config/ contains application configurations controllers/ contains Web controller classes mail/ contains view files for e-mails models/ contains model classes runtime/ contains files generated during runtime tests/ contains various tests for the basic application vendor/ contains dependent 3rd-party packages views/ contains view files for the Web application web/ contains the entry script and Web resources
La Plantilla Avanzada de Proyecto Yii2 es mejor para desarrollar aplicaciones Web complejas con múltiples niveles, tales como front end, back end, y consola, cada uno de los cuáles es una aplicación Yii separada. Por ejemplo, los sitios administrativos pueden ejecutarse en el back end, y las tareas cron puedes ejecutarse en el entorno de consola.
En contraste, aquí está la estructura de directorio para una aplicación Yii Avanzada con múltiples niveles:
common config/ contains shared configurations mail/ contains view files for e-mails models/ contains model classes used in both backend and frontend tests/ contains tests for common classes console config/ contains console configurations controllers/ contains console controllers (commands) migrations/ contains database migrations models/ contains console-specific model classes runtime/ contains files generated during runtime backend assets/ contains application assets such as JavaScript and CSS config/ contains backend configurations controllers/ contains Web controller classes models/ contains backend-specific model classes runtime/ contains files generated during runtime tests/ contains tests for backend application views/ contains view files for the Web application web/ contains the entry script and Web resources frontend assets/ contains application assets such as JavaScript and CSS config/ contains frontend configurations controllers/ contains Web controller classes models/ contains frontend-specific model classes runtime/ contains files generated during runtime tests/ contains tests for frontend application views/ contains view files for the Web application web/ contains the entry script and Web resources widgets/ contains frontend widgets vendor/ contains dependent 3rd-party packages environments/ contains environment-based overrides
Cada nivel es su propio sitio, pero ellos pueden compartir fácilmente código y una base de datos común si se desea. Uso esta plantilla en nuestra serie startup. Yii Avanzado también proporciona soporte de configuración avanzada para diferentes entornos, haciendo el desarrollo en equipo más sencillo.
Preparando macOS para Yii
He estado codificando en Yii en macOS durante varios años ya. Seguro, hay muchas maneras diferentes para ejecutar un entorno Apache, MySQL, PHP en una Mac, pero prefiero MAMP.
Instalando MAMP



Básicamente, solo visita el sitio web de MAMP y descarga el paquete macOS:



Una vez descargado, puedes arrastrar el paquete a la carpeta de Aplicaciones y dar doble clic para lanzar MAMP. Esto mostrará una ventana MAMP:



Configurando MAMP
Da clic en Preferencias para configurar los puertos en los que quieres el servidor (yo uso 8888
para Apache):



Da clic en Servidor Web para revisar o cambiar el directorio de tu servidor. Uso Apache de manera local:



Instalando Composer en macOS
Yii2 requiere Composer, un popular administrador de dependencias para PHP. Si aún no tienes Composer instalado, haz lo siguiente:
curl -s http://getcomposer.org/installer | php mv composer.phar /usr/local/bin/composer
Después, usa Composer para instalar Yii2. La instalación requiere que uses las credenciales de tu propia cuenta GitHub; regístrate si no tienes una cuenta.
Como Rod describe más abajo, instalar Yii requiere el complemento de recurso composer:
composer global require "fxp/composer-asset-plugin:1.0.0-beta2"
El recomienda configurar una cuenta con GitHub y configurar una llave de acceso. La razón para esto es que durante la instalación de Yii, el número de peticiones podría exceder la tasa límite de la API GitHub, y Composer podría detenerse y pedirte las credenciales de acceso para obtener una llave de acceso de API GitHub durante la instalación.
Cuando esté listo, puedes instalar Yii. Usaremos Yii básico y lo instalaremos en el directorio ~/sites/hello
:
composer create-project --prefer-dist yiisoft/yii2-app-basic hello
Después, crea un symlink para MAMP para tu directorio de aplicación Sites:
cd /Applications/MAMP/htdocs ln -s ~/Sites/hello/ /Applications/MAMP/htdocs/hello
Si decides instalar Yii avanzado, entonces podría ayudar activar y personalizar tu archivo virtual host:
$ nano /Applications/MAMP/conf/apache/httpd.conf # Virtual Hosts Include /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf
Debajo, he configurado frontend.dev y backend.dev para mapear a una instalación de Yii Avanzado en el directorio ~/sites/yiiplus
el cuál tiene un enlace simbólico en /Applications/MAMP
.
$ nano /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf NameVirtualHost *:8888 <VirtualHost *:8888> ServerName frontend.dev DocumentRoot /Applications/MAMP/htdocs/yiiplus/frontend/web/ <Directory "/Applications/MAMP/htdocs/yiiplus/frontend/web/"> # use mod_rewrite for pretty URL support RewriteEngine on # If a directory or a file exists, use the request directly RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # Otherwise forward the request to index.php RewriteRule . index.php # use index.php as index file DirectoryIndex index.php # ...other settings... </Directory> </VirtualHost> <VirtualHost *:8888> ServerName backend.dev DocumentRoot /Applications/MAMP/htdocs/yiiplus/backend/web/ <Directory "/Applications/MAMP/htdocs/yiiplus/backend/web/"> # use mod_rewrite for pretty URL support RewriteEngine on # If a directory or a file exists, use the request directly RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # Otherwise forward the request to index.php RewriteRule . index.php # use index.php as index file DirectoryIndex index.php # ...other settings... </Directory> </VirtualHost>
Si decides usar Yii Avanzado, te aliento a que también revises mi tutorial sobre esto el cuál ofrece más detalles.
Esos son pasos específicos de plataforma para macOS. Ahora echemos un vistazo a prepararse para Yii en Windows. Después, regresaremos para terminar las configuraciones con pasos que funcionan para ambas plataformas. Si eres estrictamente usuario macOS, salta directamente a la sección Completando la Configuración Yii.
Preparando Windows para Yii
Para Yii en Windows, vamos a usar WAMP. Para comenzar, necesitarás descargar y configurar WAMP en tu computadora Windows. Para este tutorial, estaremos instalando WAMP en tu computadora local (la cuál el servidor tratará como localhost). Si deseas instalar en un servidor Windows de producción, necesitarás contactar a tu proveedor para detalles de servidor y seguir las recomendaciones para instalar y configurar WAMP Server o una alternativa Apache, MySQL, PHP para ese entorno.
Instalando WAMP



Como el foco de este tutorial es sobre instalar Yii, sugerimos que consultes uno de los muchos excelentes tutoriales existentes que cubren instalar WAMP; estarás sorprendido de lo sencillo que es. Como también es una aplicación PHP, la guía WordPress para instalar WAMP es un buen punto de partida.
Una vez que hemos instalado y configurado WAMP, necesitamos instalar Composer, el cuál es un administrador de dependencias e instalador para proyectos PHP. Esto nos permitirá comenzar con nuestra instalación Yii.
Instalando Composer en Windows
Aunque puedes descargar paquetes Yii desde GitHub, en este tutrial estamos usando Composer para instalarlo. Si no estás familiarizado con Composer, puedes aprender más en este tutorial.
Primero vayamos a GitHub para descargar e instalar la última versión de Composer-setup.exe, que en este momento es v4.5.0.
Una vez que la instalación está completa, es buena idea cerrar sesión e iniciar sesión de nuevo para asegurar que todos los archivos están actualizados [Jeff: o compra una Mac].
Puedes revisar tu instalación abriendo la línea de Comando e ir a:
cd \Users\your-username
Ingresa el siguiente comando:
composer -V
La información de versión para Composer debería entonces mostrarse, algo como:
Composer version 1.4.1 2017-03-10 09:29:45
Instalando el Complemento de Recurso Composer
Para poder administrar tus recursos de proyecto en el .json de Composer, sin tener que instalar NPM o Bower, necesitarás asegurar que Composer tiene todos los paquetes que necesita ejecutando el comando de instalación para el complemento de Recursos Composer.
Abre la línea de comando en Windows y navega a donde está ubicado tu carpeta PHP. En esta instalación, PHP está localizado en el directorio wamp64\bin\ y es PHP versión 7.0.10, así que tecleamos:
cd \wamp64\bin\php\php7.0.10
Después teclea el siguiente comando:
composer global require "fxp/composer-asset-plugin:^1.3.1"
Ten en mente que el software cambia, así que siempre asegúrate de revisar que estás trabajando con la versión estable más actual. Ten cuidado con betas porque si llegas muy lejos en la innovación, las cosas podrían comenzar a romperse.
Para las versiones más actuales de Composer y Complemento de Recurso Composer:
Configurando WAMP para tu Aplicación Yii
Ahora, configuremos WAMP para Yii. Cambia tu directorio a la instalación WAMP \www para esta instalación:
cd \wamp64\www
En este directorio, crearemos un nuevo directorio llamado Yii Basic tecleando:
mkdir yii-basic
Aquí es donde vamos a instalar Yii Básico. Podrías saltar este paso e instalar Yii directamente en el directorio www, pero crear un directorio nombrado claramente evita confusión, especialmente si planeas instalar Yii Básico y plantillas avanzadas Yii.
En el nuevo directorio yii-basic, ejecutamos el siguiente comando para instalar la Plantilla Yii Basic:
composer create-project --prefer-dist --stability=dev yiisoft/yii2-app-basic yii-basic
Podemos verificar Yii navegando a la carpeta "Basic" en el directorio que creaste:
cd \wamp64\bin\www\
Ahora tecleamos el comando:
PHP yii serve
Esto iniciará Yii usando el motor PHP de WAMP.
Configurando el Archivo Host en Windows
Si quieres personalizar las direcciones locales del navegador para tu sitio, o referir de manera distinta al front end y back end del sitio Avanzado Yii, necesitarás hacer un poco más.
Ya sea usando el menú desplegable Abrir Archivo del editor de texto o navegando directamente en Explorador de Windows, ve al archivo:
C:\Windows\system32\drivers\etc\hosts
Estamos buscando la sección que se lee:
# localhost name resolution is handled within DNS itself. 127.0.0.1 localhost
En preparación para sitios múltiples de Yii-Avanzado, agreguemos uno para frontend y uno para backend:
127.0.0.1 frontend.dev 127.0.0.1 backend.dev
Lucirá como esto:



Puedes encontrar más sobre encontrar y configurar tu archivo Host de Windows aquí.
Habilitando Hosts Virtuales en el Archivo httpd.conf
Es una buena idea revisar que los Hosts Virtuales estén habilitados en el archivo Apache httpd.conf.
Sé muy cuidadoso cuando edites el archivo httpd.conf---haz una copia antes de comenzar, y asegúrate de que entiendes lo que estás haciendo antes de hacer ediciones, de otro modo puedes arruinar fácilmente tu servidor WAMP. [Jeff aquí, suena a que Rod lo dice por experiencia.]
Para encontrar httpd.conf, teclea:
cd \wamp64\bin\apache\apache2.4.23\conf
Me gusta esta guía para una explicación más detallada de editar httpd.conf para habilitar funciones relacionadas a Hosts Virtuales en Apache y configurando Hosts Virtuales en WAMP.
Configurando Hosts Virtuales
Ahora necesitamos configurar nuestros Hosts Virtuales Apache. Usando nuestro menú de editor de texto o Explorador Windows, navegaremos al siguiente directorio:
C:Wamp64\bin\apache\apache2.4.23\conf\extra\httpd-vhosts.conf
Ya debería haber un Host Virtual para localhost, así que ahora necesitamos agregar Hosts Virtuales para frontend Yii y backend Yii. Recomiendo que teclees el nombre encima de cada Host Virtual para evitar confusión. (¡No olvides comentar el nombre!)
ej. #Frontend
El archivo de configuración Host Virtual debería lucir algo como esto.
En este ejemplo, instalamos Yii Avanzado en c:/wamp64/www/yii-advanced
y creamos una aplicación llamada yii-application. También es correcto instalar Yii en www así que tu ruta podría leerse de manera más simple c:/wamp64/www/myapp/frontend/web.



Pon mucha atención a las líneas DocumentRoot
y Directory
. Estas deben contener la ruta completa al directorio de aplicación Yii hasta el archivo "web" que está ubicado dentro de los directorios frontend y backend respectivamente. El contenido de DocumentRoot y Directory es idéntico excepto que la ruta para Directory está contenido en comillas.
Instalando la Plantilla Yii-Avanzada para Windows
Para instalar la plantilla avanzada Yii, regresemos al directorio wamp64\www:
cd \wamp64\www
Ahora crearemos un nuevo directorio nombrado yii-advanced:
mkdir yii-advanced
En el nuevo directorio, ejecutamos el siguiente comando, el cuál instalará la plantilla Avanzada Yii:
composer create-project --prefer-dist yiisoft/yii2-app-advanced yii-application



Hasta ahora, la instalación de Yii Básico y Yii Avanzado ha sido la misma. Ahora necesitaremos agregar unos cuantos pasos más para tener tu Plantilla Yii Avanzada lista para la acción.
Completando la Configuración Yii
Pasos para Windows y Mac
Creando la Base de Datos MySQL
Asumiendo que PHPmyAdmin está instalado en tu servidor WAMP (está incluido con MAMP), puedes de hecho crear la base de datos vía la GUI de PHPmyAdmin, pero vamos a usar la linea de comando SQL, la cuál honestamente no toma mucho esfuerzo.
En la línea de comando Windows, navega a la carpeta MySQL tecleando:
cd \wamp64\www\bin\mysql\mysql5.7.14\bin
También puedes hacer esto desde cualquier lugar siempre que tengas WAMP o MAMP en tu ruta local de entorno.
Después, tanto para Mac como para Windows, teclea:
mysql -u root -p
Esto nos traerá la línea de comando mysql. Ahora ejecutaremos el siguiente comando en SQL:
create database yii2test;
(Puedes nombrar la base de datos como quieras, asegurando que uses el nombre apropiado a través del resto del proceso.)
Ahora crearemos un nombre de usuario y contraseña para esta base de datos tecleando los siguientes comando SQL:
GRANT ALL ON yiit2est.* TO 'your-username'@'localhost' IDENTIFIED BY 'your_chosen_password’; FLUSH PRIVILEGES; EXIT;
Ahora dejarás MySQL y regresarás a la consola de línea de comando.
Mantén el nombre de usuario y contraseña de la base de datos a la mano ya que los necesitaremos para configurar el archivo de configuración PHP (common/config/main-local.php), el cuál habilita a Yii para comunicarse de manera segura con MySQL.
Inicializando la Aplicación Avanzada Yii
Esto es innecesario para instalaciones Yii-básico.
Para inicializar Yii avanzado, necesitaremos navegar a la carpeta de aplicación Avanzada Yii. En este caso, esa sería:
cd \wamp64\www\yii-advanced\
Después teclea init
:
Esto comenzará el script de inicialización el cuál preguntará si quieres inicializar Yii para un entorno de desarrollo o producción, muy probablemente lucirá como esto:
Which environment do you want the application to be initialized in? [0] Development [1] Production
Para el propósito de este tutorial, estaremos trabajando en un entorno de desarrollo, a´si que teclea 0 y presiona enter, y después teclea "yes" (sin comillas) cuando se te pregunte y la inicialización se completará.
Ya casi terminamos---todo lo que resta ahora son unos cuantos pasos de configuración, y puedes comenzar a programar con Yii.



Actualizando los Ajustes de Configuración Yii
Para Yii-basic, estarás editando /yii-basic/config/db.ini
. Para, Yii-advanced, estarás editando /yii-advanced/common/config/main-local.php
.
Para poder editar este archivo, necesitaremos usar un editor de texto. Atom es una gran opción que te servirá bien mientras te adentras a codificación más avanzada.
Para abrir el archivo de configuración, usa el menú desplegable Abrir Archivo en el editor de texto o navega directamente al archivo de configuración usando Explorador de Windows y da clic derecho Abrir Con y selecciona tu editor de texto. (En Windows, podrías necesitar ejecutar el editor de texto como administrador.)
El siguiente ejemplo de la instalación que estamos usando hoy ilustra este proceso. Ten en mente que podrías estar usando una designación de disco diferente y tener una ruta ligeramente diferente dependiendo de cómo nombraste tus carpetas.
El archivo de configuración debería lucir algo como esto:



Recuerda ingresar el mismo nombre de usuario y contraseña que usaste para configurar tu base de datos Yii MySQL, ¡de otro modo Yii y MySQL no funcionarán bien!
¡Y por favor ni siquiera pienses en usar tu nombre de usuario y contraseña root de tu base de datos en el archivo de configuración! [Jeff aquí ... en serio, no lo hagas.]
Usando la Herramienta de Migración Yii
Yii Avanzado tiene sus propias migraciones. Ahora que MySQL está configurado, necesitaremos algunas tablas. Las migraciones Yii crean tablas y esquemas en tu base de datos MySQL de manera programática.
Para comenzar la herramienta de Migración Yii en Windows, necesitamos ir a nuestro directorio de Instalación Yii tecleando:
cd \wamp64\www\yii-advanced\yii-application
De nuevo, puedes elegir instalar sin el directorio padre que Rod creó para esta demostración. Por ejemplo, para MAMP, estoy usando:
$ cd ~/sites/yii-advanced
Ahora teclea el siguiente comando:
yii migrate
En un momento se te preguntará si quieres "¿Aplicar la migración de arriba?"
Tecleas Yes
y presiona Enter. Si todo sale bien, obtendremos un mensaje de que Yii migró exitósamente.



Visitando Tu Sitio Web Yii
Ahora para el momento de la verdad. Cuando visitas localhost:8888
en tu navegador, deberías ver:



Para Yii Avanzado, podrías necesitar intentar fontend.dev
o incluir el sitio frontend o backend, ej. localhost:8888/frontend
. Si no habilitas tu archivo host, puedes acceder a Yii directamente vía la ruta, localhost:8888/web
.
Si instalaste la plantilla avanzada, ve al enlace de Registro e ingresa un nombre de usuario, la dirección de correo electrónico que deseas usar, y una contraseña.
No uses tu contraseña MySQL (la que ingresaste al archivo de configuración PHP). Esta es la cuenta de usuario de la base de datos con nuevos nombres de usuario y contraseñas.
Tu primer registro de usuario también será el usuario administrativo de la aplicación de Yii con acceso a todo.
Ahora que estás registrado, teclea en el navegador:
backend.dev
Deberías obtener una pantalla de inicio de sesión en donde puedes ingresar tu nombre de usuario y contraseña:



Esto te llevará directamente de vuelta a la página "Felicidades
" de Yii de arriba pero como un usuario identificado.
Ahora con todas estas felicitaciones, por qué no felicitarte a ti mismo ya que has instalado Yii exitosamente. Bien hecho. [Jeff aquí, si hiciste esto en Windows, ve a comprar una Mac y pruébalo ahí.]
En Conclusión
Espero que nuestro tutorial de hoy te ayude a comenzar con Yii. Rod y yo disfrutamos escribir esto juntos.
Espera futuros tutoriales en nuestra serie Programando con Yii2 mientras continuamos sumergiéndonos en diferentes aspectos del framework. Asegúrate de revisar nuestra serie Construyendo Tu Startup Con PHP que está usando la plantilla avanzada de Yii2 mientras construimos una aplicación del mundo real.
El episodio Comenzando de Cómo Programar con Yii hace un grandioso trabajo de entrar en detalle sobre configurar Yii básico y un servidor de producción Linux.
Si quisieras saber cuándo llega el siguiente tutorial Yii2, sígueme en Twitter @reifman o revisa mi página de instructor. Mi página de instructor incluirá todos los artículos de esta serie tan pronto sean publicados.