Debian, configuration d’accès au serveur proxy

Sous Linux lorsque une commande apt-get ou wget lancée, le système se connecte a sur internet. Il se peut que votre machine passe par un serveur proxy pour cela. Si c’est votre cas, deux fichiers sont à modifier.

pour la commande apt-get ajoutez la ligne ‘Acquire::http::Proxy “http://user:pwd@ip.xx.xx.xx:8080″;’ dans le fichier /etc/apt/apt.conf

pour la commande wget ouvrez le fichier /etc/wgetrc et décomentez les lignes suivantes :

https_proxy = http://user:pwd@ip.xx.xx.xx:port/

http_proxy = http://user:pwd@ip.xx.xx.xx:port/

ftp_proxy = http://user:pwd@ip.xx.xx.xx:port/

use_proxy = on

nb : remplacez user par votre nom d’utilisateur, pwd par voter mot de passe, ip.xx.xx.xx par l’ip du proxy, et port par le port concerné.

Posted in Linux | Tagged , | Laisser un commentaire

MySQL Workbench on LInux Debian

Pour ceux qui ne connaissent pas encore MySQLWorkbench sert à concevoir, modéliser, et administrer des bases de données. Il est le successeur de DBDesigner. C’est vraiement l’outil indispensable pour travailler rapidement avec des bases de donnée MySQL.

MySQLWorkbench est disponible pour plusieurs plateformes : Windows, Mac, Fedora, Ubuntu. Mais si comme moi vous êtes sous Debian, c’est pas de chance, aucun .deb à l’horizon. Mais je vous rassure on peut quand même réussir à l’installer. Commençons par télécharger la source pour les distributions Linux Génériques (en tar.gz)  ici

Ensuite extrayez les données dans le repertoire /opt

la normalement il ne reste plus qu’a ce placer dans le répertoire que nous venons d’extraire et de lancer les commandes :

# make

# make install

Et c’est partis ! sauf que… il manque quelques petits paquets à installer d’abord.

C’est très long, je vous ai donc fais la liste suivante pour vous faciliter la tâche.

#apt-get install  autoconf libtool libzip-dev libgtk2.0-dev libxml2-dev libsigc++-2.0-dev libgtkmm-2.4-dev libsqlite3-dev libboost-dev libmysqlclinet-dev uuid-dev liblua5.1-0-dev python-dev libglc-dev libpcre3-dev

une fois installé relancez les commandes :

# make

# make install

Double cliquez sur le fichier /opt/workbench/bin/mysql-workbench. Ca y est enfin vous pouvez profiter pleinement de MySQLWorkbench

Posted in Web en boite | Laisser un commentaire

MySQL, recherche FULL TEXT

La recherche full text ou texte intégral, c’est quoi?

C’est une alternative puissante à la recherche d’une chaîne de caractères avec des fonctions classiques telle que LIKE.

Pour trouver une chaîne de caractères la recherche full text ne va pas parcourir l’ensemble des cellules, mais en ce basera sur l’index FULL TEXT de la table. Tous les mots les plus communs (poids faible) seront excluent de cette recherche. De base tous les mots inférieurs à trois caractères seront eux aussi excluent. Combinée à un outil d’analyse linguistique, la recherche full-text est également en mesure de mettre en corrélation les mots d’une même famille, par exemple “fruit”, “fruits” et “fruitier”. La recherche full text est très efficace pour trouver rapidement une chaine de caractères sur une grande quantité de données.

Ajouter un index FULLTEXT à une table.

Les indexes FULL TEXT sont utilisés avec les tables de type MyISAM (utilisation par defaut) . Ils peuvent être créés depuis des champs de type : CHAR, VARCHAR et TEXT soit au moment de la création de la table :

CREATE TABLE mytable (

id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,

title,

body,

FULL TEXT(title, body);

ou plus tard en modifiant la table :

ALTER TABLE mytable ADD FULL TEXT(title,body);

Notez qu’a tout moment il est possible de supprimer l’index FULL TEXT d’une table :

DROP INDEX monindex ON mytable;

Créer une requête SQL pour la recherche FULL TEXT

SELECT *

FROM mytable

WHERE MATCH(id, body) AGAINST(’barbapapa’);

explications :

lLa fonction MATCH() effectue une recherche full text sur la chaîne de cratères ’barbapapa’ donnée en paramètre à la fonction AGAINST(). Les colonnes utilisées par la fonction MATCH() doivent être identiques à celles utilisées dans l’index fulltext.

Nous venons de voir une utilisation classique de ce système de recherche.

Affiner cette recherche à l’aide des expressions booléennes avec la directive IN BOOLEAN MODE.

Par exemple si nous voulons exclure un mot lors d’une recherche :

SELECT *

FROM mytable

WHERE MATCH(id,body) AGAINST(’+barbapapa -rose’ IN BOOLEAN MODE);

explications :

la recherche portera sur le mot barbapapa (+barbapapa) et exclura le mot rose (-rose)

Il existe toute une suite d’opérateurs : +, -, *, etc.. je vous invite à jetter un oeil sur la doc officielle

Pour aller plus loin dans le paramétrage des indexes fulltext

Par défaut ce système de recherche ignore tous les mots inférieurs à 3 caractères. Il est possible de changer ce comportement en modifiant la valeur de la variable ‘ft_min_word_len’ qui se trouve dans le fichier my.cnf.

Pour visualiser la valeur de cette variable :

SHOW VARIABLES LIKE ‘%ft_min_word%’

modifiez la valeur de cette variable, sous linux le fichier se trouve communément dans /etc/mysql/my.cnf. Ensuite il faut recompiler les indexes de la table avec la commande SQL suivante :

REPAIR TABLE mytable

et enfin relancer le serveur mysql :

/etc/init.d/mysql restart

Voila déjà un joli tour d’horizon sur les requêtes full text. En espérant que cet article vous soit utile pour vos projets ;-)

Posted in Web en boite | Laisser un commentaire

jQuery, cases à cocher, tout cocher

Nous allons voir ensemble comment mettre en place dans une page web une serie de checkbox avec l’option “tout sélectionner” ou “tout cocher“.

Pour cela nous allons utiliser le langage Javascript avec jQuery.

Prerequis : un serveur web avec apache, la bibliothèque jQuery correctement chargée.

le code html :

<ul>

<li>

<input type=”checkbox” id=”all”><label>Tout cocher</label>

</li>

<li>

<input type=”checkbox” name=”myCheckbox[]“><label>option 1</label>

</li>

<li>

<input type=”checkbox” name=”myCheckbox[]“><label>option 2</label>

</li>

<li>

<input type=”checkbox” name=”myCheckbox[]“><label>option 3</label>

</li>

<li>

<input type=”checkbox” name=”myCheckbox[]“><label>option offensive</label>

</li>

</ul>

explication, la première checkbox avec l’identifiant “all” permet à l’utilisateur de selectionner d’un simple click toutes les autres checkbox. Vous remarquerez que les autres checkbox on toute le paramètre name=”myCheckbox[]” . C’est grâce à cela que nous pourrons récupérer les données de toutes les checkbox sous forme de tableau, une fois quelles seront transmise au serveur via un formulaire. Pour ceux que ça interresse voici un bout de code illustre ceci, pour les autres passez directement au code javascript.

le code PHP :

if($_SERVER['REQUEST_METHOD'] === ‘POST’) { //si la methode POST a été utilisée

if(!empty($_POST['myCheckbox'])) { //si au moins une des case a été cochée

$options = $_POST['myCheckbox']; //récupération du tableau des options de cochées

//boucle sur la selection

foreach($options as $option)

{

echo $option;

}

}

le code javascript :

<script type=”text/javascript”>

$(’#all’).click(function() {

var mycb = $(’*[name^="myCheckbox"]‘);

if(this.checked) {

mycb.attr(’checked’, true);

} else {

mycb.attr(’checked’, false);

}

});

</script>

explications, $(’#all’).click(function() {… recupere la balise dans le DOM qui a pour attribut l’id “all” $(’#all’), nous faisons appel à la fonction click qui exécutera la série d’instruction des que l’utilisateur aura coché la case “Tout cocher” .click(function() {

var mycb = $(’*[name^="myCheckbox"]‘); cette instruction récupère tous les éléments du DOM qui on un attribut name qui commence par myCheckbox. Ici c’est de nos case à cocher qu’il s’agit bien entendu.

if(this.checked) { on vérifie l’état de la case à cocher “tout cocher” ici this

mycb.attr(’checked’, true); si c’est le cas on ajoute l’attribut checked=”checked” à toutes les cases à cocher”options”

Voila vous avez ici une solution simple à mettre en place pour vos projets.

Posted in Web en boite | Tagged | Laisser un commentaire

Javascript, les objets

Voici le premier article de mon blog sur le langage javascript.

Un langage dont la syntaxe peut être surprenante voir déroutante. Pour les développeurs PHP ne cherchez pas d’équivalent à php.net pour javascript ça n’existe pas, pas plus qu’une la documentation officielle.

Pour ce premier article nous allons nous intéresser aux objets.

Pour le langage Javascript, Object() représente la superclasse qui contient les caractéristiques à tous les objets javascript.

Création d’un objet :

<script>

var obj = new Object();

</script>

Création d’un objet avec la syntaxe JSON, et oui c’est pareil mais pas pareil. :-)

<script>

var obj = {};

</script>

Ajout de propriété à un objet

<script>

var obj = new Object();

obj.variable1 = “hello”;

</script>

Ajout de propriété à un objet avec la syntaxe JSON

<script>

var obj = {variable1 : “hello”};

</script>

Ajout d’une méthode à un objet

<script>

var obj = new Object();

obj.mafonction = function()

{

alert(”hey!”);

}

obj.mafunction(); //affiche “hey!”

</script>

Ajout d’une méthode à un objet avec la syntaxe JSON

<script>

var obj = {

mafonction : function()

{

alert(”hey!”);

}

}

obj.mafonction()//affiche “hey!”

</script>

le mot cle $this désigne l’objet en cours. Si aucun objet n’est en cours de traitement $this désignera l’objet window (la fenetre courante). Voyons comment l’utiliser :

<script>

var obj = new Object();

obj.mavariable = “comment ça va?”;

obj.mafonction = function()

{

alert(”hey!”+this.mavariable);

}

obj.mafunction(); //affiche “hey!comment ça va?”

</script>

Posted in Web en boite | Laisser un commentaire

PHP envoyer des mails, les pré-requis

PHP permet d’envoyer des mails via la fonction mail(). Il n’y a pas d’installation nécessaire pour utiliser ces fonctions, elles font parties du coeur de PHP.

Faut-il encore avoir un serveur correctement paramétré pour cela. En effet pour envoyer des mails PHP cherchera par defaut à utiliser le service sendmail qui doit être installé sur le serveur ou s’exécute le script.

Tester le service sendmail du serveur

faites un test en ligne de commande pour vous assurer que votre machine/serveur est bien apte à envoyer des mails via sendmail :

# echo “message mail” | mail -s “sujet mail” monadresse@mail.fr

si vous ne recevez pas de mail, installez sendmail

Installer SENDMAIL

(sous Debian)

# apt-get install sendmail-bin
# apt-get install sendmail
refaites le test.

Envoyer des mails avec PHP

Maintenant pour tester si tout fonctionne bien créez un fichier php qui sera exécuté sur votre serveur.
Utiliser la fonction mail() de PHP comme ceci :
mail(‘monadresse@mail.fr’, ‘mon sujet’, ‘mon message);
Posted in Web en boite | Tagged | Laisser un commentaire

Apache, les virtuals hosts

Dans ce mini how to nous allons voir comment créer des virtuals hosts sur un serveur apache.

Un virtualhost c’est quoi?

c’est un serveur virtuel, le principe est de faire fonctionner plusieurs serveurs web (monsite1.com, monsite2.com, etc..) sur la même machine.

l’exemple qui suit a été réalisé sous linux Debian pour faire fonctionner un site en local mais peut très bien servir pour un site sur un serveur distant.

1 Créer le répertoire ’monsite’ qui contiendra le site en question.

Placez-vous dans le repertoire /var/www/ avec la commande :

#cd /var/www/

créez  le repertoire ‘monsite’

# mkdir monsite

ajoutez les droits pour que le serveur apache puisse y avoir accès

#chown -R www-data:www-data /var/www/monsite

www-data correspond à l’utilisateur et au groupe du compte apache.

2 Le fichier de configuration apache.

Les fichiers de configuration apache pour chaque site se trouve dans /etc/apache2/sites-available/

placez vous dans ce repertoire et créez le fichier ‘monsite’ qui contiendra la configuration apache de votre site :

#cd /etc/apache2/sites-available/

# vi monsite

et ajoutez les lignes suivantes pour une configuration minimale

<VirtualHost *:80>

ServerName monsite

DocumentRoot /var/www/monsite/

</VirtualHost>

Avec cette config apache va rediriger l’adresse monsite arrivant sur le port 80 vers le dossier /var/www/monsite.C’est vraiment la configuration minimale pour tester si votre site fonctionne bien. Par la suite il est préférable d’ajouter les directives pour les fichiers de logs elles vous permettrons de debuger plus facilement en cas de problèmes et d’itenfier les tentatives de connexions. Voici un exemple :

Errorlog /var/log/apache2/monsite_error.log

CustomLog /var/log/apache2/monsite_access.log combined

(ces deux lignes sont à ajouter entre les balises <VirtualHost *:80> et </VirtualHost>)

3 Activer le nouveau virtual host

# a2ensite monsite

et recharger la configuration apache

# /etc/init.d/apache2 reload

Pour visualiser l’ordre dans lequel les virtualshots sont interprétés :

# apache2ctl -S

4 Configurer le fichier hosts de votre machine.

dans le fichier /etc/hosts vous allez trouver la ligne 127.0.0.1 localhost. Ajoutez-y ‘monsite’. Ce qui donne :

127.0.0.1 localhost monsite

Et voila une affaire qui marche !

Vous n’avez plus qu’a tester. Dans votre navigateur tapez l’url http://monsite/

(n’oubliez pas d’exclure ‘monsite’ si vous utilisez un proxy)

Posted in Général | Tagged | Laisser un commentaire

Utiliser Zend Debugger depuis Eclipse

Ce how to présente comment configurer correctement son environement afin d’utiliser Zend debugger sous Eclipse

(réalisé sous Debian Squeeze 64 bit).

Commencez par télécharger et isntaller la dernière version d’Eclipse PDT, jusque là ça peut allé niveau difficulté.

Ensuite téléchargez l’une des archives suivantes (la plus adaptée a votre système) elle contient les fichiers qu’il va falloir installer sur le systeme.

Décompressez l’archive vous trouvez des dossiers només : 5_0_x_.. 5_1_x…. se nommage correspond à une version de php ouvrez celle qui correspond a la version de php qui tourne sur votre machine (ou la plus proche). Pour le savoir rapidement tapez la commande

# php –version

Nous avons aussi besoin de connaitre le chemin vers le repertoire des extensions php, tapez la commande :

# php -i | grep extension_dir

(pour moi /usr/lib/php5/20090626)

ouvrez donc le dossier 5_x_x et copiez le fichier ZendDebugger.so dans le repertoire des extensions php.

copie en ligne de commande

# cp /cheminvers/5_x_x  /repertoire/extensionhphp/

Il va falloir maintenant ajouter les lignes suivantes dans notre php.ini :

[Zend]

zend_extension=/usr/lib/php5/20090626/ZendDebugger.so

zend_debugger.allow_hosts=”127.0.0.1, 192.168.xx.xx”

zend_debugger.expose_remotly=always

(192.168.xx.xx correspond à votre ip locale)

ensuite relancez apache :

# /etc/init.d/apache2 restart

Enfin on arrive presque au bout … Dans l’archive se trouve un fichier dummy.php, copiez le à la racine du dossier vers lequel votre serveur pointe. Pour moi, avec une config. classique se sera dans /var/www/.

Redémarrez Eclipse.

Dans Window > Preferences > Debug choisissez Zend Debugger.

et voila !

Warning quand même, car avec Eclipse il y a souvant un warning quelque part ;)

Si ça ne fonctionnne pas, vérifiez le port utilisé par zend debugger, dans Window > Preferences > Debug > Installed Debuggers. Par defaut eclipse attribut le port 10000 à zend  debugger (chez moi déjà utilisé par webmin) je l’ai remplacé par 10001 pour que ça fonctionne enfin.

quelques liens utiles pour la route :

https://www.eclipse.org/pdt/articles/debugger/os-php-eclipse-pdt-debug-pdf.pdf

http://www.zend.com/community/pdt

http://dev.antoinesolutions.com/zend-debugger

Posted in Linux, Web en boite | Laisser un commentaire

DuckDuckGo

DuckDuckGo est un moteur de recherche situé à Valley Forge en Pennsylvanie. Il sera proposé par defaut de la prochaine version de Mint.

(Mint étant la distribution Linux qui a le vent en poupe en ce moment, il est donc interressant de se pencher sur ce choix)

La philosophie du moteur de recherche en quelques mots :

DuckDuckGo s’opppose au tracking, ne collecte pas d’info personnelles de navigation, il n’y a donc pas de risque quelles soient partagées/revendues à des fins commerciales comme le font la plus part des autres moteurs de recherche. Il favorise aussi l’utilisation d’HTTPS.

Pour ce qui concerne la navigation les resultats de recherches ne sont pas non plus personnalisés en fonction de l’historique de navigation comme le fait Google par exemple.

Je trouve ça interressant, la persepective de voir mes resultats guidés en fonction de mes précedante rechers ne me rejouit pas trop. J’aime découvrir de nouveaux domaines au detour de mes recherches.

DuckDuckGo est construit sur de l’open source et permet aux developpeurs qui le souhaite d’apporter leur contribution en créant quelques goodies.

Mais attention tout n’est pas ouvert dans le code du moteur de recherche.

Option interressante, il est possible de choisir son pays et par consequent de prévilégié les résultats en fonction d’une langue donnée.

Bref, ce petit canard il me plait bien, je test, je dirais même plus, j’utilise !

Posted in Général, Linux, Web en boite | Laisser un commentaire

Linux, importer des fonts .ttf

Sous Linux;

Les polices de type truetype (ttf) sont localisées dans le dossier /usr/share/fonts/truetype/

Une des méthode pour utiliser les polices truetype que vous allez importer est de créer un répertoire (ex “mesfonts”) dans /usr/share/fonts/truetype/ avec la commande suivante :

# mkdir /usr/share/fonts/truetype/mesfonts

Ensuite copiez dans ce nouveau répertoire les .ttf  qui vous intéressent.

Enfin pour que le systeme prenne en compte ces nouvelles police lancez la commande.

# fc-cache

Posted in Web en boite | Laisser un commentaire
  • Click me !

  • Catégories