Administració de sistemes

Administració de sistemes joan

Com instal·lar la darrera versió de Drush a Debian Wheezy

Com instal·lar la darrera versió de Drush a Debian Wheezy

1. Instal·lem Drush des d'un terminal, com a root, amb la comanda:

apt-get install drush

2 Actualitzem el Drush a la darrera versió:

drush dl drush --destination='/usr/share'

I ja està ;-)

Pd.: possiblement en un temps sortirà el paquet drush a wheezy-backports

Pd.: si voleu comprobar quina versió teniu instal·lada:

drush --version

joan

my.cnf : optimització de mysql drupalcèntrica

my.cnf : optimització de mysql drupalcèntrica

Per començar cal dir que no hi ha una fòrmula universal, que sigui la millor per tothom (si no, ja no hi hauria un fitxer de configuració per personalitzar certs paràmtres). Les webs poden tenir usos molt diferents, que fa que hi hagi variables més o menys adequades. Per exemple, no és el mateix una web amb moltes connexions concentrades en breus periodes de temps, que si estan més distribuides. Ni connexions que entren i surten ràpidament (bots, consultes puntuals...) que connexions persistents (clients d'una botiga de comerç electrònic), etc.

La base de dades mysql, que drupal usa per defecte, te un fitxer per configurar alguns paràmetres: my.cnf que habitualment a linux es troba al directori de configuracions /etc/my.cnf

En aquest article provaré de recopilar algunes de les recomanacions i configuracions tipus que es poden trobar per Internet. Una bona idea és usar un dels arxius de configuració subministrats per mysql (els podeu trobar a /usr/share/mysql/) i anar variant els paràmetres segons el vostre context i els resultats que aneu observant. Us adjunto el fitxers.

Apunts previs:

  • Per coneixer l'estat del vostre mysql, podeu usar l'ordre: "show status" +info
  • Per coneixer les variables que s'estan usant: "show variables"
  • Per canviar una variable podeu usar l'ordre "SET", per exemple: "SET GLOBAL thread_cache_size=96". + info
    • Moltes variables es poden canviar dinàmicament (sense reiniciar el servidor)
    • No oblideu igualment, quan trobeu el valor amb el que us trobeu a gust, modificar el fitxer my.cnf perquè mysql agafi bé el paràmetre el proper cop que arrenqui.
  • Hi ha un script: http://day32.com/MySQL/ que fa una diagnosi de la configuració actual del mysqld i suggereix millores
    Per usar-lo cal posar-lo al directori /etc i executar-lo amb l'ordre "sh /etc/tuning-primer.sh" (adjunto el fitxer).

 

Paràmetres

 

thread_cache_size

  • La mida del cache pels threads oberts...
  • Quan una web te moltes connexions curtes és útil. Millora el consum de CPU de mysql
  • Per mesurar l'ús de la cache de threads, podeu dividir el paràmetre threads_created / connections
  • Un valor excessivament alt pot donar problemes de memòria
  • Si els threads_created creixen ràpidament, ens indica la seva conveniència. En un funcionament normal, no haurien de creixer massa.

table_cache

  • Un dels paràmetres més importants
  • Si la opened_tables és massa alt, pot indicar-ne un valor massa baix
  • La seva conveniència depén del nombre de taules i connexions
  • Consumeix memòria i recursos.

key_buffer_size

  • Un altre dels paràmetres importants
  • Els valors de key_reads/key_read_request per sota de l'1% son "normals", i ens indiquen el percentatge d'us de la cache (en aquest cas, un 99%)

max_connections

  • La memòria disponible hi està relacionada segons aquesta fòrmula:
    memory = key_buffer + (sort_buffer_size + read_buffer_size) * max_connections
    • Exemple: 64 + (1 + 1) * 200 = 464 MB
  • La variable max_used_connections ens donarà una bona referència. Si el seu valor és baix, podem baixar max_connections deixant un marge de seguretat.

query_cache_size

  • Si l'ús de la BBDD és molt accentuat en la lectura i no hi ha caches a nivell d'aplicacions pot ser convenient.
  • Cal vigilar molt, perquè valors excessivament alts poden donar molt mal resultat per la saturació dels recursos. El millor és monitoritzar els canvis a veure com reacciona la BBDD.
  • Hi ha certs usos en que l'ús de la cache és tant baix que es pot prescindir de la seva activació

log-slow-queries i log-queries-not-using-indexes

Si estem interessats en registrar les consultes lentes o que no facin servir els índexos, activarem aquests dos paràmetres:

  • Primer ubiquem el fitxer:
    • Creem el directori /var/log/mysql: mkdir /var/log/mysql
    • Creem el fitxer log-slow-queries.log: touch /var/log/mysql/log-slow-queries.log
    • Modifiquem l'usuari i el grup per posar-lo a mysql: chown mysql.mysql -R /var/log/mysql
  • Li treiem el permís de lectura i execució als usuaris que no siguin mysql, root o estiguin als seus grups, seguint les indicacions de seguretat que ens fan els nois de mysql. Això es pot fer amb laa comanda chmod -R o-r /var/log/mysqlchmod -R o-x /var/log/mysql
  • afegim al my.cnf dugues línies:
    • log-slow-queries=/var/log/mysql/log-slow-queries.log
    • log-queries-not-using-indexes
  • Si no volem que el fitxer log creixi sense aturador, podem posar al cron l'ordre mysqladmin fluch-logs:
    • mv -f /var/log/mysql/log-slow-queries.log /var/log/mysql/log-slow-queries.vell
    • mysqladmin flush-logs

Aquests logs ens podran ajudar a optimitzar el codi, i si no podem fer-ho, a configurar paràmtres com el join_buffer_size, que ens ajuda a millorar el rendiment de consultes amb un join sense indexar.

 

my.cnf per drupal
Paràmetre Valor, enllaçat a la font, i (any de publicació)      
thread_cache_size 40 (2002) 32 (2005-10) >16 (2006-10)      
max_connections min (20 * webs_drupal) (2009)          
key_buffer_size mín. 16-32Mb (2006-10)          
table_cache a partir de 1024 per unes 200 taules (2006-10)          
query_cache_size 32 a 512M (2006-10)          

 

Referències

joan

Redireccionar un domini a un compte d'un VPS d'OVH

Redireccionar un domini a un compte d'un VPS d'OVH

Teniu un VPS a OVH i voleu redirigir un domini allà? Les instruccions que he trobat no son massa clares, i hi ha versions diferents... Aquí està el que m'ha funcionat a mi ;-)

  • Entrem al  Manager v3 d'OVH
  • Anem a l'apartat "Mis Productos"
  • Usem l'opció "Nuevo Dominio", i allà posem el nom del domini que volem redirigir.
  • Com que el domini ja existeix i el tenim registrat, ens sortirà el següent missatge:

Este dominio está ya registrado y pertenece a otra persona.
Si usted es su propietario, puede sin embargo :

  • i ens dona 4 opcions, de les que triarem: "Añadir a los DNS (avanzada)" i, llavors ens apareixeran 2 desplegables "Seleccione el tipo de zona" i "Seleccione el tipo de email" i en els dos casos triarem la "redirecció per defecte"
  • Un cop creat, tornem a l'inici/home del Manager V3 i vorem el domini a la llista de productes...
  • Seleccionem el domini i anem al bloc lateral "Hosting" que se'ns acaba de carregar i, dins, al subapartat "Dominio & DNS"
    • Allà anirem a "Zona DNS"
    • Al tipus "A" ens sortirà un formulari a on hem de:
      • deixar en blanc el camp de subdomini
      • a "Seleccionar una IP", hem de triar "IP personalizada"
      • I a "Destino", hem de posar la IP del nostre VPS ;-)
    • Si al resum que surt a la part inferior de la pàgina un cop heu validat la pantalla anterior veieu que teniu dos registres de classe A, el que acabeu d'entrar, i un altre amb una altra IP, esborreu aquesta segona.
  • Llavors ja només ens queda anar a l'empresa a on tenim registrat el domini i posar les dades dels dos servidors NS que surten a la "Zona DNS" que hem comentat abans, i esperar unes hores a què es propagui el canvi (ho podem seguir amb les eines que ens proporciona http://viewdns.info/ )

Eines:

joan

Several sites development without available domains with Nginx, using IP, in a multisite/vhost environment

Several sites development without available domains with Nginx, using IP, in a multisite/vhost environment

Do you need work in web development but project has not registered an IP yet? If you are using Nginx, and your server hosts several websites (vhosts) a way to do it could be this:

Note: this howto runs in a linux / debian7 server, and a fictitious domain "mydomain.net"

  •   In /etc/nginx/sites-available/mydomain.net change port to listen, for example:

listen *81;

  • reload nginx configuration files:

service nginx reload

Then, you can get this web in this URL: MyServerIP:81 or MyServerDomain:81

 

joan

Canviar el port de ssh a Ispconfig

Canviar el port de ssh a Ispconfig

Una de les opcions que es comenten per millorar la seguretat dels servidors és canviar el port que usa ssh per accedir-hi, i posar-ne un diferent al 1022. Podeu buscar informacio sobre si és una mesura efectiva o no. A la pràctica pot reduir molt l'impacte dels bots que van provant d'accedir-hi, tot i que eines com fail2ban eviten que una IP pugui fer més de 5 intents erronis.

Anem per feina, per canviar el port que usa ssh en una Debian 7 amb Ispconfig3, que és del que va aquest mini howto, cal fer dos passos:

El primer, obrir el port al firewall, en aquest cas Bastille (és el que ve per defecte a Ispconfig, però n'hi ha un segon... comproveu quin és el vostre cas).

1) Aneu al menú superior System del Ispconfig, i voreu que us mostra una opció, al menu lateral, anomenada Firewall.

2) Clicant sobre el vostre servidor, a la part central de la pantalla, podeu afegir un nou port TCP, que és que voleu usar en substitució del port per defecte, el 22.

Heu de tenir en compte que no podeu usar un port que ja estigui usant-se per un altre servei. Consulteu per internet com llistar els ports en us... I, a més, és millor que useu un dels ports per sota del 1023.

Guardeu els canvis i ja teniu el port obert al firewall.

3) El tercer pas és canviar el port, en aquest cas a openssh, que és el servidor ssh que usa Debian.
Treballarem com a root, no cal dir-ho.
Abans de res, farem un còpia del fitxer actual de configuració:

cp /etc/ssh/sshd_config /etc/sshd_config_anymesdia

4) Després editarem el fitxer, per exemple amb l'editor nano:

nano /etc/ssh/sshd_config

5) I, al començament del fitxer, trobarem la línia que defineix el port a usar:

# What ports, IPs and protocols we listen for
Port 22

Simplement canviarem el 22 pel port que volguem usar, i que abans hem obert al firewall.

6) El darrer pas és reiniciar el dimoni ssh:

service ssh restart

 

joan

Server Monitoring with Munin on Debian 7 (Wheezy) with Nginx

Server Monitoring with Munin on Debian 7 (Wheezy) with Nginx joan

You have a server running a Debian 8 and Nginx, and now you want to install Munin to monitorize it... Here you are steps to achieve it.

Ensure that the system is up to date before you start to install Munin, run:

apt-get update
apt-get upgrade

Install Munin:

apt-get install munin munin-node munin-plugins-extra

Création d’un lien symbolique pour la partie serveur web

 

ln -s /var/cache/munin/www /var/www/munin

 

When the server is running MySQL or MariaDB, intall this dependency

apt-get install libcache-cache-perl

then enable the a few extra Munin plugins to monitor MySQL:

cd /etc/munin/plugins
ln -s /usr/share/munin/plugins/mysql_ mysql_
ln -s /usr/share/munin/plugins/mysql_bytes mysql_bytes
ln -s /usr/share/munin/plugins/mysql_innodb mysql_innodb
ln -s /usr/share/munin/plugins/mysql_isam_space_ mysql_isam_space_
ln -s /usr/share/munin/plugins/mysql_queries mysql_queries
ln -s /usr/share/munin/plugins/mysql_slowqueries mysql_slowqueries
ln -s /usr/share/munin/plugins/mysql_threads mysql_threads

We protect munin access with a password:

htpasswd -c /etc/munin/munin-htpasswd admin

Now we should create an nginx site conf file:

 

nano /etc/nginx/conf.d/munin.conf

with a content like this, if you want to access it at yourdomain.tld/munin URL:

 

server {
        listen 80;
        server_name yourdomain.tld;
        access_log /var/log/nginx/acces_munin.log;
        error_log /var/log/nginx/error_munin.log;

        server_name_in_redirect off;
        root /var/www;

        # Used to setup our munin subdirectory, and a password protection
        location /munin/ {
                #root /var/www/munin;
                auth_basic "Administrator Login";
                auth_basic_user_file /etc/munin/munin-htpasswd;
        }

        location /munin/static/ {
                alias /etc/munin/static/;
                expires modified +1w;
        }

}

Finally we should restart nginx and munin services:

 

service nginx reload
service minin-node restart

To enable aditional munin modules, please, see sources at the bottom of this post.

Sources

URL netes a Drupal 8 amb Apache i IspConfig, en un servidor Debian 8

URL netes a Drupal 8 amb Apache i IspConfig, en un servidor Debian 8

La idea és fer els canvis al servidor que permetin que totes les instal·lacions de drupal 8 tinguin resolt el problema de les URL netes.

Si heu instal·lat el panell de programari lliure IspConfig, ja tindreu el mod_rewrite de l'Apache activat. És un dels requisits. Llavors només heu d'editar el fitxer /etc/apache2/apache2.conf i afegir:

# Drupal 8: clean URL
# https://www.drupal.org/getting-started/clean-urls#comment-8780263
<Directory /var/www/clients/*/*/web/>
   RewriteEngine on
   RewriteBase /
   RewriteCond %{REQUEST_FILENAME} !-f
   RewriteCond %{REQUEST_FILENAME} !-d
   RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
</Directory>

Fixeu-vos que al usar el comodí a la ruta de directoris: /var/www/clients/*/*/web/ ens servira per tots els projectes de web que volguem instal·lar al mateix servidor.

Després cal que reinicieu el servei de l'Apache, perquè els canvis de configuració tinguin efecte:

service apache2 restart

I ja està!

joan