HestiaCP és un tauler de codi obert per gestionar el servidor, que permet configurar-hi diferents aplicacions. Quan s'afegeix un web nou a HestiaCP, cal configurar-hi una plantilla per a Nginx i una altra per a Apache. Aquestes plantilles són la configuració que es carregarà per al web i tenim diferents plantilles per a cada servei.
Per exemple, per a Nginx, tenim disponibles les plantilles següents:
- caching: Plantilla de Nginx amb la memòria cau configurada.
- default: Plantilla per defecte per a Nginx.
- hosting: Plantilla similar a caching però amb els enllaços simbòlics desactivats.
De vegades ens trobarem que necessitem una configuració diferent de la que hi ha per defecte. Per exemple, per configurar un connector d'algun CMS o bé per configurar alguna tecnologia com Laravel, Symfony o NodeJS.
IMPORTANT
No podem modificar directament la configuració de Nginx/Apache?
No perquè HestiaCP té tasques internes que s'executen cada cert temps i que, a més, actualitzen la configuració de Nginx/Apache —i altres serveis— dels nostres webs aplicant les plantilles configurades, i si hi fem canvis es perdran.
Perquè el nostre web funcioni correctament a HestiaCP, haurem de crear una plantilla nova i afegir-hi les modificacions perquè funcionin correctament.
A continuació us expliquem com crear les plantilles noves, com configurar-les i com aplicar-les al vostre web.
Crear una plantilla nova
Per poder crear una plantilla nova, cal que ens connectem per SSH al servidor, ja que des de la interfície de HestiaCP no és possible fer-ho. Un cop accedim al nostre servidor, hem d'anar a la ruta següent, on es troben totes les plantilles:
cd /usr/local/hestia/data/templates/webAquí trobarem les plantilles següents:
- Apache2: Totes les plantilles per al servidor web.
- Nginx: Totes les plantilles per al servidor intermediari web.
- Awstats: Plantilles per a les estadístiques web.
- PHP-FPM: Plantilles per seleccionar la versió de PHP.
- suspend: Plantilla per quan suspens un domini.
- skel: Documents per a public_html i errors HTTP.
Si necessitem crear una plantilla nova per a Nginx, és recomanable fer una còpia de la plantilla default.tpl i default.stpl. La plantilla .tpl és la plantilla que es farà servir per a HTTP i la .stpl per a HTTPS.
Per exemple, si volem fer una plantilla per a Nginx per a un web amb NodeJS, podem crear les plantilles següents:
cp /usr/local/hestia/data/templates/web/nginx/default.tpl /usr/local/hestia/data/templates/web/nginx/nodejs.tpl
cp /usr/local/hestia/data/templates/web/nginx/default.stpl /usr/local/hestia/data/templates/web/nginx/nodejs.stplAl final, tindrem aquest resultat:
root@hestiacp:/usr/local/hestia/data/templates/web/nginx# ls -lat
total 56
drwxr-xr-x 3 root root 4096 Sep 16 10:15 .
-rw-r--r-- 1 root root 1505 Sep 16 10:15 nodejs.stpl
-rw-r--r-- 1 root root 1264 Sep 16 10:15 nodejs.tplSi necessites crear una altra plantilla diferent, crea la plantilla amb el nom que vulguis:
cp /usr/local/hestia/data/templates/web/nginx/default.tpl /usr/local/hestia/data/templates/web/nginx/[NOMBRE_PLANTILLA].tpl
cp /usr/local/hestia/data/templates/web/nginx/default.stpl /usr/local/hestia/data/templates/web/nginx/[NOMBRE_PLANTILLA].stplAra, si anem al nostre HestiaCP, podrem observar que ja apareix a la llista:
Si, per exemple, necessitem fer una plantilla per a Apache, el procés seria el mateix:
cp /usr/local/hestia/data/templates/web/apache2/default.tpl /usr/local/hestia/data/templates/web/apache2/[NOMBRE_PLANTILLA].tpl
cp /usr/local/hestia/data/templates/web/apache2/default.stpl /usr/local/hestia/data/templates/web/apache2/[NOMBRE_PLANTILLA].stplConfigurar la nostra plantilla
El pas següent serà adaptar la configuració de Nginx/Apache per a la nostra plantilla, però abans hem de tenir en compte que en aquestes plantilles s'utilitzen variables que haureu de conèixer i tenir en compte per aplicar-les a la vostra configuració.
Per exemple, per indicar el directori on es troba un web a Nginx, ho heu de fer amb el paràmetre root i de la manera següent:
root %home%/%user%/web/%domain%/public_html;On %home% equival a /home, %user% equival a l'usuari al qual pertany el web i %domain% al domini. Això, a la configuració que trobaràs a /home/zagur/conf/web/miweb.com/nginx.conf, ho veuràs de la manera següent si l'usuari és admin i el domini és dominio.com:
root /home/admin/web/dominio.com/public_html;Per tant, la plantilla que creïs ha de contenir aquest tipus de variables perquè es pugui utilitzar en altres webs independentment del domini o de l'usuari que la configuri. Tens més informació de totes les variables disponibles a la documentació oficial de HestiaCP.
NodeJS
Si necessites configurar una aplicació amb NodeJS, et recomanem seguir les instruccions d'aquest tutorial específic: Com utilitzar NodeJS a HestiaCP.
Laravel
Si necessites configurar una aplicació amb Laravel, et recomanem seguir les instruccions d'aquest tutorial específic: Com utilitzar Laravel a HestiaCP.
Si, per contra, algun CMS et demana afegir alguna configuració addicional a Nginx/Apache, hauràs d'adaptar el codi que et donen perquè funcioni a HestiaCP. Per exemple, el connector Smush, per configurar imatges de tipus webp, et demana que afegeixis el fragment de configuració següent:
location ~* "wp-content\/(uploads\/)(.*.(?:png|jpe?g))" {
add_header Vary Accept;
set $image_path $2;
if (-f "/home/admin/web/dominio.com/public_html/wp-content/smush-webp/disable_smush_webp") {
break;
}
if ($http_accept !~* "webp") {
break;
}
try_files /wp-content/smush-webp/$image_path.webp $uri =404;
}Si t'hi fixes, veuràs que hi ha una ruta absoluta per al connector. Perquè aquesta ruta funcioni en tots els dominis, l'hauràs de configurar de la manera següent:
location ~* "wp-content\/(uploads\/)(.*.(?:png|jpe?g))" {
add_header Vary Accept;
set $image_path $2;
if (-f "%home%/%user%/web/%domain%/public_html/wp-content/smush-webp/disable_smush_webp") {
break;
}
if ($http_accept !~* "webp") {
break;
}
try_files /wp-content/smush-webp/$image_path.webp $uri =404;
}Això ho haurem d'afegir dins de la plantilla que hem creat anteriorment, i aquest serà el resultat final:
#=========================================================================#
# Plantilla per defecte de domini web #
# NO MODIFIQUEU AQUEST FITXER! ELS CANVIS ES PERDRAN EN RECONSTRUIR ELS DOMINIS #
# https://docs.hestiacp.com/admin_docs/web.html#how-do-web-templates-work #
#=========================================================================#
server {
listen %ip%:%proxy_port%;
server_name %domain_idn% %alias_idn%;
include %home%/%user%/conf/web/%domain%/nginx.forcessl.conf*;
location / {
proxy_pass http://%ip%:%web_port%;
location ~* ^.+\.(%proxy_extensions%)$ {
root %docroot%;
access_log /var/log/%web_system%/domains/%domain%.log combined;
access_log /var/log/%web_system%/domains/%domain%.bytes bytes;
expires max;
try_files $uri @fallback;
}
}
location /error/ {
alias %home%/%user%/web/%domain%/document_errors/;
}
location @fallback {
proxy_pass http://%ip%:%web_port%;
}
location ~ /\.(?!well-known\/|file) {
deny all;
return 404;
}
location ~* "wp-content\/(uploads\/)(.*.(?:png|jpe?g))" {
add_header Vary Accept;
set $image_path $2;
if (-f "%home%/%user%/web/%domain%/public_html/wp-content/smush-webp/disable_smush_webp") {
break;
}
if ($http_accept !~* "webp") {
break;
}
try_files /wp-content/smush-webp/$image_path.webp $uri =404;
}
include %home%/%user%/conf/web/%domain%/nginx.conf_*;
}Recorda que també hauràs de configurar el fitxer .stpl per a HTTPS, que haurà de ser similar però tenint en compte les variables per a SSL. Tens molta més informació sobre això a la documentació oficial de HestiaCP.