Instalar LAMP en Linux 22.10 con Digital Ocean

Instalar Apache

sudo apt update
sudo apt-get update
sudo apt install apache2  

Agregar Subdominio​

sudo mkdir /var/www/midominio
sudo chown -R $USER:$USER /var/www/midominio
sudo nano /etc/apache2/sites-available/midominio.conf 

Agregar la siguiente configuración:

<VirtualHost *:80>
    DocumentRoot /var/www/midominio
    #para Laravel
    #DocumentRoot /var/www/midominio/public
    ServerName midominio.com
    ServerAlias www.midominio.com
    ServerAdmin webmaster@localhost
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
<Directory /var/www/midominio>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory> 

Habilitamos el dominio y reiniciar el servicio

sudo a2ensite midominio
sudo apache2ctl configtest
sudo systemctl reload apache2 

Instalar SSL al dominio

Para instalar y configurar un certificado SSL, sigue los siguientes pasos:

  1. Asegúrate de que el dominio para el que quieres instalar un certificado SSL apunta a la dirección IP de tu servidor.

  2. Actualiza los paquetes del sistema usando el siguiente comando:

sudo apt-get update 
  1. Instala el cliente de Certbot usando el siguiente comando:
sudo apt-get install certbot 
  1. Para utilizar el servicio de Let’s Encrypt, también deberás instalar el complemento de certificado para el servidor web que estés usando. En este ejemplo, se utilizará el servidor web Apache.
sudo apt-get install python3-certbot-apache 
  1. Ahora, puedes ejecutar el siguiente comando para obtener un certificado SSL para tu dominio:
sudo certbot --apache -d tudominio.com 
  1. Certbot te hará algunas preguntas para confirmar la información sobre tu sitio web, como la dirección de correo electrónico del administrador y si quieres que tu sitio web redireccione todo el tráfico HTTP a HTTPS. Una vez que respondas a estas preguntas, Certbot obtendrá y configurará automáticamente el certificado SSL para tu dominio.

  2. Verifica que el certificado SSL se ha instalado correctamente visitando tu sitio web a través de HTTPS.

Con estos pasos, deberías haber instalado y configurado con éxito un certificado SSL en tu servidor Ubuntu y el servicio de Let’s Encrypt.

Instalar PHP

sudo apt install php libapache2-mod-php php-mysql
sudo apt-get install php curl
sudo apt install php-curl
sudo systemctl restart apache2
php -v 

Leer primero archivos php

sudo nano /etc/apache2/mods-enabled/dir.conf 

Debería verse de la siguiente forma:

<IfModule mod_dir.c>
        DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
</IfModule>  

Restaurar para aplicar los cambios

sudo systemctl reload apache2 

Instalar MySQL

sudo apt install mysql-server
sudo mysql
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by 'nuevacontraseña';
exit
sudo mysql_secure_installation
#durante la instalación segura, puedes colocar y casi a todo
#si te piden cambiar la contraseña de root lo mejor indicar n para que se mantenga la misma contraseña
#en el caso de contraseñas segura, medium esta bien 2
#con esto se configurará el MySQL seguro
 

Si obtiene error ejecutando mysql_secure_installation

Failed! Error: SET PASSWORD has no significance for user ‘root’@’localhost’ as the authentication method used doesn’t store authentication data in the MySQL server. Please consider using ALTER USER instead if you want to change authentication parameters

Lo primero que tienes que revisar es la contraseña y verificar de que no tengas el caracter \, si es así intenta ingresar la contraseña sin ese caracter.

Si con eso no puedes solucionarlo, puedes intentar lo siguiente:

Ingresar en otra consola e ingresar a MySQL y establecer la contraseña

sudo mysql
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by 'nuevacontraseña'; 

Ahora solo queda volver a configurar la seguridad

sudo mysql_secure_installation 

Crear base de datos

CREATE DATABASE basededatos;
CREATE USER 'usuario_db'@'%' IDENTIFIED WITH mysql_native_password BY 'contrasena_db';
GRANT ALL ON basededatos.* TO 'usuario_db'@'%'; 

Permisos para Laravel

Debes asignar los permisos necesarios de la siguiente manera.

sudo chown -R $USER:www-data /var/www/storage
sudo chown -R $USER:www-data /var/www/bootstrap/cache

chmod -R 775 /var/www/storage
chmod -R 775 /var/www/bootstrap/cache  

Artículos Recientes