El mundo de la programación requiere de aplicaciones que se adapten a su dinamismo, complejidad y escalabilidad diaria ofreciendo soluciones que integren parámetros como compatibilidad, soporte, sencillez, pero robustez de uso y versatilidad.
Existen diversas opciones para los distintos lenguajes de programación donde uno de los más usados y destacados a nivel mundial es PHP y para ello contamos con un framework que impulsará aún mucho más el uso y las posibilidades que PHP ofrece y es Laravel.
Solvetic explicará en detalle como instalar Laravel en CentOS 7 para así contar con una herramienta poderosa para ejecutar e implementar PHP.
Laravel combina lo mejor de otros frameworks existentes donde se incluyen los que son especiales para otros lenguajes de programación como Ruby on Rails, ASP.NET MVC y Sinatra. Al usar Larevel, contamos con un framework que nos aporta todas las herramientas necesarias para crear y administrar aplicaciones grandes y robustas ya que cuenta con contenedores de control, un sistema de migración expresivo y un nuevo soporte de prueba de unidades integrado para facilitar la construcción de cualquier aplicación requerida.
- Autenticación: Laravel cuenta con una autenticación incorporada simple que se puede integrar fácilmente a cualquier aplicación Laravel ejecutando algunos comandos básicos.
- Almacenamiento en caché: El almacenamiento en caché es usado para almacenar datos de forma temporal durante un tiempo para poder recuperarlo de forma rápida, de modo que al usar almacenamiento en caché se puede reducir la carga en el servidor de la base de datos. Laravel cuenta con una API expresiva y unificada con el fin de interactuar con los diversos backends de almacenamiento en caché tales como Memcached y Redis.
- Lógica de aplicación. Al usar Laravel, la lógica de la aplicación está escrita en Controladores o directamente en las rutas.
- Paginación automática: Laravel cuenta con páginas incorporadas que eliminan el proceso de escribir código para los registros de paginación asignados.
- Método o Inyección de Dependencia: Los contenedores de servicios de Laravel cuentan con una herramienta diseñada para administrar dependencias de clases y realizar inyecciones de dependencia en la aplicación.
- Enrutamiento: Cuando usamos Laravel, el enrutamiento se usa para adjuntar URL de aplicaciones a una acción o vista de controlador específica.
Algunas características adicionales son:
- Admite un mecanismo de autenticación simple.
- Soporta la transmisión de eventos en tiempo real.
- Cuenta con una API unificada en múltiples backends de cola donde se integran Amazon SQS y Redis y más, para el almacenamiento de la sesión y el caché.
- Compatible con migraciones independientes de bases de datos y generador de esquemas.
- Admite el procesamiento de trabajos en segundo plano.
- PHP >= 7.1.3
- Extensión OpenSSL PHP
- Extensión PDO PHP
- Extensión Mbstring PHP
- Extensión Tokenizer PHP
- Extensión XML PHP
- Extensión Ctype PHP
- Extensión JSON PHP
Ahora vamos a ver como instalar Laravel en CentOS 7.
1. Configurar los repositorios Yum en CentOS 7 y RedHat
El primer paso que dar consiste en habilitar los repositorios REMI y EPEL en CentOS con el fin de contar con los paquetes actualizados como son PHP, Nginx, MariaDB, y más, para ello vamos a usar los siguientes comandos:
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
2. Instalar Nginx en CentOS 7 y RedHat
Ahora vamos a instalar un entorno de trabajo LEMP en CentOS 7, en caso de no contar con ella, vamos a instalarla ejecutando los siguientes comandos:
yum install nginx
Ingresamos la letra y para confirmar la descarga e instalación de Nginx. Una vez instalado Nginx, vamos a iniciar el servidor web y configurarlo para que se ejecute al arrancar el sistema operativo y luego d esto, vamos a verificar el estado con los siguientes comandos:
service nginx start chkconfig nginx on service nginx status
iptables -A INPUT -p tcp --dport 80 -j ACCEPT service iptables restart
3. Instalar MySQL en CentOS 7 y RedHat
El siguiente paso que dar será la instalación de MySQL para la gestión de las bases de datos, para ello vamos a ejecutar los siguientes comandos:
yum install mariadb-server php-mysql
Ingresamos la letra y para confirmar la descarga e instalación. Procedemos a iniciar el servicio de MySQL:
systemctl start mariadb.service
Aseguramos la instalación de MySQL. Allí respondemos las preguntas en base a la necesidad, pero por lo general todas son afirmativas.
/usr/bin/mysql_secure_installation
4. Instalar PHP en CentOS 7 y RedHat
Ahora, vamos a instalar el lenguaje PHP en CentOS 7 y para ello ejecutamos los siguientes comandos en su orden:
yum install yum-utils yum-config-manager --enable remi-php72 yum install php php-fpm php-common php-xml php-mbstring php-json php-zip
Ingresamos la letra y para aceptar la descarga e instalación. Ahora, vamos a habilitar y configurar PHP para que se ejecute en el arranque de CentOS 7:
service php-fpm start chkconfig php-fpm on service php-fpm status
5. Instalar Composer y Laravel PHP Framework en CentOS 7 y RedHat
Ahora vamos a instalar Composer junto a las dependencias de PHP y Laravel ejecutando los siguientes comandos:
curl -sS https://getcomposer.org/installer | php mv composer.phar /usr/local/bin/composer chmod +x /usr/local/bin/composer
Una vez se haya instalado Composer, vamos a instalar Laravel ejecutando el comando "create-project" del compositor así:
cd /var/www/html/ sudo composer create-project --prefer-dist laravel/laravel testsite
Ahora, cuando vamos a verificar el directorio de prueba “testsite” y comprobar que debe existir allí, conteniendo los archivos Laravel, para ello ejecutamos:
ls -l /var/www/html/testsite
6. Configurar la instalación de Laravel en CentOS 7 y RedHat
Ahora vamos a configurar los permisos apropiados tanto en los archivos como en el directorio creado así:
chmod -R 775 /var/www/html/testsite chown -R apache.apache /var/www/html/testsite chmod -R 777 /var/www/html/testsite/storage/
También, en caso de contar con SELinux habilitado, será necesario actualizar el contexto de seguridad de los directorios de almacenamiento y de arranque/caché con los siguientes comandos:
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/testsite/bootstrap/cache(/.*)?' semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/testsite/storage(/.*)?' restorecon -Rv '/usr/share/nginx/html/testapp'
Ahora, vamos a crear un archivo de entorno para la aplicación, ejecutamos la siguiente sintaxis:
cp .env.ejemplo .env
Luego de esto, Laravel hace uso de una clave de aplicación con el fin de asegurar sesiones de usuario y otros datos cifrados, será necesario generar y establecer la clave de aplicación en una cadena aleatoria usando el siguiente comando:
php artisan key:generate
7. Configurar el bloque de servidor Nginx para Laravel en CentOS 7 y RedHat
Este se debe crear para configurar un bloque de servidor Nginx para el sitio de prueba creado, con el fin de acceder a él desde un navegador web, para ello vamos a crear un archivo .conf en el directorio /etc/nginx/conf.d/ usando el editor deseado así:
nano /etc/nginx/conf.d/testsite.conf
Allí pegaremos lo siguiente:
server { listen 80; server_name (nombre_dominio.com); root /var/www/html/testsite/public; index index.php; charset utf-8; gzip on; gzip_types text/css application/javascript text/javascript application/x-javascript image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php { include fastcgi.conf; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php/php7.2-fpm.sock; } location ~ /\.ht { deny all; } }
Guardamos los cambios usando la combinación de teclas siguiente:
Ctrl + O
Salimos del editor usando:
Ctrl + X
Reiniciamos el servicio de Nginx:
systemctl restart nginx Acceso a Larevel
Ahora podemos ir a algún navegador e ingresar el nombre de dominio o la dirección IP de CentOS 7 para acceder a la información de Larevel. Desde allí podremos acceder a la documentación, noticias y demás.
Así, hemos configurado Larevel para una gestión completa de PHP en CentOS 7.