Alojamiento para Laravel

Alojar una aplicación con Laravel en un VPS de DigitalOcean

Configuración del alojamiento en el VPS con Laravel en el Marketplace de DigitalOcean.com:

VPS en DigitalOcean.com

Setup a Droplet for Laravel 8

Configuración del alojamiento en el VPS con LEMP:

Configuración inicial del servidor con Ubuntu 20.04

# servidor VPS con LEMP
ssh root@alumno.me

adduser paco
usermod -aG sudo paco

logout

ssh paco@alumno.me

apt install mc

php -v

sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update

sudo apt install php8.2-fpm

sudo systemctl status php8.2-fpm

sudo apt-get install php8.2-mysql php8.2-mbstring php8.2-xml php8.2-bcmath

nano /etc/nginx/sites-available/todo

Contenido del fichero /etc/nginx/sites-available/todo

server {
        listen 80;
        listen [::]:80;
        # Set root directive with your /public Laravel directory
        root /home/usuario/todo/public;
        # Set index directive with index.php
        index index.php;
        # Set server_name directive with the hostname
        server_name todo.alumno.me;
        location / {
                    try_files $uri $uri/ /index.php?$query_string;
        }
        # pass PHP scripts to FastCGI server
        location ~ \.php$ {
                    include snippets/fastcgi-php.conf;
                    fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
        }
        location ~ /\.ht {
                    deny all;
        }
}

Modificar la directiva root (con la ruta propia):

root /home/usuario/todo/public;

server_name (con el dominio propio)

server_name todo.alumno.me;

y la configuración de php (con la versión usada de php)

fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;

Enlazar el fichero todo en sites-available a la carpeta sites-enabled para habilitar el servidor virtual

ln -s /etc/nginx/sites-available/todo /etc/nginx/sites-enabled/

Reiniciar el servidor web Nginx

nginx -t
service nginx restart

Comprobación del funcionamiento del servidor virtual todo.alumno.me

cd ~
mkdir -p todo/public
nano todo/public/index.php

contenido del fichero index.php en la carpeta home/usuario/todo/public

Servidor virtual ToDo

<?php
echo "<br>";
echo "PHP funciona bien";

Acceso desde el navegador al servidor virtual:

http://todo.alumno.me

Configuración del cortafuegos

ufw allow 'Nginx HTTP'

ufw allow 'OpenSSH'

ufw enable

ufw status

Configuración del certificado para usar https en el subdominio todo.alumno.me

apt-get install certbot python3-certbot-nginx
# certbot --nginx -d host.mydomain.com
certbot --nginx -d todo.alumno.me

Acceso desde el navegador

https://todo.alumno.me

Configuración de la base de datos

cat /root/.digitalocean_password
root_mysql_pass="e21ba1a79f9b6c3b780c8af6b7d53aabe697266be4fd8f82"

apt install mysql-server
mysql_secure_installation
(poner password de la base de datos)

sudo mysql

CREATE DATABASE db_laravel;
CREATE USER 'userdb'@'localhost' IDENTIFIED BY 'Malaga2122*';
GRANT ALL PRIVILEGES ON * . * TO 'userdb'@'localhost';
FLUSH PRIVILEGES;
exit

Deja una respuesta