Como cambiar el docroot del dominio principal de una cuenta cPanel con PHP-FPM

How to change user's cpanel docroot primary domain

Muchas veces, los clientes de cPanel demanda o necesitan cambiar el directorio donde deben poner los ficheros de su dominio principal, ya sea por requerimientos del software (Laravel, Symfony, proyecto de github, proyecto con estructura moderna,…) o por  cambio de versión de su proyecto. Pero la solución para el problema cuando se usa PHP-FPM, no existe. El copy & paste de los techno bloggers no dio para tanto.

Cambio ficheros sistema WHM/cPanel

Conexión SSH al servidor via root user

Necesitamos acceder a nuestro servidor como root vía SSH. Puedes usar este videotutorial para conocer como hacerlo en un sistema gobernado por cPanel. Aunque es para usuarios finales, puede servirte para root.

Editar el fichero de configuración del par usuario/dominio

Tienes que editar estos dos ficheros si el dominio tiene activado SSL, de lo contrario sólo necesitarás editar el primero de ellos

# nano /cpanel/userdata/<username>/<domain.com>
# nano /cpanel/userdata/<username>/<domain.com>_SSL
Recuerda sustituir las partes de los ejemplos entre  los símbolos ‘<‘ y ‘>’ (incluidos estos) por tus datos, y siéntete libre de usar tu editor favoritoAbdelkarim M.

Busca y cambia el documentroot y el path

documentroot: /home/<user>/<path_completo>
path: /home/<user>/<path_completo>cgi-bin

Presta atención al formato ya que es un fichero de configuración en formato YAML y este es sensible a los espacio y tabuladores.

Edición del fichero de configuración php-fpm del usuario/dominio

Editar el fichero añadiendo la linea que modificará el valor de la variable doc_root en el fichero ini de el dominio:

# nano /cpanel/userdata/<username>/<domain.com>.php-fpm.yaml

---
_is_present: 1
php_admin_value_doc_root: { name: 'php_admin_value[doc_root]', value: /home/<user>/<path_completo> }

Borrado de los ficheros de cache de los ficheros modificados

# rm -vf /cpanel/userdata/<username>/<domain.com>.cache
# rm -vf /cpanel/userdata/<username>/<domain.com>_SSL.cache
# rm -vf /home/<user>/<path_completo>.cache

Ejecución de scripts y reinicio del servidor

# /scripts/updateuserdatacache
# /scripts/rebuildhttpdconf
# /scripts/restartsrv_apache && /scripts/restartsrv_apache_php_fpm

Otros métodos

Otros métodos no serán descritos aquí. Esos son necesarios cuando tu hosting o tu gestor de VPS manejados, no quiere saber nada, o no sabe nada de como hacer estas cosas, que no son pocas las veces.

Usar htaccess para todo o redirecciones, complica las cosas y carga el servidor. Es mucho más efectivo hacer las cosas bien.

Agradecimientos

A todos los que escriben el mismo contenido una y otra vez, incluyendo erratas, pero sobre todo a Joseph Northcutt que publica en Unsplash por su imágen y a Canva por las posibilidades que me ofrece para poder crear una imagen para mis artículos.

Comparte este articulo en

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax