Astuces de Webmaster

7 mai 2013

[OVH] Renouveler uniquement le nom de domaine quand on a un pack domaine+hébergement mutualisé

Architecture — Tags : , Rom's @ 19:53

Je me posais la question de s’il était possible de ne renouveler que le domaine et pas l’hébergement mutualisé chez OVH.

Dans le formulaire de renouvellement, on ne peut dissocier le nom de domaine de l’hébergement.

En farfouillant dans le manager, j’ai constaté qu’il y avait un formulaire à dispo pour résilier l’hébergement mutu seul. J’ai un peu pris peur.

En cherchant plus loin, j’ai trouvé la solution pour renouveler le domaine seul chez OVH, je partage car ça peut en aider certains à ne pas se faire « avoir »…

Connectez-vous au manager, puis retournez sur la page d’accueil d’OVH, saisissez votre nom de domaine comme si vous souhaitiez le commander. OVH vous proposera de le renouveler. Renouvelez-le, vous n’aurez à payer que la partie du nom de domaine si vous ne sélectionnez pas l’hébergement. L’hébergement expirera comme prévu et non le nom de domaine.
ovh-renew

CQFD

23 avril 2013

Récupérer des informations via l’API Google Analytics avec PHP (GAPI)

je suis tombé sur un article dont je me suis dit qu’il fallait absolument que le garde de côté tant que je n’avais pas moi-même implémenté ce qu’il proposait.

Il parle d’un sujet bien précis, mais je vous propose de le découvrir comme les premiers pas pour découvrir l’API Google Analytics, grâce à une librairie appelée GAPI (Google Analytics PHP Interface).

L’auteur vous met le pied à l’étrier pour réaliser efficacement et rapidement votre première récupération de données dans Google Analytics pour un profil donné.

Au final, le code ressemble à quelque chose de ce genre, très efficace donc

 PHP |  Copier le code |? 
01
02
<?php
03
require 'gapi.class.php';
04
$ga = new gapi('loginGoogleAnalytics','MotDePasseAnalytics');
05
// paramètres
06
$report_id		= 'XXXXXX'; // il s'agit de l'ID du profil
07
$dimensions		= array('customVarValue1'); // on veut les variables du slot 1
08
$metrics		= array('visits','timeOnSite'); //  on veut récupérer le nombre de visites et la durée de connexion
09
$sort_metric		= 'customVarValue1'; // on trie par nom d'utilisateur croissant
10
$filter			= null;
11
$start_date		= '2012-03-15'; // pour la journée du 15 mars 2012
12
$end_date		= '2012-03-15';
13
$start_index	= 1;
14
$max_results	= 30;
15
 
16
$ga->requestReportData($report_id,$dimensions,$metrics,$sort_metric,$filter,$start_date,$end_date,$start_index,$max_results);
17
 
18
foreach($ga->getResults() as $result)
19
{
20
	echo $result .": \r\n";
21
	echo "\tVisits : ". $result->getVisits() . "\r\n";
22
	echo "\tTimeOnSite : ". $result->getTimeOnSite() . " secondes\r\n";
23
}
24
 
25

Et donc l’article à lire : Tracer le temps de connexion des utilisateurs via Google Analytics

2 avril 2013

Ralentissement MySQL : identifier les requêtes à problème dans la processlist

Architecture — Tags : , Rom's @ 10:15

Pour travailler avec la processlist, on fait habituellement « show processlist; » pour avoir un aperçu rapide de ce qui se passe.

Mais si on a un souci, on a besoin de voir exactement d’où peut venir le problème.

Pour cela, on travaillera avec la table INFORMATION_SCHEMA.PROCESSLIST qui est physiquement là où ça tape.

Commande SSH pour se connecter à MySQL pour rappel :

 shell |  Copier le code |? 
1
mysql -uNomUtilisateur -p NomBase

le prompt vous demandera le mot de passe de l’utilisateur en question

Voir le nombre de requêtes par état :

 SQL |  Copier le code |? 
1
SELECT COUNT(*),STATE FROM INFORMATION_SCHEMA.PROCESSLIST GROUP BY STATE;

Voir les requêtes par serveur appelant (lorsqu’on a une base distante et plusieurs serveurs qui tapent dessus)

 SQL |  Copier le code |? 
1
SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST WHERE HOST LIKE 'front1.%';

Voir les requêtes, avec la plus ancienne en bas

 SQL |  Copier le code |? 
1
SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST ORDER BY TIME ASC;

Il vous suffit ensuite de killer la requête qui arrive en dernière dans les résultats de cette précédente requête

 SQL |  Copier le code |? 
1
KILL <ID>;

Structure de la table pour info

+-------+---------+----------------------------------------------+---------+---------+------+-----------+----------------------------------------------------------------+
| ID    | USER    | HOST                                         | DB      | COMMAND | TIME | STATE     | INFO                                                           |
+-------+---------+----------------------------------------------+---------+---------+------+-----------+----------------------------------------------------------------+
| 10267 | menkool | menivesti-inf3-front10.cust.wacool.net:57104 | menkool | Sleep   |    0 |           | NULL                                                           |
| 10256 | menkool | menivesti-inf3-front10.cust.wacool.net:57101 | menkool | Sleep   |    0 |           | NULL                                                           |
| 10252 | menkool | menivesti-inf3-front10.cust.wacool.net:57100 | menkool | Sleep   |    0 |           | NULL                                                           |
| 10246 | menkool | menivesti-inf3-front10.cust.wacool.net:57099 | menkool | Sleep   |    0 |           | NULL                                                           |
| 10241 | menkool | menivesti-inf3-front10.cust.wacool.net:57096 | menkool | Sleep   |    0 |           | NULL                                                           |
| 10236 | menkool | menivesti-inf2-front12.cust.wacool.net:35375 | menkool | Sleep   |    0 |           | NULL                                                           |
| 10201 | menkool | menivesti-inf2-front12.cust.wacool.net:35369 | menkool | Sleep   |    0 |           | NULL                                                           |
|  6716 | menkool | localhost                                    | menkool | Query   |    0 | executing | SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST ORDER BY TIME ASC |
+-------+---------+----------------------------------------------+---------+---------+------+-----------+----------------------------------------------------------------+
8 rows in set (0.00 sec)

Articles plus anciens »

Romain BOYER ©2013 - Contact : boyer Arobase romain Point biz - Profil sur LinkedIn - Profil sur Google+