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:
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
Modificar el fichero de configuración del servidor principal
sudo nano /etc/nginx/sites-available/digitalocean
Contenido del fichero /etc/nginx/sites-available/digitalocean
server { listen 80 default_server; listen [::]:80 default_server ipv6only=on; root /var/www/html; index index.php index.html; # Make site accessible from http://alumno.me server_name alumno.me; location / { # First attempt to serve request as file, then # as directory, then fall back to displaying a 404. try_files $uri $uri/ =404; # Uncomment to enable naxsi on this location # include /etc/nginx/naxsi.rules } error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php8.0-fpm.sock; } # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #} }
Modificar server_name (con el dominio propio)
server_name alumno.me;
Configuración del certificado para usar https en el dominio alumno.me
sudo apt install certbot python3-certbot-nginx # certbot --nginx -d host.mydomain.com sudo certbot --nginx -d alumno.me
Acceso desde el navegador
Modificar el fichero de configuración del servidor virtual
sudo nano /etc/nginx/sites-available/laravel
Contenido del fichero /etc/nginx/sites-available/laravel
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 laravel.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 laravel.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/laravel /etc/nginx/sites-enabled/
Reiniciar el servidor web Nginx
sudo nginx -t sudo systemctl restart nginx sudo systemctl status nginx
Añadir un registro tipo A en el DNS
laravel -> droplet
Dar permiso de acceso a la carpeta personal a todos los usuario (para que pueda acceder el usuario propietario del servidor web)
sudo chmod 755 /home/usuario
Comprobación del funcionamiento del servidor virtual laravel.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 para Todo <?php echo "<br>"; echo "PHP funciona bien";
Acceso desde el navegador al servidor virtual:
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 laravel.alumno.me
# sudo apt install certbot python3-certbot-nginx # certbot --nginx -d host.mydomain.com sudo certbot --nginx -d laravel.alumno.me
Acceso desde el navegador
Deja una respuesta
Lo siento, debes estar conectado para publicar un comentario.