PHP & PostgreSQL

Message 1, par Elzen

§ Posté le 29/12/2012 à 0h 41m 15

Comme je l'ai dit, j'ai donc choisi PHP comme langage de CGI. Il se trouve (et mes chers confrères du Topic des Codeurs se feront une joie de vous l'expliquer en long, en large et en travers au moindre semblant de vague début d'occasion de le faire) que PHP est un langage présentant un certain nombre de défauts, mais il n'empêche que, personnellement, il ne me déplaît pas, et que pour ce que j'avais à faire, ça me convenait très bien.

En plus, j'aime bien les éléphants, alors ça me plaisait que mon site utilise à la fois PHP et PostgreSQL, les deux ayant un éléphant comme mascotte. C'est même un peu pour ça que je vous parle des deux en même temps ; mais c'est surtout parce que je n'ai pas grand chose à dire pour les deux, donc autant grouper.


Pour PHP, une fois les paquets adéquats (php5-cgi pour le serveur, php5-cli pour l'utiliser en ligne de commande, et php-pgsql pour l'accès à la base) installés et le serveur Web configuré, il ne restait qu'à ouvrir le fichier /etc/php5/cgi/php.ini pour y indiquer l'emplacement des bibliothèques que j'ai développé pour gérer le site.

Ça, ça se fait avec la directive « include_path ». Il suffit de rechercher ça dans le fichier et de l'ajouter sous les commentaires correspondants. Le reste du fichier, en tout cas dans la version Debian par défaut, a l'air à première vue assez bien configuré, je ne l'ai pas modifié.


En même temps, il faut dire que mon site n'utilise pas beaucoup PHP. Ça sert pour la prévisualisation et l'envoi des réponses et pour la page d'erreur, mais pour le reste, vous affichez essentiellement des pages qui ont été pré-générées.



Pour PostgreSQL, mon choix sera probablement moins discuté. Le SGBD (« Système de Gestion de Bases de Données ») MySQL est beaucoup plus utilisé par les particuliers, mais PG est généralement reconnu comme étant plus « costaud » et plus avancé. En plus, je n'en ai pas besoin pour le moment, mais il supporte les requêtes floues, et ça, c'est la classe ultime.


Pour la configuration de PG, la documentation Ubuntu-fr est très bien (et pas que pour ça, d'ailleurs). En ce qui me concerne et pour mon blog, j'ai simplement eu à créer l'utilisateur et la base adaptés :

CREATE USER <utilisateur>;
CREATE DATABASE <base> OWNER <utilisateur>;
ALTER USER <utilisateur> WITH ENCRYPTED PASSWORD '<mot de passe>';
\q

Le tout lancé depuis l'invite de commande obtenue par « sudo -u postgres psql », et le tour est joué, mon script PHP d'initialisation de la base se charge du reste.


Notez que le fichier « /var/lib/postgresql/.psql_history » contient l'historique des commandes, et donc, si vous avez suivi la méthode ci-dessus, le mot de passe en clair, ce qui n'est pas forcément une bonne idée. Ce fichier n'est théoriquement lisible que par son propriétaire (l'utilisateur spécial « postgres »), mais tout de même, ça peut être intéressant de nettoyer un peu ça.

(Suite au décès inopiné de mon précédent serveur, je profite de mettre en place une nouvelle machine pour essayer de refaire un outil de blog digne de ce nom. J'en profiterai d'ailleurs aussi pour repasser un peu sur certains articles, qui commencent à être particulièrement datés. En attendant, le système de commentaires de ce blog n'est plus fonctionnel, et a donc été désactivé. Désolé ! Vous pouvez néanmoins me contacter si besoin par mail (« mon login at ma machine, comme les gens normaux »), ou d'ailleurs par n'importe quel autre moyen. En espérant remettre les choses en place assez vite, tout plein de datalove sur vous !)