Serveur Apache / Payline

Je vais essayer de maintenir ce document, pour avoir un suivi du développement.

Apache

Pour le developpement, on n'a pas de DNS. Donc on utilise des virtual host sur les port 81, 82, 83 ... pour chaque site.

Version

1.3.26

Optimisation

Certains modules ont été mis en commentaire :

Payline

La solution Payline est assez contraignante par rapport à Payline ou CA qui ne requierent que l'installation d'un cgi-bin.

Serveur JAVA : PLCO

Il s'agit d'un simple jar qu'on lance au demarrage. Il faut evidemment une JVM. On utilise la JRE 1.4.1 de SUN pour laquelle il existe un RPM. Foctionne en dev, a verifier en exploit.

Note : La version 1.4.0 comporte des bugs. Il existe une JRE d'IBM qui serait plus rapide ? (Je l'ai sur un CD, mais impossible de le trouver sur le site d'IBM !!!)

On a un repertoire specifique : /var/www/html/xxx_PLCO dans lequel se trouvent, entre autre, le serveur PLCO.jar et le script startPLCO.sh utilisé pour lancer le serveur. Ce script doit être lancé au demarrage de la machine !!!! Ce repertoire contient des sous repertoires indispensables au fonctionnement de la solution. Le compte qui lance le serveur doit avoir des droits en ecriture dans ces repertoires !

tests

Lors des tests, l'utilisation d'une machine dont l'adresse IP visible de l'extérieur change pose problème. En effet, Payline vérifie l'IP de la machine appelante !!

Compte utilisateur pour PLCO

Le compte utilisé pour lancer PLCO est apache:apache. Toute l'arborescence à partir du répertoire de PLCO appartient à apache. Pour le lancer il suffit de faire : su apache -c 'sh startPLCO.sh' (A confirmer !)

Cela permet de ne pas utiliser root pour lancer PLCO. (note : l'utilisation de root n'est génante que pour la sécuité, elle n'empeche pas le programme de fonctionner ni les script PHP de lire et supprimer les fichiers de session PLCO créés par root !) L'utilisation d'un utilisateur particulier ou de nobody:nogroup permet à PLCO de fonctionner, mais le PHP ne peut même plus lire les fichiers !

cgi-bin : plpass

Il faut compiler un cgi-bin et le rendre accessible de l'exterieur sur le port 80 ! Quelques mises au point sont necessaires :

PHP

Version

4.2.3 ?

Droits

Les scripts PHP doivent lire et supprimer des fichiers (écris par le composant JAVA PLCO.) Au cours des tests, il est apparu que PHP peut lire et supprimer des fichiers appartenant à root ou apache dans toute l'arborescence à partir de /var/www/html. En revanche PHP ne peut pas lire de fichiers appartenant à d'autres utilisateurs. On n'a pas encore d'explications claire sur ces points !!

Cache

Il existe plusieurs solutions dont deux gratuites : APC (Alternative PHP Cache) et PHP Accelerator. Les deux ont été testées avec succès. Elles sont simple à installer. Plusieurs sources (notamment ID.fr) indiquent que PHPA est plus efficace, c'est donc la solution qui a été retenue. Théoriquement, il faudrait faire les tests de performance sur le serveur d'exploitation.

PHP-accelerator

Il n'existe pas de RPM, mais l'installation consiste juste à copier un fichier .so dans /usr/lib/php/extensions (ce repertoire est plus approprié que /usr/local/lib qui est indiqué dans la doc.) et ajouter quelques lignes dans /etc/php.ini. On utilise la version 1.3.3r1 qui convient pour du PHP entre 4.2.1 et 4.3.0pre2.

Le repertoire créé à l'install contient toutes les explications ainsi qu'un utilitaire en ligne de commande qui permet de connaitre l'espace memoire utilisé : "phpa_cache_admin -mv". On peut ainsi ajuster la taille mémoire réservé (8Mo par défaut.)

APC

Il existe un RPM Mandrake pour APC (php-apc-4.2.3-0.20020722.2mdk). Apc-gui (apc-gui-1.0.3-2mdk) permet de consulter et administrer la solution de cache, mais il semble qu'elle ne soit plus assez maintenue et sera abandonnée.

Historique


B. Vernay 27/06/2002 28/11/2002 Valid XHTML 1.1!W3C-Amaya