Migrar una instalación ya funcionando de Drupal 8 desde la web a un servidor local en nuestro equipo es ligeramente más complicado que con otras versiones de Drupal, la forma de hacerlo que a mí me ha funcionado es la siguiente:
Partimos de un equipo en el que tenemos instalado linux Mint 18.1, pero estas instrucciones podrían valer también para cualquier distribución linux, cambiando convenientemente las rutas de los ficheros.
Instalamos el servidor web:
sudo apt-get install apache2
Para comprobar que funciona, accedemos con un navegador a la dirección http://localhost y deberíamos ver la página raíz del servidor apache
Instalamos PHP, que en esta versión de Linux Mint (18.1) es el PHP 7.0, y algunos módulos de php que nos serán necesarios:
sudo apt-get install php7.0 php7.0-mysql libapache2-mod-php7.0 php7.0-cli php7.0-cgi php7.0-gd php7.0-curl php7.0-gd php7.0-intl php7.0-imap php7.0-mcrypt php7.0-pspell php7.0-recode php7.0-snmp php7.0-sqlite3 php7.0-tidy php7.0-xmlrpc php7.0-xsl php-pear php-imagick php-apcu
Comprobamos que PHP funciona creando como root el fichero /var/www/html/info.php con una única línea que ponga
<?php phpinfo(); ?>
Reiniciamos el servidor web
sudo service apache2 restart
Accedemos a la dirección http://localhost/info.php y deberíamos de ver la página de información de PHP
Habilitamos el módulo rewrite
sudo a2enmod rewrite
Instalamos MySQL
sudo apt-get install mysql-client mysql-server
Aseguramos la instalación de MySQL con el script
sudo mysql_secure_installation
Instalamos y configuramos SSL, para ello creamos una carpeta
sudo mkdir /etc/apache2/ssl
Nos situamos en ella y y ejecutamos el comando de creación de un certificado autofirmado (en este comando y en las instrucciones siguientes habrá que cambiar «misitio» por el nombre de nuestra web)
cd /etc/apache2/ssl
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/misitiossl.key -out /etc/apache2/ssl/misitiossl.crt
Se nos hará una serie de preguntas, acerca de nuestra identidad etc. Cuando termine el comando, cambiamos los permisos de los ficheros creados en el directorio
sudo chmod 600 *
Ahora configuramos el host virtual en Apache, para ello creamos el directorio al que copiaremos los ficheros de nuestra web, y luego creamos el fichero de configuración del host virtual
sudo mkdir -p /var/www/misitio
sudo vim /etc/apache2/sites-available/misitio.conf
En este fichero tenemos que tener el siguiente contenido:
<VirtualHost *:80>
ServerName www.misitio.local
DocumentRoot /var/www/misitio
RedirectMatch 301 (.*) https://www.misitio.local$1
</VirtualHost>
<VirtualHost _default_:443>
ServerName www.misitio.local
ServerAlias misitio.local
ServerAdmin webmaster@localhost
DocumentRoot /var/www/misitio
ErrorLog ${APACHE_LOG_DIR}/misitio-error.log
CustomLog ${APACHE_LOG_DIR}/misitio-access.log combined
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/misitiossl.crt
SSLCertificateKeyFile /etc/apache2/ssl/misitiossl.key
<Directory "/var/www/misitio">
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
BrowserMatch "MSIE [2-6]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
</VirtualHost>
Modificamos el fichero /etc/hosts añadiendo una línea en la que apuntamos a nuestro host virtual. Para ello incluimos en este fichero una línea al principio que ponga:
127.0.0.1 www.misitio.local
Copiamos los ficheros de la web que queremos migrar a la carpeta /var/www/misitio, creamos en nuestro MySQL local una base de datos ideńtica a la que tenemos en la base de datos de la web, y creamos el usuario con el que se accede a ella desde el sitio web. Para ello podemos usar adminer, phpmyadmin, etc. Si en vez de migrar una web estamos creando una web desde cero, pues entonces usamos el método habitual de instalación de una web Drupal, usando la dirección de nuestro host virtual como inicio del proceso.
Solamente si estamos haciendo una migración, una vez que tenemos los ficheros transferidos y la base de datos configurada, accedemos al fichero:
sudo vim /var/www/misitio/sites/default/settings.php
y modificamos la parte correspondiente a los host de confianza, incluyendo la dirección de nuestro host virtual. Buscamos trusted_host_patterns y el fichero debería de quedar tal que así:
$settings['trusted_host_patterns'] = array(
'^www\.misitio\.com$',
'^www\.misitio\.local$'
);
Y ya debería funcionar todo, accediendo a la página https://www.misitio.local deberíamos de ver la página principal de nuestra nueva web en local. La primera vez que accedamos a ella nos saltará una advertencia de seguridad en el navegador porque estamos usando un certificado autofirmado, por lo que deberemos de añadir una excepción de seguridad para poder acceder las siguientes veces sin que salte este aviso.
Este post está basado en gran parte en lo que se explica en: https://kreationnext.com/support/how-to-install-drupal-8-with-apache-mysql-and-ssl-on-ubuntu-15-10/