Instalar LAMP para servidor web en Ubuntu/Debian

Para identificar que se trabaja en remoto usare Remoto$ y para usar que trabajo en local Local$, asi mismo para identifcar si es usuario normal $ y usaurio root #

Actualizamos el sistema

Remoto$ sudo apt-get update
Remoto$ sudo apt-get upgrade

Instalamos LAMP

Remoto$ sudo apt-get install lamp-server^

El simbolo ^ es importante para que se instalen todos los paquetes que necesitamos

Configruando LAMP

Para poder realizar pasos a producción o a cualquier otro entorno y no tener ningún tipo de sorpresa en los path que nos toman las aplicaciones web, lo mejor es configurar un VirtualHost y no hacer uso de path relativos sino a través del VirtualHost

Activaremos los módulos necesarios para el uso de algunas propiedades de VirtualHost

Remoto$ cd /etc/apache2/
Remoto$ sudo a2enmod rewrite mime headers expires

Creando el virtualHost para el domino example.es

Remoto$ cd sites-available
Remoto$ sudo vim example.es.conf

Te muestro un ejemplo de virtual host configurado para el dominio example.es para usar php por socker, si quieres controlar PHP por socker visuta mi articulo donde te explico como usar varias versiones de PHP a la vez

<VirtualHost *:80>
    ServerName example.es
    ServerAlias example.es
    DocumentRoot /var/www/example.es/
    ErrorLog /var/www/example.es/log/error.log
    CustomLog /var/www/example.es/log/access.log combined
    #para redireccionar a https
    #Redirect permanent / https://example.es/

    <Directory /var/www/example.es/>
    #esto evita que se listen directorios en el navegador web
    options -Indexes
    AllowOverride All
    Order allow,deny
    allow from all

    RewriteEngine on
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
    </Directory>
# esto es para usar php por socker si no lo tienes instalado comentalo.
<FilesMatch \.php$>
      # For Apache version 2.4.10 and above, use SetHandler to run PHP as a fastCGI process server
      SetHandler "proxy:unix:/run/php/php7.4-fpm.sock|fcgi://localhost"
    </FilesMatch>
</VirtualHost>

Ahora creamos el arbol de directorios para el virtualHost

Remoto$ cd /var/www
Remoto$ sudo mkdir example.es
Remoto$ cd example.es
Remoto$ sudo mkadir log tmp www 

Otorgamos propietario y grupo

Remoto$ sudo chown -R usuario:www-data .

Ahora activamos el virtualHost

Remoto$ cd /etc/apache2/sites-available/
Remoto$ sudo a2ensite example.es.conf

Y ahora reiniciamos el servicio

Si has has usado el virtualHost de ejemplo debes instalar primero PHP por socker antes de reiniciar el servicio, de lo contrario te dara error.

Remoto$ sudo service apache2 restart

Si diera algun error y no remonta el servicio haremos un “sudo service apache2 status” y verificaremos donde esta el error