
Esta es una pregunta difícil de buscar en Google, o incluso un título.
Puedo acceder a mi sitio de Wordpress con éxito usando esto:
Pero esto falla:
Si intenta acceder al dominio desde esta dirección, verá una página web azul con la marca DigitalOcean, con una imagen de un tiburón y el siguiente error: "Inicie sesión en su droplet a través de SSH para configurar su instalación de LAMP".
Tengo un droplet de DigitalOcean que ejecuta Ubuntu 16.04 con Apache 2 y varios dominios. Uno de los dominios tiene un sitio de Wordpress que se migró desde otro host. El dominio está configurado igual que todos mis demás dominios, incluido un certificado instalado a través de letsencrypt.
No creo que mi problema esté en el certificado. Creo que el problema tiene que ver con Wordpress, porque los otros sitios en mi servidor funcionan bien en las 4 condiciones (http:// y https:// y www y no www)
Aquí está mi archivo .conf (anónimo):
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www/example>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<IfModule mod_dir.c>
DirectoryIndex index.php index.pl index.cgi index.html index.xh$
</IfModule>
RewriteEngine on
RewriteCond %{SERVER_NAME} =example.com [OR]
RewriteCond %{SERVER_NAME} =www.example.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
y aquí está mi carpeta .htaccess dentro de /var/www/example
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
#test
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
# END WordPress
y aquí están mis configuraciones de DNS, pegadas y anonimizadas:
CNAME
ftp.example.com is an alias of example.com.
A
example.com directs to 159.65.36.136
CNAME
www.example.com is an alias of example.com.
NS
example.com directs to ns1.digitalocean.com.
NS
example.com directs to ns2.digitalocean.com.
NS
example.com directs to ns3.digitalocean.com.
y aquí está mi salida de apache2ctl -S
VirtualHost configuration:
*:443 is a NameVirtualHost
default server othersite1.com (/etc/apache2/sites-enabled/othersite1.com-le-ssl.conf:2)
port 443 namevhost othersite1.com (/etc/apache2/sites-enabled/othersite1.com-le-ssl.conf:2)
alias www.othersite1.com
port 443 namevhost othersite2.co (/etc/apache2/sites-enabled/othersite2.co-le-ssl.conf:2)
alias www.othersite2.co
port 443 namevhost example.com (/etc/apache2/sites-enabled/example.com-le-ssl.conf:2)
alias www.example.com
port 443 namevhost othersite3.com (/etc/apache2/sites-enabled/othersite3.com-le-ssl.conf:2)
alias www.othersite3.com
port 443 namevhost othersite4.com (/etc/apache2/sites-enabled/othersite4.com-le-ssl.conf:2)
alias www.othersite4.com
port 443 namevhost othersite5.net (/etc/apache2/sites-enabled/othersite5.net-le-ssl.conf:2)
alias www.othersite5.net
port 443 namevhost othersite6.com (/etc/apache2/sites-enabled/othersite6.com-le-ssl.conf:2)
alias www.othersite6.com
*:80 is a NameVirtualHost
default server example.com (/etc/apache2/sites-enabled/000-default.conf:1)
port 80 namevhost example.com (/etc/apache2/sites-enabled/000-default.conf:1)
port 80 namevhost othersite1.com (/etc/apache2/sites-enabled/othersite1.com.conf:1)
alias www.othersite1.com
port 80 namevhost othersite2.co (/etc/apache2/sites-enabled/othersite2.co.conf:1)
alias www.othersite2.co
port 80 namevhost example.com (/etc/apache2/sites-enabled/example.com.conf:1)
alias www.example.com
port 80 namevhost othersite3.com (/etc/apache2/sites-enabled/othersite3.com.conf:1)
alias www.othersite3.com
port 80 namevhost othersite4.com (/etc/apache2/sites-enabled/othersite4.com.conf:1)
alias www.othersite4.com
port 80 namevhost othersite5.net (/etc/apache2/sites-enabled/othersite5.net.conf:1)
alias www.othersite5.net
port 80 namevhost othersite6.com (/etc/apache2/sites-enabled/othersite6.com.conf:1)
alias www.othersite6.com
ServerRoot: "/etc/apache2"
Main DocumentRoot: "/var/www/html"
Main ErrorLog: "/var/log/apache2/error.log"
Mutex rewrite-map: using_defaults
Mutex ssl-stapling-refresh: using_defaults
Mutex ssl-stapling: using_defaults
Mutex ssl-cache: using_defaults
Mutex default: dir="/var/lock/apache2" mechanism=fcntl
Mutex mpm-accept: using_defaults
Mutex watchdog-callback: using_defaults
PidFile: "/var/run/apache2/apache2.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="www-data" id=33
Group: name="www-data" id=33
Respuesta1
Posibilidad #1
Parece que su VirtualHost predeterminado para *:80
, usar el archivo de configuración 000-default.conf
coincide con el nombrevhost example.com
en la parte superior de la salida...;
VirtualHost configuration:
default server example.com (/etc/apache2/sites-enabled/000-default.conf:1)
port 80 namevhost example.com (/etc/apache2/sites-enabled/000-default.conf:1)
mientras que usted quiere que coincida aquí;
port 80 namevhost example.com (/etc/apache2/sites-enabled/example.com.conf:1)
alias www.example.com
Lo que probablemente esté sucediendo es que aparece la página con el texto "Inicie sesión en su droplet a través de SSH para configurar su instalación de LAMP". es el contenido predeterminado de /var/www/html
.
Así que intentaría eliminarlo /etc/apache2/sites-enabled/000-default.conf
y asegurarme de que example.com
coincida con el VHost correcto.
Posibilidad #2
Verifique su configuración en wp-config.php
, debe coincidir con lo que finalmente apuntan sus redireccionamientos;
define('WP_HOME','https://example.com');
define('WP_SITEURL','https://example.com');
Esto a veces causa problemas con WordPress, cuando no coincide con lo que Apache quiere.
Más solución de problemas
La otra cosa es que has pegado la configuración de unhttp://ejemplo.com:80/sitio;
<VirtualHost *:80>
ServerName example.com
...
</VirtualHost>
Sin embargo, parece que la regla de reescritura rebotaría todas las solicitudes a https://
RewriteCond %{SERVER_NAME} =example.com [OR]
RewriteCond %{SERVER_NAME} =www.example.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
Entonces probablemente también necesitaremos ver la configuración https.
Además, probablemente deberías pegar el resultado de access.log y error.log correspondiente a una solicitud específica, para ver qué redirecciones ocurrieron realmente.
Además, si aún no puede ver el problema, puede activar el registro de reescritura;
LogLevel alert rewrite:trace3
y luego rastrear el registro de solicitudes;
tail -f error_log|fgrep '[rewrite:'