https://tecadmin.net/install-php5-on-ubuntu/
Instalación Apache
Sudo apt-get -y install apache2 apache2-doc apache2-utils libapache2-mod-php
Instalación de versiones de PHP
5.6
sudo apt-get install python-software-properties sudo add-apt-repository ppa:ondrej/php sudo apt-get update sudo apt-get install -y php5.6
7.0
sudo apt-get install -y php7.0
7.1
sudo apt-get install -y php7.1
7.2
sudo apt-get install -y php7.2
apt-get -y php7.2 php7.2-common php7.2-gd php7.2-mysql php7.2-imap phpmyadmin php7.2-cli php-pear mcrypt imagemagick libruby libapache2-mod-python php7.2-curl php7.2-intl php7.2-pspell php7.2-recode php7.2-sqlite3 php7.2-tidy php7.2-xmlrpc php7.2-xsl memcached php7,2-memcache php-imagick php-gettext php7.2-zip php7.2-mbstring php-soap php7.2-soap php7.2-xml php7.2-mcrypt
Cambio de versión de PHP
Ejemplo:
From PHP 5.6 => PHP 7.2
Apache:
sudo a2dismod php5.6 sudo a2enmod php7.2 sudo service apache2 restart
CLI:
sudo update-alternatives --set php /usr/bin/php7.2
From PHP 7.1 ⇒ PHP 7.0
Apache:
sudo a2dismod php7.1 sudo a2enmod php7.0 sudo service apache2 restart
CLI:
sudo update-alternatives --set php /usr/bin/php7.0
Configuraciones de Apache:
Guardamos los ficheros de configuración en:
/etc/apache2/sites-available
Las configuraciones para http y https pueden ir en el mismo fichero. En caso contrario tendremos que habilitar ambos ficheros. Para habilitar los ficheros, una vez puestos los archivos de configuración, deberemos hacer
a2ensite proyecto.conf a2ensite proyecto-ssl.conf
Posteriormente arrancamos apache con todos los sites que hayamos habilitado:
sudo /home/usuario/arranque.sh
Configuración le fichero hosts
Añadimos una línea por cada sitio (ejemplo en el mio)
127.0.0.1 sk.local 127.0.0.1 loiola.local 127.0.0.1 microloiola.local
PHP en modo módulo
HTTP (proyecto.conf)
<VirtualHost *:80>
ServerName sk.local
ServerAdmin webmaster@merkatu.com
DocumentRoot /mnt/c/work/projects/sk/public
<Directory /mnt/c/work/projects/sk/public>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
HTTPS (proyecto-ssl.conf)
<VirtualHost *:443>
ServerName sk.local
ServerAlias sk.local
DocumentRoot /mnt/c/work/projects/sk/public
DirectoryIndex index.html index.php
<Directory /mnt/c/work/projects/sk/public>
AllowOverride All
Options FollowSymLinks
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /mnt/c/work/projects/certs/server.crt
SSLCertificateKeyFile /mnt/c/work/projects/certs/server.key
</VirtualHost>
Instalación de node en WSL
Instalación de Docker en WSL
Requiere un paso previo para instalar Docker for Desktop en Windows
¡¡¡ATENCION!!!!
Desde abril de 2020, los cambios realizados en /etc/wsl.conf no son automáticos, por lo que es necesario parar la consola de WSL y lanzarla de nuevo para que se tengan en cuenta.
Para ello primero miramos le nombre de nuestra distribución:
wsl.exe --list Distribuciones del subsistema de Windows para Linux: Ubuntu-18.04 (predet.)
Posteriomente la cerramos:
wsl.exe --terminate Ubuntu-18.04