Keyword - tutoriel

Fil des billets - Fil des commentaires

vendredi 20 octobre 2006

Installer Ubuntu Edgy RC1 sur un Compaq Presario C300ea

Ma dulicinée s'étant offert cet après-midi un nouvel ordinateur portable, un Compaq Presario C300ea, je me suis empressé de lui installer Ubuntu Edgy RC1 dessus en multiboot, comme ça, pour rire.

Bon, ça n'a pas été facile, ce matos est truffé de périphériques un poil tatillons à installer (la sortie de lspci est en annexe de ce billet.)

Mapping du Clavier et absence cruelle d'AltGr

À l'heure où ces lignes sont écrites la gestion du clavier semble problématique sous Edgy (qui rappellons-le n'est pas encore en version finale) aussi on perd la gestion de la touche Alt-Gr, ma foi pourtant fort utile pour taper certains caractères comme l'arrobase, les crochets, le pipe (gasp) ou les backslashes... Sous Windows la touche fonctionne, donc je subodore un problème au niveau de Xorg et/ou de XBM.

La seule solution que j'ai trouvée temporairement est de mapper la touche <AltGr> déficiente vers la touche <Menu>, au moyen de l'utilitaire de configuration du clavier sis dans Système > Préférences > Clavier et dans l'onglet Options de l'agencement, section Sélecteur de 3ème niveau où il faudra cocher l'option Menu est sélecteur de 3ème niveau (Ouf !)

Edit: Finalement, le problème peut être résolu comme ceci :

$ xprop -root -f _XKB_RULES_NAMES 8s -set _XKB_RULES_NAMES xorg
$ setxkbmap -model pc105 -layout fr -variant latin9

Installation du driver WIFI pour le chipset bdc4311

Tout d'abord, mauvaise surprise et sur le liveCD et après installation, seule l'interface Ethernet est reconnue nativement. Pour le wifi, l'ignoble chipset bcm4311 va nous obliger à utiliser une version récente de ndiswrapper afin d'utiliser les drivers proprios disponibles pour Windows. Il faudra donc utiliser l'interface ethernet pour procéder à cette partie de l'installation.

On installe tout d'abord ndiswrapper et quelques utilitaires :

$ sudo apt-get install build-essential
$ wget -c http://ovh.dl.sourceforge.net/sourceforge/ndiswrapper/ndiswrapper-1.26.tar.gz
$ tar xvzf ndiswrapper-1.26.tar.gz
$ cd ndiswrapper-1.26 && make distclean && make
$ sudo make install

On télécharge ensuite le driver Windows (vous pouvez placer une pince à linge sur votre nez) :

$ wget -c http://ftp.us.dell.com/network/R115321.EXE

On dézippe la chose avec unzip :

$ mkdir R115321 && mv R115321.EXE R115321/ && cd R115321 && unzip R115321.EXE

Et on installe le driver :

$ sudo ndiswrapper -i DRIVER/bcmwl5.inf

On vérifie que l'installation s'est bien déroulée :

$ ndiswrapper -l

Vous devriez voir cette ligne :

bcmwl5          driver installed, hardware (14E4:4324) present (alternate driver: bcm43xx)

On blackliste les autres versions potentiellement en conflit en ajoutant cette ligne dans le fichier /etc/modprobe.d/blacklist :

blacklist bcm43xx

Maintenant, on vérifie que tout est prêt pour le chargement du module :

$ sudo depmod -a

Si aucune erreur n'apparait, c'est bon et vous devriez pourvoir sans problème charger le driver :

$ sudo modprobe ndiswrapper

Si tout s'est bien passé, un dmesg | grep ndiswrapper devrait vous retourner ces deux lignes :

[17188030.468000] ndiswrapper version 1.26 loaded (preempt=no,smp=yes)
[17188030.472000] usbcore: registered new driver ndiswrapper

Vous pourrez classiquement utiliser network-admin pour achever la configuration du réseau WIFI (WEP, ESSID, etc. - attention petite subtilité, ndiswrapper va mapper l'interface wlan0 sur laquelle nous travaillions vers eth1.)

Par la suite et si tout fonctionne très bien comme ça, vous pouvez demander le chargement automatique du module au boot :

$ sudo ndiswrapper -m

Enfin, vous pouvez jouer avec le petit bouton/voyant bleu pour activer ou desactiver l'interface :)

Installation de la carte graphique Intel à mémoire partagée

On va utiliser 915resolution, un outil qui vous permettra de modifier les données du BIOS du chipset de façon volatile et dynamique (donc sans danger pour votre matériel) :

$ sudo apt-get install 915resolution

On liste d'abord les modes disponibles :

$ sudo ./915resolution -l

Le mode 1280x800 correspondant à l'écran LCD n'est pas listé... Pas de panique, il suffit d'en demander la création en utilisant une ID disponible (genre 3b, 3c, 3d, ou 4d, 5e, etc.)

$ sudo ./915resolution 3d 1280 800 32

On configure Xorg afin de prendre en charge la résolution native de 1280x800 de l'écran, en éditant le fichier /etc/X11/xorg.conf et en spécifiant le driver i810 :

Section "Device"
        Identifier      "Carte vidéo générique"
        Driver          "i810"
        BusID           "PCI:0:2:0"
EndSection

On ajoute le mode "1280x800" aux modes disponibles :

Section "Screen"
        Identifier      "Default Screen" 
        Device          "Carte vidéo générique"
        Monitor         "Generic Monitor"
        DefaultDepth    24
        SubSection "Display"
                Depth           24
                Modes           "1280x800" "1024x768" "800x600" "640x480"
        EndSubSection
EndSection

Et on reboote X avec un majestueux <Ctrl> + <Alt> + <Backspace>. C'est mieux comme ça, non ?

ACPI

L'ACPI fonctionne nativement sans aucune configuration supplémentaire.

Conclusion

À part la falacieuse manip concernant le mapping du clavier et quelques petits problèmes vraiment anodins, on a une machine tout à fait opérationnelle et ma foi très agréable à utiliser - et pas chère en plus ! Enjoy :)

Annexe

Le résultat de la commande lspci :

00:00.0 Host bridge: Intel Corporation Mobile 945GM/PM/GMS/940GML and 945GT Express Memory Controller Hub (rev 03)
00:02.0 VGA compatible controller: Intel Corporation Mobile 945GM/GMS/940GML Express Integrated Graphics Controller (rev 03)
00:02.1 Display controller: Intel Corporation Mobile 945GM/GMS/940GML Express Integrated Graphics Controller (rev 03)
00:1b.0 Audio device: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller (rev 01)
00:1c.0 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 1 (rev 01)
00:1c.1 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 2 (rev 01)
00:1c.2 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 3 (rev 01)
00:1d.0 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #1 (rev 01)
00:1d.1 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #2 (rev 01)
00:1d.2 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #3 (rev 01)
00:1d.3 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #4 (rev 01)
00:1d.7 USB Controller: Intel Corporation 82801G (ICH7 Family) USB2 EHCI Controller (rev 01)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev e1)
00:1f.0 ISA bridge: Intel Corporation 82801GBM (ICH7-M) LPC Interface Bridge (rev 01)
00:1f.1 IDE interface: Intel Corporation 82801G (ICH7 Family) IDE Controller (rev 01)
00:1f.2 SATA controller: Intel Corporation 82801GBM/GHM (ICH7 Family) Serial ATA Storage Controller AHCI (rev 01)
00:1f.3 SMBus: Intel Corporation 82801G (ICH7 Family) SMBus Controller (rev 01)
06:00.0 Network controller: Broadcom Corporation Unknown device 4311 (rev 01)
08:08.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)

lundi 9 octobre 2006

Un dépôt de code partagé avec Snipeet et Symfony

Vous cherchez un moyen simple et participatif de partager des fragments ou exemples de code (en anglais, des snippets) ? Rien de plus simple avec Snipeet, un outil dédié basé sur le framework Symfony dont l'installation a déjà été décrite sur le présent blog.

Pour installer Snipeet sur une machine propulsée par - au hasard total - Ubuntu LTS, rien de plus simple :

$ sudo -s 
# cd /var/www
# mkdir snipeet && cd snipeet
# svn co http://svn.snippet.symfony-project.com/trunk/ .
# chown -R www-data cache log

On crée une base et un utilisateur MySQL dédié à l'application :

$ mysql -uroot -p
mysql> CREATE DATABASE snipeet;
mysql> GRANT ALL ON snipeet.* TO snipeet@localhost IDENTIFIED BY 'votre_mot_de_passe';
mysql> FLUSH PRIVILEGES;
mysql> \q

On défini les paramètres d'accès SQL dans les fichiers ./config/propel.ini et ./config/database.yml en définissant le DSN ad-hoc, par exemple mysql://snipeet:votre_mot_de_passe@localhost/snipeet.

On lance les commandes de création et d'insertion SQL :

# symfony propel-build-sql
# symfony propel-insert-sql

Enfin, on crée un vhost apache dédié, sur un sous-domaine snipeet.domaine.tld par exemple dans un fichier /etc/apache2/sites-available/snipeet.domaine.tld :

<Directory "/usr/share/php/data/symfony/web/sf">
  AllowOverride All
  Allow from All 
</Directory>

<VirtualHost *>
    ServerName snipeet.domaine.tld
    DocumentRoot "/var/www/snipeet/web"
    DirectoryIndex index.php
    Alias /sf /usr/share/php/data/symfony/web/sf

    <Directory "/var/www/snipeet/web">
        AllowOverride All
        Allow from All
    </Directory>
</VirtualHost>

Sans oublier de l'activer :

# a2ensite snipeet.domaine.tld

Puis de relancer proprement apache2 :

# apache2ctl graceful

Et on fait pointer son navigateur à l'adresse paramétrée précedemment tout en savourant le résultat et surtout le fait qu'il nous a fallu moins de 5 minutes montre en main pour en arriver là :)

Edit: Tellement content que j'en oublie l'adresse de la démo : snippets.prendreuncafe.com :)

mardi 5 septembre 2006

Installer et configurer Apache2, Trac et Subversion sur Ubuntu

J'avais besoin d'un outil simple et complet pour gérer mes projets de développement hébergés sur ma nouvelle Dédibouate flambant neuve et fraîchement équipée d'une distribution linux Ubuntu Dapper Drake LTS. Naturellement, Trac et son copain Subversion se sont imposés comme une évidence, d'autant que je les utilisent déjà au quotidien dans mon travail.

Je me mis alors en quête d'informations sur la procédure d'installation de ces outils sur Ubuntu avec mon copain Google. Je suis tombé sur moult liens interessants mais pas toujours tout à fait complets ni exhaustifs ; aussi je décidai humblement de rédiger le présent billet faisant la synthèse de la procédure que j'ai utilisée et qui marche chez moi [1] :)

Prérequis

Avant toute chose, il est bien entendu impératif de disposer d'une distribution Ubuntu 6.06 LTS Dapper Drake et d'un accès root sur la machine.

Installation

Tout d'abord, activez les dépôts universe d'Ubuntu. Ceci fait, voici la liste des paquets à installer :

$ sudo apt-get update
$ sudo apt-get install subversion libapache2-svn libapache2-mod-python2.4 trac

La version de Trac fournie par les dépôts Ubuntu est la 0.9.3 [2]. On crée le répertoire système pour les instances de Trac, par exemple dans /var/trac [3] sans oublier le de rendre accessible en écriture par apache:

$ sudo mkdir /var/trac
$ sudo chown www-data:www-data /var/trac

Création d'une instance Trac pour votre projet

Il nous faut maintenant importer un projet dans Subversion. Pour l'exemple, nous créerons un projet nommé monzouliprojet. Pour cela, rien de plus simple... sauf pour les feignants. En étant moi-même un des plus féroces, j'ai pensé à mes compatriotes et leur ai créé un script qui leur permettra d'importer automatiquement leurs projets dans Subversion et de les rendre ainsi facilement accessibles à l'instance de Trac que nous créerons par la suite. Vous trouverez le code ici (certainement très perfectible, contributions bienvenues.)

Vous pouvez sauvegarder ce script dans un fichier create_svn_repo.sh par exemple, sans oublier de le rendre executable :

$ chmod +x create_svn_repo.sh

Il faudra bien sûr le lancer au moyen de sudo afin d'avoir les droits d'écritures dans les répertoires système concernés. Pour importer un nouveau projet Subversion à partir de vos sources existantes, il suffit de lancer le script et de répondre aux questions posées :

niko@nikobox:~$ sudo create_svn_repo.sh  
#######################################
Création d'un nouveau projet Subversion
#######################################

Tapez le nom du nouveau projet :
monzouliprojet
Tapez maintenant le chemin du répertoire source :
(Note: les répertoires trunk, branches et tags seront créés automatiquement)
/home/niko/monzouliprojet/
Création du projet monzouliprojet depuis /home/niko/monzouliprojet/...
Adding         /tmp/svn/monzouliprojet/trunk
Adding         /tmp/svn/monzouliprojet/trunk/test
Adding         /tmp/svn/monzouliprojet/trunk/test/main
...

Committed revision 1.

Projet subversion monzouliprojet créé avec succès !

Note : Vous pouvez éditer le fichier du script pour y spécifier notament le chemin de la racine subversion [4] :

SVN_ROOT="/var/svn"

Ensuite, il faut initialiser l'environnement trac pour notre projet recemment importé dans Subversion, ce que l'on fait au moyen de la série de commande suivante [5] :

sudo mkdir /var/trac
sudo trac-admin /var/trac/monzouliprojet initenv
sudo chown -R www-data /var/trac/monzouliprojet

Notez encore une fois que je crée la racine trac dans /var/trac mais vous pouvez tout à fait utiliser un autre emplacement.

Créer un ou plusieurs utilisateurs Trac et Subversion, gérer les autorisations

Par défaut, une instance Trac permet à tous les visiteurs anonymes d'en modifier les contenus ; bien évidemment, c'est un comportement de l'application particulièrement risqué, ne serait-ce qu'en regard du spam potentiel que vous pourriez récolter. Nous allons donc successivement créer un utilisateur subversion, puis désactiver les contributions anonymes pour Trac et ajouter un utilisateur possédant les droits d'administration Trac. Notez que nous utiliserons le même fichier de stockage des noms d'utilisateurs et de mots de passe pour Trac et Subversion ; ce fichier sera appelé au niveau de notre fichier de configuration Apache - défini un peu plus bas dans ce tutoriel.

Créons tout d'abord le fichier de stockage des mots de passe Trac/Subversion [6] et ajoutons un utilisateur maintener :

$ sudo htpasswd2 -c /etc/apache2/dav_svn.passwd maintener

Attribuez-lui un mot de passe. Bien, cet utilisateur aura par la suite officiellement accès à notre dépôt Subversion. Donnons-lui maintenant les droits d'administration totale de Trac :

$ sudo trac-admin /var/trac/monzouliprojet permission add maintener TRAC_ADMIN

On peut également imaginer la création d'un compte utilisateur développeur, qui peut créer des tickets, en fermer et maintenir le wiki :

$ sudo htpasswd2 -c /etc/apache2/dav_svn.passwd dev
$ sudo trac-admin /var/trac/monzouliprojet permission add dev WIKI_CREATE WIKI_MODIFY TICKET_CREATE TICKET_MODIFY

Il nous reste à desactiver les contributions anonymes :

$ sudo trac-admin /var/trac/monzouliprojet permission remove anonymous WIKI_CREATE WIKI_MODIFY TICKET_CREATE TICKET_MODIFY

Par la suite, vous pourrez effectuer la plupart de ces opérations par le biais du plugin WebAdmin dont nous détaillerons l'installation dans la partie suivante.

Vous trouverez plus d'informations sur les privilèges de Trac sur la page qui lui est consacrée.

Côté Subversion, il nous faut autoriser les checkouts anonymes mais s'assurer que'un utilisateur est authentifié avant d'accepter ses commits. Cela se configure très facilement dans le fichier /var/svn/monzouliprojet/conf/svnserve.conf, dans lequel vous pouvez saisir :

[general]
anon-access = read
auth-access = write
password-db = passwd 
# authz-db = authz
realm = MonZouliProjet Subversion Repository

Installer Trac WebAdmin

Trac WebAdmin est une interface web d'administration de votre ou vos instance(s) Trac offrant un confort appréciable pour administrer vos projets et en gérer les paramètres. Même si nous n'avons pas encore défini de vhost apache, rien ne nous empêche d'installer le plugin, qui passe d'abord par l'installation des setuptools :

$ wget http://peak.telecommunity.com/dist/ez_setup.py
$ sudo python ez_setup.py

Ceci fait, téléchargez le fichier de plugin TracWebAdmin sur le site de Trac, supprimez son extension .zip et installez-le au moyen du programme easy_install précédemment installé, comme suit :

$ wget http://trac.edgewall.org/attachment/wiki/WebAdmin/TracWebAdmin-0.1.1dev_r2765-py2.4.egg.zip?format=raw
$ mv TracWebAdmin-0.1.1dev_r2765-py2.4.egg.zip\?format\=raw TracWebAdmin.egg
$ sudo easy_install TracWebAdmin.egg

Éditez votre fichier de configuration d'instance Trac :

$ sudo vi /var/trac/monzouliprojet/conf/trac.ini

Et ajoutez-y la section suivante (si elle n'existe pas) :

[components]
webadmin.* = enabled

Enregistrez le fichier et quittez.

Créer un hôte virtuel Apache

Nous devons rendre accessible par le web notre instance de Trac ainsi que le dépôt Subversion associé, par le biais d'un hôte virtuel apache dédié :

$ sudo vi /etc/apache2/sites-available/trac.mondomaine.org

On y écrit les paramètres de notre hôte dédié, en admettant que nous disposons du domaine mondomaine.org nanti d'un sous-domaine trac :

<VirtualHost *>
    ServerAdmin webmaster@mondomaine.org
    ServerName trac.mondomaine.org
    
    DocumentRoot /var/trac/monzouliprojet
    <Location />
        SetHandler mod_python
        PythonHandler trac.web.modpython_frontend
        PythonOption TracEnv /var/trac/monzouliprojet
        PythonOption TracUriRoot /
        PythonPath "sys.path + ['/var/trac/monzouliprojet']"
    </Location>

    ErrorLog  /var/log/apache2/error.trac.domaine.org.log
    CustomLog /var/log/apache2/access.trac.domaine.org.log combined
    
    <Location /svn>
        DAV svn
        SVNPath /var/svn/monzouliprojet
        AuthType Basic
        AuthName "Monzouliprojet Subversion repository"
        AuthUserFile /etc/apache2/dav_svn.passwd
        <LimitExcept GET PROPFIND OPTIONS REPORT> 
            Require valid-user
        </LimitExcept>
    </Location>
    
    <Location "/login">
        AuthType Basic
        AuthName "Trac login"
        AuthUserFile /etc/apache2/dav_svn.passwd
        Require valid-user
    </Location>

</VirtualHost>

Vous devrez bien entendu enregistrer le domaine et le sous domaine dans votre fichier de configuration DNS, voire simplement dans votre fichier /etc/hosts si vous disposez d'un service de gestion DNS décentralisé comme celui que propose la société Gandi. Par exemple :

## Fichier /etc/hosts
127.0.0.1         localhost localhost.localdomain mamachine
123.124.125.126   trac.mondomaine.org

Nous utilisons mod_python (précédemment installé), n'oublions pas de l'activer :

$ sudo a2enmod mod_python

Ceci fait, il nous reste à activer le nouvel hôte apache et à relancer ce dernier :

$ sudo a2ensite trac.mondomaine.org
$ sudo /etc/init.d/apache2 restart

Pour vérifier que tout s'est déroulé correctement, faites pointer votre navigateur préféré vers l'adresse trac.mondomaine.org, vous devriez accéder sans encombres à votre instance nouvellement créée. Vous pouvez vous logguer en cliquant sur le lien Login [7] et en fournissant les paramètres d'accès utilisateur que vous avez définis précédemment. Si vous vous logguez en administrateur Trac, vous devriez disposer du menu Admin donnant accès à l'extension WebAdmin où vous pourrez ajuster les paramètres de votre instance aux petits oignons.

Côté subversion, vous pouvez effectuer un checkout de votre projet de cette façon :

$ svn co http://trac.mondomaine.org/svn/trunk/ .

Un commit nécessitera cependant l'authentification ; vous pourrez forcer le nom d'utilisateur à utiliser :

$ svn commit -m "test de commit" main/test/toto.txt --username mainteneur

Sources et références

Notes

[1] Y'a sans doûte mieux, plus simple, plus rapide, plus puissant, blah blah blah... le formulaire d'ajout de commentaire vous attend avec fébrilité.

[2] Ceux qui lorgnent sur la version 0.10 devront l'installer à la main. That's life.

[3] Pensez à remplacer ce chemin par celui que vous préférez dans le reste des exemples de ce tutoriel ;)

[4] Notez que si ce répertoire n'existe pas, le script tentera de le créer pour vous.

[5] Notez également que mon script vous proposera de lancer le script adéquat une fois le projet subversion correctement créé.

[6] Vous pouvez stocker ce fichier sensible où bon vous semble mais par pitié, pas derrière votre racine web et de préférence le rendre accessible en écriture par le seul utilisateur root.

[7] Wow !

mardi 20 juin 2006

Installer le framework PHP Symfony sur Ubuntu Dapper Drake

A l'instar de RoR, Symfony est basé sur le motif de conception MVC et utilise une couche d'abstraction d'accès aux données et d'implémentation AJAX. Il est développé en PHP5 par une équipe française, cocorico !

Voyons ensemble comment installer la bête sur une Ubuntu Dapper Drake toute fraîche.

Installation de Symfony

Le meilleur moyen d'installer Symfony mais surtout de le maintenir à jour est d'utiliser le canal PEAR [1] propre au projet. Mais avant tout, vérifions que nous disposons d'un environnement de développement ad-hoc :

$ sudo apt-get install php5 php5-cli php5-mysql php-pear

Le gestionnaire de paquets apt se chargera d'installer les dépendances nécessaires, notamment apache2.

L'installation du canal Symfony nécessite que nous octroyions 16Mo de mémoire vive à PHP. On édite donc le fichier /etc/php5/cli/php.ini et on affecte la nouvelle valeur :

memory_limit = 16M

Bien. Maintenant, installons Symfony et Phing [2] via PEAR :

$ sudo pear upgrade PEAR && sudo pear channel-discover pear.symfony-project.com
$ sudo pear install symfony/symfony
$ sudo pear install --alldeps http://phing.info/pear/phing-current.tgz

OK, ceci fait, on crée un nouveau projet Symfony, que nous baptiserons sobrement monprojet, disposant d'une application monapplication et que nous stockerons sous le docroot /var/www/monprojet :

$ sudo -s
# mkdir /var/www/monprojet
# cd /var/www/monprojet
# symfony init-project monprojet
# symfony init-app monapplication

Voila, notre arborescence Symfony vient d'être créée, on peut commencer à développer ! Non ? Mince, on a oublié de configurer Apache2 ;)

Configuration d'Apache 2

Tout d'abord, activez mod_rewrite :

$ sudo a2enmod rewrite

Ensuite, nous allons créer rapidement un vhost apache, qui pointera benoitement vers dev.monprojet.com (redirigé vers notre hôte local.) Pour cela, éditez votre fichier /etc/hosts et sur la ligne comprenant l'adresse IP 127.0.0.1, ajoutez dev.monprojet.com :

127.0.0.1    localhost localhost.localdomain mamachine dev.monprojet.com

On crée maintenant l'hôte virtuel Apache /etc/apache2/sites-available/dev.monprojet.com dont voici le contenu :

<Directory "/usr/share/php/data/symfony/web/sf">
    AllowOverride All
    Allow from All
</Directory>

<VirtualHost *>
    ServerName dev.monprojet.com
    DocumentRoot "/var/www/monprojet/web"
    DirectoryIndex index.php
    Alias /sf /usr/share/php/data/symfony/web/sf
    
    <Directory "/var/www/monprojet/web">
        AllowOverride All
        Allow from All
    </Directory>
</VirtualHost>

On active l'hôte virtuel nouvellement créé :

$ sudo a2ensite dev.monprojet.com

... et on relance apache :

$ sudo apache2ctl restart

Une dernière petite chose, il faut desactiver les magic_quotes de PHP, dans le fichier /etc/php5/apache2/php.ini :

magic_quotes_gpc = Off

Lancez votre navigateur sur http://dev.monprojet.com, vous devriez obtenir un message du genre :

If you see this page, it means that the creation of your symfony project on this system was successful.

Plus d'informations

Edit du 25 juin 06: Nouvelle version 0.6.3

La version 0.6.3 est sortie. Pour mettre à jour :

$ sudo pear upgrade symfony/symfony

Edit du 26 juin 06 :

Mon camarade de jeu Xavier Lacot vient de publier sur son blog un excellent tutorial dédié à Symfony.

Notes

[1] PEAR propose un système de distribution d'application tierce très pratique, les canaux. Symfony dispose de son propre canal PEAR, mais n'utilise aucune librairie PEAR. Vous avez le droit d'être embrouillés.

[2] Phing est une dépendance de Symfony, qu'il faut installer indépendamment. Haha, elle est bonne, hein?

dimanche 11 juin 2006

Firefox Windows + Flash Player 8 sous Ubuntu Linux

Pour ceux qui ne digèrent pas de devoir installer Internet Explorer via IEs4linux pour accéder au Flash Player 8, il est possible d'installer Firefox... version Windows grâce à Wine. Pour cela, récupérez l'installeur de Mozilla Firefox Windows 1.5.0.4 et effectuez les opérations suivantes :

$ sudo apt-get install wine
$ wine Firefox\ Setup\ 1.5.0.4.exe

Ceci fait, installez le player Flash 8 :

$ wget http://fpdownload.macromedia.com/get/flashplayer/current/install_flash_player.exe
$ wine install_flash_player.exe

Si l'installeur vous demande de spécifier le répertoire d'installation du plugin pour Firefox, précisez c:\Program files\Mozilla Firefox\plugins.

Lancez votre Firefox pour Windows fraîchement installé (un raccourci a été créé sur votre bureau) , et testez la bête.

lundi 5 juin 2006

Développement PHP4 et PHP5 sur Ubuntu avec XAMPP

Pour ceux qui comme moi passent constamment de projets PHP4 à PHP5, la gestion des environnements de développement par paquets n'est pas toujours aisée - même si cela reste possible aux prix de manipulations récurrentes et parfois compliquées.

XAMPP est un système LAMPP autonome - donc indépendant du système de gestion de paquets - contenant tout ce qu'il faut pour travailler directement dans un environnement de développement comprenant entre autres Apache 2.2.2, MySQL 5.0.21, PHP 5.1.4 & 4.4.2 & PEAR + SQLite 2.8.17/3.2.8, Perl 5.8.7, ProFTPD 1.3.0, phpMyAdmin 2.8.1 et beaucoup d'autres choses encore. Quelques captures d'écran vous convaincront peut-être plus efficacement...

Ainsi vous pouvez disposer d'un environnement de développement isolé, dédié à un projet particulier ou switcher de version PHP très facilement au moyen d'une simple ligne de commande :

$ sudo lampp php4

Ou bien :

$ sudo lampp php5

Pour installer la version 1.5.3 de XAMPP sur votre Ubuntu, voici la démarche à suivre :

$ sudo-s
# cd /opt
# wget http://puzzle.dl.sourceforge.net/sourceforge/xampp/xampp-linux-1.5.3a.tar.gz
# tar xvzf xampp-linux-1.5.3a.tar.gz && rm xampp-linux-1.5.3a.tar.gz
# ln -s lampp/lampp /usr/bin/lampp

Il est sage de configurer MySQL proprement et de façon sûre, après s'être assuré que le service natif ne fonctionne pas [1] :

# /etc/init.d/mysql stop
# /opt/lampp/bin/mysql_secure_installation

Si vous travaillez aussi avec les versions officiellement distribuées par Ubuntu d'apache et de mysql, il peut être utile de disposer de raccourcis permettant de passer de XAMPP aux versions natives et inversement ; personnellement, cela tient dans ces quelques alias bash :

alias startubuntuwebserver='sudo lampp stop && sudo apache2ctl start && /etc/init.d/mysql start'
alias stopubuntuwebserver='sudo apache2ctl stop && /etc/init.d/mysql stop'
alias startxampp4='stopwebserver && sudo lampp php4'
alias startxampp5='stopwebserver && sudo lampp php5'

Ainsi pour lancer XAMPP, par exemple en PHP5 :

$ startxampp5

Et pour relancer les services originaux :

$ startubuntuwebserver

Notez enfin qu'il existe également des commandes avancées pour le démarrage et l'arrêt des services XAMPP.

Notes

[1] Si ce dernier est installé, bien entendu.

lundi 20 mars 2006

Dissocier le code javascript du code HTML avec Behaviour

Dans un de mes précédents billets sur les effets javascript, je vous ai présenté moult exemples mélangeant allègrement syntaxe HTML et code javascript, notamment evênementiel. Programmer de cette façon n'est pas forcément la meilleure dans la mesure où elle rend difficile la séparation de ces deux langages, et donc de la maintenance des applications les utilisant.

Lire la suite...

dimanche 19 mars 2006

Effets javascript avec Prototype et Scriptaculous

On a vu fleurir moult trolls velus à propos du web 2.0 et sa débauche d'AJAX et de javaScript inaccessibles, je ne les nourrirai pas ici. Par contre et pour ceux que ça interesse, les librairies prototype et script.aculo.us proposent des outils et effets très sympathiques. Voici quelques exemples très simples d'utilisation.

Lire la suite...

- page 2 de 4 -