Como instalar Wordpress en Caddy Server

Para empezar tenemos que decidir si lo queremos instalar en el dominio principal o en un subdominio.

Si lo instalamos en el dominio principal tenemos que escribir lo siguiente en Caddyfile:

midomio.es {
root /var/www/html/
fastcgi / /var/run/php/php7.0-fpm.sock php {
ext .php
split .php
index index.php
}
gzip
# PHP-FPM with Unix socket
fastcgi / /var/run/php/php7.0-fpm.sock php
header / {
# Enable HTTP Strict Transport Security (HSTS) to force clients to always
# connect via HTTPS (not recommended if only experimenting with HTTPS)
Strict-Transport-Security “max-age=31536000;”
# Enable cross-site filter (XSS) and tell browser to block detected attacks
X-XSS-Protection “1; mode=block”
# Prevent some browsers from MIME-sniffing a response away from the declared Content-Type
X-Content-Type-Options “nosniff”
# Disallow the site to be rendered within a frame (clickjacking protection)
# X-Frame-Options “DENY”
# Disallow loading of resources from other sites
# Content-Security-Policy “default-src ‘self’; script-src ‘self’ maxcdn.bootstrapcdn.com code.jq$
}

# Routing for WordPress
rewrite / {
if {path} not_match ^/wp-admin
to {path} {path}/ /index.php?_url={query}
}
}

# Nos hace la redirección de www a tú dominio sin www

www.midominio.es {
                 redir https://midominio.es{uri}
}

Los # son comentarios, al instalar me di cuenta de un error, si activais X-Frame-Options “DENY”, al intentar personalizar el tema de wordpress se os va a quedar la ventana en blanco ya wordpress no es capaz de renderizar correctamente la ventana. Esto se soluciona dejando esa linea como si fuera un comentario para que no lo procese caddy server.

Si por el contrario queremos crear el blog en un subdominio:

blog.midomio.es {
root /var/www/html/blog/
fastcgi / /var/run/php/php7.0-fpm.sock php {
ext .php
split .php
index index.php
}
gzip
# PHP-FPM with Unix socket
fastcgi / /var/run/php/php7.0-fpm.sock php
header / {
# Enable HTTP Strict Transport Security (HSTS) to force clients to always
# connect via HTTPS (not recommended if only experimenting with HTTPS)
Strict-Transport-Security “max-age=31536000;”
# Enable cross-site filter (XSS) and tell browser to block detected attacks
X-XSS-Protection “1; mode=block”
# Prevent some browsers from MIME-sniffing a response away from the declared Content-Type
X-Content-Type-Options “nosniff”
# Disallow the site to be rendered within a frame (clickjacking protection)
# X-Frame-Options “DENY”
# Disallow loading of resources from other sites
# Content-Security-Policy “default-src ‘self’; script-src ‘self’ maxcdn.bootstrapcdn.com code.jq$
}

# Routing for WordPress
rewrite / {
if {path} not_match ^/wp-admin
to {path} {path}/ /index.php?_url={query}
}
}

En el caso de querer tener la redicción sin www, teneis que hacerlo al configurar el dominio principal, lo harías de la siguiente manera en Caddyfile:

midomio.es {
root /var/www/html/
fastcgi / /var/run/php/php7.0-fpm.sock php {
ext .php
split .php
index index.php
}
gzip
}
www.midominio.es {
                 redir https://midominio.es{uri}
}

Ahora procedemos a hacer la instalación de wordpress, tenemos que elegir el directorio de descarga, en este caso vamos  a instalarlo como subdominio, así que entramos desde ssh:

cd /var/www/html/

wget http://wordpress.org/latest.tar.gz

tar -xzvf latest.tar.gz

rm -r latest.tar.gz

En este caso se nos crea una carpeta llamada wordpress, lo que podemos hacer es cambiarle el nombre desde el ftp o desde la terminal:

mv wordpress blog

Lo que hace el comando mv es cambiar el nombre a la carpeta de wordpress a blog, si queremos poner el wordpress en la url principal solo tenemos que quitar todos los archivos de esa carpeta y dejarlos en /var/www/html/ , en este caso os recomiendo usar ftp ya que tenéis que ver si hay algún archivo php en esa ruta y borrarlo.

Los que usasteis el comando para instalar wordpress os bajasteis la versión en ingles, ahora procedemos a bajar la traducción a español: https://make.wordpress.org/polyglots/teams/?locale=es_ES

Le dais a Download language pack y ese archivo lo teneis que extraer en wp-content/languages, si no teneis la carpeta** languages** la creais y lo extraeis dentro.

Otra opción es usar el repositirio de wordpress en Español https://es.wordpress.org/ , entramos en esa web y copiamos la url de descarga de la última versión y haceis lo siguiente desde ssh:

cd  /var/www/html/

wget https://es.wordpress.org/wordpress-4.7.1-es_ES.zip

tar -xzvf wordpress-4.7.1-es_ES.zip

rm -r wordpress-4.7.1-es_ES.zip

El comando cd hace que entremos en una determinada carpeta que le indiquemos, al instralar wordpress, se nos crea la carpeta llamada wordpress, así que tendras que cambiarla de nombre o pasar todo lo que hay en la carpeta al directorio /var/www/html/ , eso lo haceis desde filezilla o similares.

Antes de empezar a configurar wordpress tenéis que cambiarle los permisos de grupo y propietario, ya que por defecto viene como root y esto trae problemas a la hora de instalar worpress, asñi que hacemos lo siguiente desde el ssh:

cd /var/www/html/

chown -R :www-data (nombre de la carpeta)

chown -R www-data  (nombre de la carpeta)

Así cambiamos los permisos de la carpeta en la que tenemos instalado WordPress, en el caso que tengamos instalado worpress en /var/www/html/, tenemos que cambiar los permisos a la carpeta html, así que tendríamos que poner cd /var/www/, en caso que fuera un subdominio y tengamos la carpeta creada dentro de /var/www/html/ , usaríamos la opción antes mencionada.

Ahora que ya tenemos configurado caddy server y instalado wordpress tenemos que reiniciar el servidor, para ello ponemos desde ssh:

reboot

Si ya habíamos ejecutado Caddy Server con antiguedad tenemos que hacer lo sigueinte, entramos por ftp desde Filezilla y buscamos el directorio /

Como podemos ver tenemos el servidor caddy, despúes Caddyfile que guarda la configuración del server y por último nohup.out que guarda el log . Púes tenemos que borrar nohup.out y reiniciar el server.

Una vez se reinicie tenemos que arrancar de nuevo caddy server para que aplique los cambios, así que desde ssh ponemos:

cd /

nohup ./caddy &

cat nohup.out

Con esto ya tenemos caddy funcionando y ya solo nos falta entrar en la url de nuestro dominio y empezar a instalar Worpress y tenemos que crear la db ya sea desde la terminal o desde phpmyadmin.