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:
Asegúrate de que el dominio para el que quieres instalar un certificado SSL apunta a la dirección IP de tu servidor.
Actualiza los paquetes del sistema usando el siguiente comando:
sudo apt-get update
- Instala el cliente de Certbot usando el siguiente comando:
sudo apt-get install certbot
- 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
- Ahora, puedes ejecutar el siguiente comando para obtener un certificado SSL para tu dominio:
sudo certbot --apache -d tudominio.com
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.
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