Instalación de Laravel en Cloud con Debian 10
Contratar Cloud One con Debian Buster 10
En primer lugar, debes disponer de un servidor Cloud, por ejemplo un Cloud One A1. La contratación del Cloud se puede realizar desde nuestra web o en caso de ser ya cliente de SW Hosting, desde tu cuenta SWPanel
Conexión SSH
En el momento de dar de alta el servidor, tanto desde la web como desde el SWPanel, se te enviará un correo electrónico a tu cuenta de correo con las credenciales de acceso SSH (IP y puerto) a tu servidor Cloud para el usuario administrador (Root).
Con estas credenciales podrás acceder a tu servidor e iniciar el proceso de instalación de Laravel.
Crear un usuario
En SW Hosting, recomendamos crear un usuario con permisos elevados y no utilizar el usuario Root para estos fines.
Para crear un usuario lo puedes hacer utilizando los siguientes comandos.
apt install sudo
adduser swtest
usermod -aG sudo swtest
su - swtest
Ahora tenemos un usuario de sistema con privilegios de sudo y ya no deberíamos utilizar Root directamente
Paquetes mínimos necesarios
Empezamos añadiendo los repositorios de PHP 7.4:
sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list
Una vez añadido el repositorio, procederemos a actualizar el listado de paquetes y el Cloud.
sudo apt update
sudo apt upgrade
Una vez actualizado, instalamos los siguientes paquetes esenciales:
sudo apt install lsb-release apt-transport-https ca-certificates git zip unzip
LAMP: Instalar Apache, MariaDB y PHP 7.4
Para empezar, instalamos el servicio de Apache:
sudo apt install apache2
Para verificar el correcto funcionamiento del servicio lo puedes hacer con el siguiente comando:
sudo service apache2 status
También puedes realizar la comprobación con el navegador, utilizando la IP de tu Cloud.
Una vez comprobado el correcto funcionamiento, instalamos el servicio PHP 7.4 y los módulos de mbstring y xml:
sudo apt install php7.4 php7.4-fpm php7.4-mbstring php7.4-xml libapache2-mod-php7.4
Podemos verificar el correcto funcionamiento del PHP creando un pequeño script PHP en /var/www/html, para ello haremos lo siguiente:
cd /var/www/html
sudo nano info.php
El contenido del fichero debe ser el siguiente:
<?php
// Muestra toda la información, por defecto INFO_ALL
phpinfo();
// Muestra solamente la información de los módulos.
// phpinfo(8) hace exactamente lo mismo.
phpinfo(INFO_MODULES);
?>
Fichero oficial: https://www.php.net/manual/es/function.phpinfo.php
Una vez guardado el fichero, lo ejecutamos desde el navegador con la siguiente URL:
http://ipdelservidor/info.php
También puedes comprobar que funciona correctamente con el siguiente comando:
service php7.4-fpm status
Una vez instalado el PHP 7.4 y sus módulos, vamos a proceder a instalar la base de datos MariaDB como servicio (Server) y su módulo de PHP:
sudo apt install mariadb-server php7.4-mysql
Para realizar la comprobación del servicio lo puedes hacer con los siguientes comandos:
service mariadb status
mariadb -p
Crear Virtualhost en Apache
Nosotros utilizaremos como ejemplo manuales.sw.
Para empezar, vamos a crear el archivo de configuración. Para ello, primero deberemos acceder a la ruta y una vez estés en el directorio, crear el archivo de configuración manuales.conf.
cd /etc/apache2/sites-available
sudo nano manuales.conf
En el fichero de configuración, definimos la siguiente configuración:
<VirtualHost *:80>
ServerName manuales.sw
DocumentRoot "/var/www/manuales/public"
</VirtualHost>
Una vez creado el fichero de configuración, activamos el sitio con los siguientes comandos:
sudo a2ensite manuales
sudo systemctl reload apache2
La creación de configuraciones de VirtualHost en tu servidor Apache no hace que mágicamente se creen entradas DNS para esos nombres de host. Debes tener los nombres de DNS resolviendo a tu dirección IP o nadie más será capaz de ver tu sitio web.
Si tu dominio en su zona DNS no está apuntando al Cloud, para realizar las pruebas, puedes editar el archivo de hosts.
*Recuerda que esta configuración solo está disponible en el ordenador donde se ha modificado el archivo de hosts, los demás no, a no ser que se configure el fichero.
Modificar nuestro fichero de hosts
Puedes seguir el siguiente manual para editar el fichero de hosts:
Manual de hosts
En el fichero de hosts, añadiremos una línea:
IP-del-Cloud manuales.sw
Composer
Composer es un sistema de gestión de paquetes para programar en PHP, el cual provee los formatos estándar necesarios para manejar dependencias y librerías de éste.
Para empezar, instalaremos Composer:
sudo php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
sudo php -r "if (hash_file('sha384', 'composer-setup.php') === 'e5325b19b381bfd88ce90a5ddb7823406b2a38cff6bb704b0acc289a09c8128d4a8ce2bbafcd1fcbdc38666422fe2806') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
sudo php composer-setup.php
sudo php -r "unlink('composer-setup.php');"
sudo mv composer.phar /usr/bin/composer
*Puedes consultar más información en la Web oficial de Composer.
Para verificar el correcto funcionamiento del Composer, ejecutaremos el siguiente comando:
composer
Laravel
Una vez instalados los requisitos para ejecutar Laravel, procedemos al despliegue del Framework. Para ello, ejecutamos los siguientes comandos:
Primero, accedemos al siguiente directorio:
cd /var/www
Una vez dentro, ejecutamos el despliegue utilizando el Composer.
Con Composer puedes desplegar diferentes Frameworks que puedes encontrar en la web oficial, en el apartado de "Browse Packages".
Nosotros vamos a utilizar el paquete de laravel/laravel y lo vamos a definir con el nombre de manuales.
Al ejecutar la comanda, éste va a descargar diferentes dependencias y va a crear la carpeta manuales en el directorio actual (en nuestro caso /var/www), donde encontraremos todo el proyecto.
composer create-project --prefer-dist laravel/laravel manuales
Privilegios en carpetas
Una vez creado el proyecto, entraremos en la carpeta manuales y, seguidamente, concederemos los permisos necesarios para su ejecución:
cd manuales
sudo chown www-data:www-data storage/ -R
sudo chown www-data:www-data bootstrap/cache/ -R
Para más información sobre la instalación de laravel, puedes consultar en la Web oficial de Laravel
Puedes continuar configurando los parámetros de Laravel: Conexión a la base de datos, caché, sesiones, etc.