Que vous dire de plus ?
php
InstantClient 10 compatible snow leopard 10.6
5/09/09
Bonne nouvelle pour les utilisateurs d’Oracle. Le projet MacPorts a rendu la version InstantClient 10 compatible 64 bits pour l’installation sur snow leopard. Voici donc la marche à suivre pour son installation.
Pour être sur d’avoir les dernières sources, nous allons au préalable faire une mise à jour de l’arbre de MacPorts:
sudo port selfupdate
Première chose, nous allons télécharger la version d’InstantClient 10 directement sur le site d’Oracle en cliquant ici.
Récupérer les paquets suivants:
instantclient-basic-10.2.0.4.0-macosx-x64.zip instantclient-sdk-10.2.0.4.0-macosx-x64.zip
La démarche suivante consiste à copier ces 2 paquets dans le projet MacPorts à l’emplacement suivant:
/opt/local/var/macports/distfiles/oracle-instantclient
Dès que vous aurez déplacé ces paquets au bon endroit, il ne vous reste plus qu’à les installer
port install oracle-instantclient
Nous allons insérer la ligne suivante dans le profile (/etc/profile).
export DYLD_LIBRARY_PATH=/opt/local/lib/oracle
Nous allons également insérer ce path dans la configuration apache en ajoutant la ligne ci-dessous dans le fichier envvars se trouvant dans /opt/local/apache2/bin:
... export DYLD_LIBRARY_PATH="/opt/local/lib/oracle"
Pour finir, nous allons installer l’interface pour php
port install php5-oracle
Il ne reste plus qu’à relancer apache pour que le tout soit pris en compte
sudo /opt/local/apache2/bin/apachectl stop sudo /opt/local/apache2/bin/apachectl start
J’utilise le stop/start pour vraiment vider les choses en mémoire.
Bonne découverte.
Installation de mon environnement de développement web avec MacPorts
5/07/09
Ayant reçu mon nouveau portable Macintosh, je me suis posé la question suivante: « Faut-il tout recompiler mes éléments ou les installer avec macports ? ». J’ai décidé de choisir la seconde solution pour me faciliter les choses. Je vais vous détailler ci-dessous l’installation des éléments suivants:
- MacPorts
- Apache
- Subversion et dav_svn
- MySql
- php
1. MacPorts
Vous trouvez l’installeur directement sur le site web macports. Vous avez plusieurs possibilités offertes. Il vous suffit de lire la page install du site.
2. Installation du serveur Apache
sudo port install apache2
Démarrage du serveur:
sudo /opt/local/apache2/bin/apachectl start
Pour lancer automatiquement le serveur au démarrage, il suffit de lancer la commande suivante:
sudo launchctl load -w /Library/LaunchDaemons/org.macports.apache2.plist
Il ne reste plus qu’à changer votre configuration en éditant le fichier httpd.conf.
Dans mon cas, j’ai décidé de mettre mon dossier root à la racine de mon disque (/www).
Nous en avons fini avec l’installation d’apache
3. Installation de Subversion et dav_svn
J’ai décidé d’installer un serveur subversion directement sur ma machine pour pouvoir stocker le suivi des changement dans mes projets. Si vous ne voulez pas le faire, il suffit de supprimer l’option « +mod_dav_svn ».
sudo port install subversion +mod_dav_svn
Après l’installation des éléments, il nous suffit de charger le module dav avec la commande apxs:
cd /opt/local/apache2/modules sudo /opt/local/apache2/bin/apxs -a -e -n "dav_svn" mod_dav_svn.so
L’installation est toujours aussi simple.
4. Installation de MySql
sudo port install mysql5-server
Installation des bases nécessaires à MySql:
sudo -u mysql mysql_install_db5
Démarrage du serveur:
sudo /opt/local/lib/mysql5/bin/mysqld_safe &
Configuration de mysql:
sudo /opt/local/lib/mysql5/bin/mysql_secure_installation
Pour lancer automatiquement le serveur au démarrage, il suffit de lancer la commande suivante:
sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql5.plist
Je vais maintenant personnaliser un peu mon installation pour fixer les paramètres par défaut. Pour cela , je vais créer un fichier my.cnf dans le dossier /etc avec le contenu suivant:
[client] port=3306 default-character-set=utf8 [mysqld] port=3306 default-character-set=utf8 collation-server=utf8_unicode_ci default-collation=utf8_unicode_ci default-storage_engine = InnoDB default_table_type = InnoDB
Toujours aucun problème lors de l’installation de MySql.
5. Installation de PHP
Tous les options ci-dessous ne sont pas nécessaires. Vous pouvez choisir uniquement les paquets dont vous avez besoin.
sudo port install php5 sudo port install php5-curl php5-gd php5-iconv php5-imap php5-mbstring php5-mcrypt php5-mysql php5-sockets php5-solr php5-sqlite php5-tidy php5-zip
Nous allons choisir notre fichier php.ini. Comme je suis sur une machine de dev, je vais choisir le php.ini-dist
sudo cp /opt/local/etc/php5/php.ini-development /opt/local/etc/php5/php.ini
J’ai également changé quelques paramètres dans mon fichier php.ini:
short_open_tag = Off post_max_size = 50M magic_quotes_gpc = Off upload_max_filesize = 50M ;extension_dir = "./" (ligne commentée) pdo_mysql.default_socket = /opt/local/var/run/mysql5/mysqld.sock mysql.default_socket = /opt/local/var/run/mysql5/mysqld.sock date.timezone = Europe/Zurich
Il ne reste plus qu’à charger le module php dans apache:
cd /opt/local/apache2/modules sudo /opt/local/apache2/bin/apxs -a -e -n "php5" libphp5.so
Si vous désirez de la couleur en ligne de commande php, vous devez ajouter un module additionnel:
sudo port install php5-posix
Dès à présent, vous retrouverez des commandes sexy
6. Configuration Apache
Pour qu’Apache prenne en compte les extensions .php et .phps, nous allons inclure la ligne suivante dans le fichier httpd.conf
Pour charger la configuration des virtualhosts, il faut activer la ligne suivante:
Include conf/extra/httpd-vhosts.conf
Pour charger la configuration php, il faut ajouter la ligne suivante:
Include conf/extra/mod_php.conf
Dans le fichier httpd-vhosts.conf, j’ai laissé uniquement les choses suivantes:
NameVirtualHost *:80 Include conf/vhosts/*.conf
Nous pouvons maintenant créer le dossier vhosts dans le dossier conf d’apache pour y mettre nos fichiers domaines
cd /opt/local/apache2/conf sudo mkdir vhosts cd vhosts
Dans mon cas, j’ai choisi de mettre tous les fichiers des divers virtualhosts dans le dossier /www/vitualhosts/ à la racine de mon disque:
cd / sudo mkdir -p /www/virtualhosts chmod -R 777 /www
J’ai ensuite réaliser le virtualhost « default »:
cd /www/virtualhosts mkdir default chmod 777 default cd /opt/local/apache2/conf/vhosts touch default.conf
Voici le contenu de mon virtualhost « default »
<VirtualHost *:80>
ServerName macbookpro.local
DocumentRoot /www/virtualhosts/default
DirectoryIndex index.php
<Directory "/www/virtualhosts/default">
AllowOverride All
Allow from All
</Directory>
</VirtualHost>
Remarque: macbookpro.local est le nom défini dans les préférences réseau
J’utilise ce domaine « default » par exemple, pour y mettre mon phpmyadmin.
Vous êtes maintenant prêt pour réaliser vos propres virtualhosts. Tous vos configurations localisées dans le dossier vhosts seront chargées au prochain redémarrage d’apache.
7. Optionnel
Modules additionnels pour php:
sudo port install php5-apc sudo port install php5-xdebug
Dans mon domaine d’activités professionnelles, j’utilise également un client yaz qui est lui aussi interfaçable avec php:
sudo port install php5-yaz
Voilà. Mon installation est terminée. N’hésitez pas à me poser des questions avec le formulaire ci-dessous.
sfZ3950Plugin: Une nouvelle manière de se connecter
22/05/09
Je viens de terminer la première version beta d’un nouveau plugin permettant la connexion à un serveur Z39.50. Ce protocole est surtout utilisé dans le domaine des bibliothèques pour rechercher des données bibliographiques. Le language d’interrogation est assez barbare. Un exemple de requête native:
@and @attr 1=1003 totok @attr 1=4 Handbuch
En utilisant ce plugin, la construction d’une requête sera facilitée. Il suffit pour cela de définir les index du serveur que l’on veut questionner. Exemple du fichier z3950.yml stocké dans le dossier config:
prod:
connection_name:
indexes:
ti: 1=4
au: 1=1003
aw: 1=1035
Il faut également définir la connexion dans le fichier databases.yml de la manière suivante:
all:
connection_name:
class: sfZ3950Database
param:
dsn: yaz://user:pass@url:port/dbname
options:
protocol: 2
group: test
cookie: cookie_name
proxy: proxy_name
persistent: false
piggyback: true
charset: UTF-8
preferredMessageSize: 10240
maximumRecordSize: 10240
Les options de la connexion ci-dessus ne sont pas obligatoires. Elles permettent d’affiner les réglages.
Maintenant, il vous suffit de définir une requête. Il se présente comme une requête SQL à la différence que dans la zone ‘from’, on insère le nom de la connexion:
$this->results = sfZ3950_Query::create()
->from('connection_name')
->where('au="totok" and ti="Handbuch"')
->orderBy('au ASC')
->execute();
Pour pouvoir utiliser ce plugin, vous devez au préalable avoir installé le client YAZ et le module PHP YAZ.
Vous pouvez trouver le plugin ici.
Vos retours seront le bienvenu pour améliorer encore ce plugin.
Bonne découverte.
Installation du module yaz pour php
17/01/09
Petite explication pour commencer. Yaz-client permet d’effectuer des connections avec le protocole Z39.50. Celui-ci est utilisé principalement sur des systèmes de bibliothèques. Vous trouvez plus d’informations sur les liens suivants:
Nous allons maintenant télécharger les sources du client yaz sur le site d’intexdata.
L’archive est disponible à l’adresse suivante: http://www.indexdata.dk/yaz/. Il vous suffit ensuite de la décompresser et de l’installer:
./configure make make install
Comme nous n’avons pas indiqué de path sur le configure, le client yaz sera installé dans /usr/local/bin.
Continuons par l’installation du module php:
sudo pecl install -f yaz-1.0.14
Lors de mon installation, j’ai rencontré un problème avec l’autodetect. J’ai donc indiqué le chemin sur le client. Pour cela j’ai utilisé l’option 1 lors de la compilation.
Path: /usr/local/bin
Pour activer l’extension ci-dessus, il suffit insérer cette nouvelle ligne dans votre fichier php.ini
extension=yaz.so
Il vous suffit de relancer apache pour avoir les commandes yaz disponibles dans php. Si l’installation c’est bien passée, vous devriez vous ceci dans notre phpinfo:

La documentation des commandes YAZ est disponible sur le site de php.net.
Un plugin pour symfony est en préparation.
Bonne découverte
Doctrine 1.0 publié
2/09/08
On l’attendais depuis quelques temps, l’ORM doctrine a été publié en version 1.0 finale le 1 septembre 2008.
Son intégration officielle dans symfony est prévue pour le mois d’octobre 2008. Cela va être également la publication de l’excellent framework en version 1.2.
Un exemple de requête DQL:
$user = Doctrine_Query::create()
->from('User u')
->leftJoin('u.Email e')
->leftJoin('u.Phonenumber p')
->leftJoin('u.Group g')
->execute();
Récupération des valeurs:
print $user->Email['address']; print $user->Phonenumber[0]->phonenumber; print $user->Group[0]->name;
