# Cambiar el public_html del dominio principal en cPanel

## Introducción
Aunque todo se puede hacer vía .htaccess, no soy partidario de esto. Estoy más acostumbrado a Nginx, y por otro lado cuanto menos se complique .htaccess mejor será la respuesta FRT (First Time Response) mejor.

Así que prefiero adecuar el sitio a un formato via configuración de Apache. Pero cPanel es un panel altamente intrusivo que te obliga a respetar sus formas, más con Apache.


## Modificación de los ficheros userdata del usuario y dominio
###  /var/cpanel/userdata/usuario/dominio.principal.tld


```
---
customlog:
 -
   format: combined
   target: /etc/apache2/logs/domlogs/dominio.principal.tld
 -
   format: "\"%{%s}t %I .\\n%{%s}t %O .\""
   target: /etc/apache2/logs/domlogs/dominio.principal.tld-bytes_log
documentroot: /home/usuario/public_html/public
group: usuario
hascgi: 0
homedir: /home/usuario
ip: 87.98.230.68
owner: root
phpopenbasedirprotect: 1
port: 80
scriptalias:
 -
   path: /home/usuario/public_html/public/cgi-bin
   url: /cgi-bin/
serveradmin: webmaster@dominio.principal.tld
serveralias: mail.dominio.principal.tld www.dominio.principal.tld
servername: dominio.principal.tld
usecanonicalname: 'Off'
user: usuario
```

### dominio.principal.tld_SSL
```

---
documentroot: /home/usuario/public_html
group: usuario
hascgi: 0
homedir: /home/usuario
ip: 87.98.230.68
ipv6: ~
owner: root
phpopenbasedirprotect: ~
port: 443
secruleengineoff: ~
serveradmin: webmaster@dominio.principal.tld
serveralias: mail.dominio.principal.tld www.dominio.principal.tld
servername: dominio.principal.tld
ssl: 1
usecanonicalname: 'Off'
user: usuario
userdirprotect: ''
```

### Eliminar los ficheros de caché
```sh
 rm -vf /var/cpanel/userdata/username/*.cache
```


### Actualizar Apache via WHM
```sh
# /scripts/updateuserdatacache

# /scripts/rebuildhttpdconf
```

### Modificación de PHP-FPM

Si usamos php-fpm, que es lo mejor para un hosting, hay que hacer un paso más qué es modificar el path en php-fpm para el usuario editando el fichero `/var/cpanel/userdata/USER/DOMAIN.php-fpm.yaml

```bash
php_admin_value_doc_root: { name: 'php_admin_value[doc_root]', value: /home/USER/NEW/DOCUMENT/ROOT }
``` 

Una vez modificado (imagino que habrás sustituido **USER**, **DOMAIN** y **NEW/DOCUMENT/ROOT** por sus valores adecuados hay que reconstruir los ficheros de php-fpm y hacer un restart de php-fpm

```bash
/scripts/php_fpm_config --rebuild
/scripts/restartsrv_apache_php_fpm
```

### Enlaces
- [How to change the document root for a cPanel account](https://support.cpanel.net/hc/en-us/articles/360051373774-How-to-change-the-document-root-for-a-cPanel-account)
- [How to update the PHP-FPM document root for the primary domain](https://support.cpanel.net/hc/en-us/articles/4403256459543-How-to-update-the-PHP-FPM-document-root-for-the-primary-domain)


## Aviso
Esta documentación y su contenido, no implica que funcione en tu caso o determinados casos.  También implica que tienes conocimientos sobre lo que trata, y que en cualquier caso tienes copias de seguridad. El contenido el contenido se entrega, tal y como está, sin que ello implique ningún obligación ni responsabilidad por parte de [Castris](https://castris.com)

Si necesitas soporte profesional puedes contratar con Castris [soporte profesional](https://intranet.castris.com/cart.php?gid=18).