Anthor.Net

Blog | jQuery Progression | SlickSpeed | En direct de Twitter | Portfolio | Photographies | Contact

Tag - Apache

8/01/2010

Utiliser Zend_Search_Lucene pour créer son propre moteur de recherche!

zf_logo_white.jpg Le Zend Framework contient un composant permettant de créer rapidement et simplement son propre moteur de recherche ! Ce composant nommé Zend_Search_Lucene est un portage, du projet Java du même nom, totalement écrit en PHP5.

Ce composant est autonome et ne demande aucune architecture spécifique. De ce fait il peux servir pour tout nouveau projet ou s'intégrer dans un projet existant. Aucune base de données n'est nécessaire. De plus les index peuvent être utilisés aussi bien avec Zend_Search_Lucene, qu'avec tout autre portage de Lucene (Attention toutefois, tous les encodages ne sont pas supportés !)
Il supporte différents encodages grâce à l'utilisation de différents analyseurs, mais pas l'UTF-8 par défaut, comme PHP me direz-vous :p

Contrairement au reste de la documentation et des autres composants du Zend Framework, le fonctionnement de Zend_Search_Lucene n'est pas des plus explicites.
Dans cet article nous verrons donc, comment utiliser Zend_Search_Lucene pour construire un index, construire les requêtes de recherches et enfin afficher les résultats dans une page. Le tout en UTF-8 bien évidemment.

Lire la suite

13/08/2009

L'importance de compresser les fichiers statiques

Lorsque j'ai commencé Tarschool, j'ai immédiatement mis en place un système de compression des fichiers. Celui-ci est de deux sortes :

  • Minification des fichiers JS et CSS
  • Compression avec le mode deflate des fichiers JS et CSS

Faciles et rapides à mettre en place, ces solutions permettent souvent d'économiser au minimum 75% de la bande passante utilisé par le serveur en mode normal.

Voici un petit récapitulatif des solutions que nous avons mis en place et de leurs économies associées.

Lire la suite

8/06/2009

.htaccess par défaut

On utilise souvent le même .htaccess de base lors du démarrage d'un développement, mais certaines options restent valables quelque soit le site.

RewriteEngine On
 
RewriteCond %{HTTP_HOST} !^www\.mydomain\.fr$ [NC]
RewriteRule ^(.*)$ http://www.mydomain.fr/$1 [R=301,L]
 
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
 
<IfModule mod_deflate.c>
	<FilesMatch "\.(js|css)$">
		SetOutputFilter DEFLATE
	</FilesMatch>
</IfModule>

Grâce à cette base, je m'assure que le domaine principal est bien le domaine utilisé pour la navigation, je redirige ensuite tous les accès à des fichiers inexistants vers le bootstrap index.php. Finalement, en cas de présence du mode DEFLATE, les fichiers JS et CSS sont compressés à la volée.

19/10/2008

Serveur Dédié Debian Etch 64bit chez OVH - Installation d'Apache 2, PHP5, et phpMyAdmin

fab.os.logo.apache.200.150.jpg Pour installer Apache 2 :

apt-get install apache2 apache2-mpm-prefork apache2-utils apache2-prefork-dev

Puis installer PHP 5 :

apt-get install libapache2-mod-php5 php5 php5-common php5-curl php5-dev php5-gd php-pear php5-imagick php5-imap php5-json php5-mcrypt php5-mhash php5-mysql

Editer le fichier /etc/apache2/ports.conf et ajouter la ligne :

Listen 443

Effectuez les commandes suivantes pour activer les modules SSL, Rewrite, Suexec et Include :

a2enmod ssl
a2enmod rewrite
a2enmod suexec
a2enmod include

Je souhaite maintenant mettre en place les extensions PECL_HTTP, Fileinfo et APC op cache.
Pour préparer leur installation, j'ai besoin de quelques outils supplémentaires :

apt-get install curl libcurl3-gnutls-dev libmagic-dev
ln -s /usr/bin/apxs2 /usr/bin/apxs
ln -s /usr/share/file/magic /etc/magic.mime

Puis je compile les extensions :

pecl install pecl_http
pecl install fileinfo
pecl install apc

Pour activer les extensions et effectuer quelques configurations, j'édite le fichier /etc/php5/apache2/php.ini :

expose_php = On
magic_quotes_gpc = Off
default_charset = "utf-8"
allow_url_include = On
extension = http.so
extension = fileinfo.so
extension = apc.so

Installer phpMyAdmin :

apt-get install phpmyadmin

Et enfin redémarrer Apache :)

/etc/init.d/apache2 restart