OVH Community, votre nouvel espace communautaire.

Tuto : Installation FastCGI, eAccelerator sur Release 2 Gentoo 32 bits


engineer
29/05/2012, 21h25
sincèrement merci beaucoup Uniterre, ça m'a beaucoup aidé pour m'avancer
j'ai pu enfin installer APC sur la R2

uniterre
29/05/2012, 10h52
Pour installer APC CACHE sur la dernier release 2 :


Code:
/usr/local/php5/bin/pecl channel-update pecl.php.net
Ensuite il faut modifier le fichier : /usr/share/php5/PEAR/Builder.php
comme indiqué ici :
http://bugs.gentoo.org/attachment.cgi?id=253597
Donc rajouter après "// }}} end of interactive part"
if (file_exists('aclocal.m4')) {
$this->_runCommand('rm aclocal.m4');
$this->_runCommand('autoreconf');
}
Pour que gentoo régénère les fichiers nécessaires avec la dernière version en date.

Ensuite lancer :

Code:
/usr/local/php5/bin/pecl install apc

Ensuite dans le php.ini ajouter :
; 29 mai 2012, ajout extension APC
extension=apc.so

Vérifier qu'il se lance avec un phpinfo();

Copier de manière provisoire le fichier depuis
/usr/share/php5/apc.php

vers un répertoire de votre domaine pour regarder le résultat

engineer
29/05/2012, 00h48
impossibe d'installer APC sur la R2, y a t il une solution alternative pour le faire sous cette dist !?

hstv
23/01/2012, 16h44
personne pour m'aider??

hstv
20/01/2012, 23h10
Bonjour pour installer APC au jour d’aujourd’hui sur un gentoo 2 64bits, la commande est bien celle ci avec la dernière version et php 5.3

APC

Sous SSL on tape :


ln -s /usr/local/php53/bin/phpize /bin/phpize
ln -s /usr/local/php53/bin/php-config /bin/php-config
ln -s /usr/local/php53/bin/pear /bin/pear
ln -s /usr/local/php53/bin/pecl /bin/pecl

cd /home
mkdir src
cd src
wget http://pecl.php.net/get/APC-3.1.9.tgz

tar xvzf APC-3.1.9.tgz

cd APC-3.1.9
phpize
./configure && make
make install


Puis dans "/usr/local/lib/php53/php.ini" on ajoute/modifie :


extension_dir = "/usr/local/php53/lib/php/extensions/no-debug-non-zts-20060613/"

extension=apc.so

apc.enabled = 1
apc.rfc1867 = on

merci d'avance

problem
06/09/2011, 10h36
Bonjour,
Merci pour le tuto. Mais je rencontre des problèmes avec l'installation de FastCGI. J'ai suivi toutes les instructions mais cela ne semble pas marcher (phpinfo m'indique toujours API server CGI au lieu de CGI/FastCGI). OVH m'a fourni la version de php 5.2.13 donc je suis parti de ça au lieu de la 5.2.5. Quelqu'un a-t-il déjà rencontré ce problème ?
Merci d'avance.

jvieille
06/04/2011, 08h42
Encore une fois, je pense qu'il vaut mieux s'orienter vers une aitre distribution. La Release 2, c'est vraiment pour ceux qui ne veulent rien toucher.
C'est assez bizarre que cette distribution OVH spéciale pour les nuls se base sur une des bases Linux les plus complexes. Ayant moi-même démarré sur Linux avec la Release 2, j'ai trouvé que tout était beaucoup plus simple lorsque je suis passé sous Debian. En résumé, si vous commencez à bidouiller la Release2, c'est que vous êtes mûr pour passer à autre chose.

pollux007
05/04/2011, 20h51
Bonsoir,
je remonte le sujet car j'essaye d'installer APC 3.1.7 sur mon serveur mais au moment
ou je lance la commande ./configure && make a la fin j'ai ce message d'erreur:

/home/src/APC-3.1.7/libtool: line 467: CDPATH: command not found
/home/src/APC-3.1.7/libtool: line 1152: func_opt_split: command not found
libtool: Version mismatch error. This is libtool 2.2.6b, but the
libtool: definition of this LT_INIT comes from an older release.
libtool: You should recreate aclocal.m4 with macros from libtool 2.2.6b
libtool: and run autoconf again.
make: *** [apc.lo] Erreur 63
Je précise que j''ai un serveur vierge sans modif je viens de le recevoir il y a 1h.
Quelqu’un a t'il une piste?

Pouscaillou
04/01/2011, 21h05
Bonsoir,

pourriez-vous me répondre SVP si quelqu'un sait ? C'est assez urgent.

Merci à vous.

Pouscaillou
03/01/2011, 09h05
Bonjour et meilleurs voeux à tous ,

je relance, en ce qui concerne, au moins, les droits, car c'est assez bloquant.

pourquoi je n'ai plus les droits d'écriture, alors que les dossiers et fichiers sont bien en 777 ou équivalent.

merci,

Pouscaillou
30/12/2010, 07h27
Bonjour,

merci de ta contribution.
J'ai retenté la manipulation et je rencontre encore une fois une erreur différente, mais toujours liée aux droits d'accès. Par contre, j'ai vérifié à l'aide de ta commande les droits sur tmp et ils semblent bien là.
Maintenant je rencontre des erreurs quand je veux utiliser la fonction file_put_contents (et je suppose que le problème est identique à chaque fois que je veux écrire dans un fichier sur le site) j'ai une erreur de permission denied.

Voici l'erreur :

Warning: file_put_contents(/home/site/www/public/_cache/_css/d74b06a041d78bf3e3824675447be25a.css) [function.file-put-contents]: failed to open stream: Permission denied in /home/site/www/library/App/View/Helper/Minify.php on line 39

Merci !

et effectivement avec plusieurs tests, je n'ai plus les droits d'écriture sur le site public avec mon user

mais dans le fichier apc.php

je suis toujours à 1 :

Cached Files 1 (460.6 KBytes)
Hits 1
Misses 1
Request Rate (hits, misses) 2.00 cache requests/second
Hit Rate 1.00 cache requests/second
Miss Rate 1.00 cache requests/second
Insert Rate 1.00 cache requests/second
Cache full count 0

ça n'a pas l'air de fonctionner...

SgtDak
29/12/2010, 17h08
Citation Envoyé par Pouscaillou
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613/php_curl.dll' - /usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613/php_curl.dll: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613/php_mysql.dll' - /usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613/php_mysql.dll: cannot open shared object file: No such file or directory in Unknown on line 0
X-Powered-By: PHP/5.2.13-pl0-gentoo^M
Content-type: text/html^M
Il doit y avoir un problème dans le php.ini... Il essaie de charger des DLL sous une distribution Gentoo, ce qui ne peut pas fonctionner. Les lignes dans le php.ini qui contiennent des dll ne doivent pas être décommentées, ce n'est pas comme ça que les modules sont chargés sur cette distribution, mais via les flags de compilation (cependant, je ne connais pas R2, je ne sais pas si on peut recompiler php avec curl ou s'il le contient par défaut, pour mysql je pense que c'est de toutes façons inutile).

Quant à la dernière question /tmp devrait normalement être en autorisation 1777 sur tous les systèmes. Niveau sécurité, ce n'est pas le meilleur endroit pour mettre des sessions, mais en principe, par défaut il est en 1777.

Pour connaître les droits sur /tmp/
Code:
$ ls -al / | grep tmp
On devrait avoir :
Code:
drwxrwxrwt  24 root root 12288 29 déc.  17:01 tmp

Pouscaillou
29/12/2010, 08h55
Bonjour,

j'ai progressé. Maintenant, je n'ai plus de page qui s'affiche super lentement, mais j'ai un problème d'écriture dans le dossier /tmp/

Zend_Sesssion me dit qu'il n'a plus la permission d'écrire ses sessions dans /tmp/

Quelqu'un sait pourquoi les droits ont changé ? Quels droits je dois mettre ? Ou faut-il passer par la création d'un dossier /tmp/ dans /home/ ?

Merci à vous

Pouscaillou
28/12/2010, 23h21
Bonsoir,

merci pour ce tuto. J'ai voulu l'installer sur mon serveur, mais les pages tournent en boucle, ou du moins ne s'affichent pas. Et au bout de X sec. on arrive sur une page blanche. Alors je me demandais si ce n'était pas dû à la version de PHP. Je suis aussi encore en 5.2.1 mais impossible de passer en 5.2.5.

voici les logs trouvés :

[Tue Dec 28 23:03:44 2010] [warn] FastCGI: server "/home/site/cgi-bin/php-wrap" (pid 11792) terminated by calling exit with status '0'
[Tue Dec 28 23:03:49 2010] [warn] FastCGI: server "/home/site/cgi-bin/php-wrap" (uid 1000, gid 100) restarted (pid 11795)
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613/php_curl.dll' - /usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613/php_curl.dll: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613/php_mysql.dll' - /usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613/php_mysql.dll: cannot open shared object file: No such file or directory in Unknown on line 0
X-Powered-By: PHP/5.2.13-pl0-gentoo^M
Content-type: text/html^M

et dans le apc.php (après désactivé le fastcgi)

apc.cache_by_default 1
apc.canonicalize 1
apc.coredump_unmap 0
apc.enable_cli 0
apc.enabled 1
apc.file_md5 0
apc.file_update_protection 2
apc.filters
apc.gc_ttl 3600
apc.include_once_override 0
apc.lazy_classes 0
apc.lazy_functions 0
apc.max_file_size 1M
apc.mmap_file_mask
apc.num_files_hint 1000
apc.preload_path
apc.report_autofilter 0
apc.rfc1867 on:
apc.rfc1867_freq 0
apc.rfc1867_name APC_UPLOAD_PROGRESS
apc.rfc1867_prefix upload_
apc.rfc1867_ttl 3600
apc.shm_segments 1
apc.shm_size 32M
apc.slam_defense 1
apc.stat 1
apc.stat_ctime 0
apc.ttl 0
apc.use_request_time 1
apc.user_entries_hint 4096
apc.user_ttl 0
apc.write_lock 1

Cached Files 1 (460.6 KBytes)
Hits 1
Misses 1
Request Rate (hits, misses) 2.00 cache requests/second
Hit Rate 1.00 cache requests/second
Miss Rate 1.00 cache requests/second
Insert Rate 1.00 cache requests/second
Cache full count 0

Merci à vous pour vos idées!

ftejera
11/12/2010, 07h08
Dans /usr/local/portage-ovh/dev-lang/php5-ovh
j'ai modifié le fichier : php5-ovh-5.2.5-r1.ebuild
(ajout au dessus de curl)
Pour info, il y avait dans ce répertoire un autre ebuild :
php5-ovh-5.2.13.ebuild (que je n'ai pas modifié)

et voilà ensuite les résultats :

ns3081 ~ # ebuild /usr/local/portage-ovh/dev-lang/php5-ovh/php5-ovh-5.2.5-r1.ebuild digest
>>> Creating Manifest for /usr/local/portage-ovh/dev-lang/php5-ovh
digest.assumed 6
digest-php5-ovh-5.2.13:hp-5.2.13.tar.bz2
digest-php5-ovh-5.2.13:hp-patchset-5.2.13-r0.tar.bz2
digest-php5-ovh-5.2.13::suhosin-patch-5.2.13-0.9.7.patch.gz
digest-php5-ovh-5.2.5-r1:hp-5.2.5.tar.bz2
digest-php5-ovh-5.2.5-r1:hp-patchset-5.2.5-r0.tar.bz2
digest-php5-ovh-5.2.5-r1::suhosin-patch-5.2.4_p20070914-0.9.6.2-gentoo-r1.patch.gz


ns3081 ~ # emerge php5-ovh
>>> Emerging (1 of 1) dev-lang/php5-ovh-5.2.13 to /
>>> Downloading 'http://mirror.ovh.net/gentoo-distfiles/distfiles/php-5.2.13.tar.bz2'
--04:39:41-- http://mirror.ovh.net/gentoo-distfil...5.2.13.tar.bz2
=> `/usr/portage/distfiles/php-5.2.13.tar.bz2'
Résolution de mirror.ovh.net... 91.121.125.139, 91.121.124.139, 2001:41d0:1:7b8b::1
Connexion vers mirror.ovh.net|91.121.125.139|:80...connecté.
requête HTTP transmise, en attente de la réponse...404 Not Found
04:39:41 ERREUR 404: Not Found.

>>> Downloading 'ftp://mirror.ovh.net/gentoo-distfiles/distfiles/php-5.2.13.tar.bz2'
--04:39:41-- ftp://mirror.ovh.net/gentoo-distfile...5.2.13.tar.bz2
=> `/usr/portage/distfiles/php-5.2.13.tar.bz2'
Résolution de mirror.ovh.net... 91.121.124.139, 91.121.125.139, 2001:41d0:1:7b8b::1
Connexion vers mirror.ovh.net|91.121.124.139|:21...connecté.
Ouverture de session en anonymous...Session établie!
==> SYST ... complété. ==> PWD ... complété.
==> TYPE I ... complété. ==> CWD /gentoo-distfiles/distfiles ... complété.
==> PASV ... complété. ==> RETR php-5.2.13.tar.bz2 ...
Fichier « php-5.2.13.tar.bz2 » inexistant.

>>> Downloading 'http://www.php.net/distributions/php-5.2.13.tar.bz2'
--04:39:41-- http://www.php.net/distributions/php-5.2.13.tar.bz2
=> `/usr/portage/distfiles/php-5.2.13.tar.bz2'
Résolution de www.php.net... 69.147.83.197
Connexion vers www.php.net|69.147.83.197|:80...connecté.
requête HTTP transmise, en attente de la réponse...302 Found
Emplacement: http://fr.php.net/distributions/php-5.2.13.tar.bz2 [suivant]
--04:39:42-- http://fr.php.net/distributions/php-5.2.13.tar.bz2
=> `/usr/portage/distfiles/php-5.2.13.tar.bz2'
Résolution de fr.php.net... 89.31.146.176
Connexion vers fr.php.net|89.31.146.176|:80...connecté.
requête HTTP transmise, en attente de la réponse...302 Found
Emplacement: http://fr.php.net/search.php?show=qu...5.2.13.tar.bz2 [suivant]
--04:39:42-- http://fr.php.net/search.php?show=qu...5.2.13.tar.bz2
=> `/usr/portage/distfiles/php-5.2.13.tar.bz2'
Connexion vers fr.php.net|89.31.146.176|:80...connecté.
requête HTTP transmise, en attente de la réponse...302 Found
Emplacement: http://fr.php.net/manual-lookup.php?...ar.bz2&lang=fr [suivant]
--04:39:42-- http://fr.php.net/manual-lookup.php?...ar.bz2&lang=fr
=> `/usr/portage/distfiles/php-5.2.13.tar.bz2'
Connexion vers fr.php.net|89.31.146.176|:80...connecté.
requête HTTP transmise, en attente de la réponse...200 OK
Longueur: non spécifié [text/html]

[ <=> ] 6,820 --.--K/s

04:39:43 (879.00 KB/s) - « /usr/portage/distfiles/php-5.2.13.tar.bz2 » sauvegardé [6820]

>>> Downloading 'http://mirror.ovh.net/gentoo-distfiles/distfiles/php-patchset-5.2.13-r0.tar.bz2'
--04:39:43-- http://mirror.ovh.net/gentoo-distfil....13-r0.tar.bz2
=> `/usr/portage/distfiles/php-patchset-5.2.13-r0.tar.bz2'
Résolution de mirror.ovh.net... 91.121.125.139, 91.121.124.139, 2001:41d0:1:7b8b::1
Connexion vers mirror.ovh.net|91.121.125.139|:80...connecté.
requête HTTP transmise, en attente de la réponse...404 Not Found
04:39:43 ERREUR 404: Not Found.

>>> Downloading 'ftp://mirror.ovh.net/gentoo-distfiles/distfiles/php-patchset-5.2.13-r0.tar.bz2'
--04:39:43-- ftp://mirror.ovh.net/gentoo-distfile....13-r0.tar.bz2
=> `/usr/portage/distfiles/php-patchset-5.2.13-r0.tar.bz2'
Résolution de mirror.ovh.net... 91.121.124.139, 91.121.125.139, 2001:41d0:1:7b8b::1
Connexion vers mirror.ovh.net|91.121.124.139|:21...connecté.
Ouverture de session en anonymous...Session établie!
==> SYST ... complété. ==> PWD ... complété.
==> TYPE I ... complété. ==> CWD /gentoo-distfiles/distfiles ... complété.
==> PASV ... complété. ==> RETR php-patchset-5.2.13-r0.tar.bz2 ...
Fichier « php-patchset-5.2.13-r0.tar.bz2 » inexistant.

>>> Downloading 'http://gentoo.longitekk.com/php-patchset-5.2.13-r0.tar.bz2'
--04:39:43-- http://gentoo.longitekk.com/php-patc....13-r0.tar.bz2
=> `/usr/portage/distfiles/php-patchset-5.2.13-r0.tar.bz2'
Résolution de gentoo.longitekk.com... 109.74.197.125
Connexion vers gentoo.longitekk.com|109.74.197.125|:80...connecté .
requête HTTP transmise, en attente de la réponse...404 Not Found
04:39:44 ERREUR 404: Not Found.

!!! Couldn't download 'php-patchset-5.2.13-r0.tar.bz2'. Aborting.
* Fetch failed for 'dev-lang/php5-ovh-5.2.13'

* Messages for package dev-lang/php5-ovh-5.2.13:


Donc dès la 1ère recherche sur des ftp, il n'y a rien de trouvé et cela s'arrête.

seal3
30/11/2010, 17h13
Citation Envoyé par swiggy
Bonjour,
J'ai lu ici que pour une install fastcgi + apache il fallait mettre PHP_FCGI_CHILDREN à 0 sinon ça fait plein de process qui ne servent à rien :



tout le monde dit ici qu'il faut augmenter PHP_FCGI_CHILDREN, est-ce que quelqu'un de plus calé que moi peut expliquer ?

Merci
Salut !

Je répond au passage ici car je me suis posé la même question. Même si ce post date un peu, google en aidera surement un qui passe par là.

Il y'a plusieurs points à savoir :

De ce que j'ai compris cela dépend de comment tu configure ton fastcgi (je parle pas de fcgid) et de ce que tu veux faire.

Dans tous les cas le but est d'avoir plusieurs process php pour servir les requettes. Soit en disant à php d'en créer un nombre fixe avec PHP_FCGI_CHILDREN soit via le fcgid ou fastcgi. Par contre il ne faut surtout pas faire les deux sinon on multipli le nombre de process php en pur gachi !!

Si tu as un fcgid (ou fastcgi dynamic ou fastcgi static avec -processes > 1) qui cré 5 process, chacun d'eux vont appeller ton php wrapper qui vont lancer PHP_FCGI_CHILDREN soit 4 process. Tu vas donc te retrouver avec 4*5= 20 process php. Cela ne sert à rien puisque chaque process fcgid ou fastcgi vont servir 1 seule requette à la fois. Donc au max seul 5 process php seront éxecutés (tu en cré 20).

Le deuxieme point c'est l'utilisation d'un cache php genre eaccelerator. Pour cacher, il faut des process php toujours actifs et lancés par un seul php fcgi manager pour qu'ils puissent partager les ressources. Cela ne peut donc marcher qu'avec PHP_FCGI_CHILDREN > 0.

Dans mon cas j'ai fast_cgi en static avec 1 seul et unique process :

FastCgiServer /home/site/php-cgi -processes 1 -idle-timeout 5 -user site -group site
et dans le fichier "php-cgi" j'ai un PHP_FCGI_CHILDREN=128. Du coup le eaccelerator fonctionne à 100%.

C'est un gros server à fort trafic. Par contre cela veut dire que seuls 128 php peuvent etre traités en même temps. Des le lancement d'apache je vois les 128 process qui bouffent donc de la RAM même si il n'y a pas grand monde sur le site.

Faut choisir, gestion fine des process via le fastcgi ou utilisation de eaccelerator et nombre de process fixe. Par contre avec fcgid il faut absolument PHP_FCGI_CHILDREN=0 mais du coup eaccelerator ne marchera pas.

Voila j'espere que ça va aider et que je n'ai pas trop dis de bêtises :/

Actucritique
04/11/2010, 08h49
Même souci que vous .
Tout le reste marche sauf le emerge :
Code:
# emerge php5-ovh
Calculating dependencies... done!
>>> Verifying ebuild Manifests...

>>> Emerging (1 of 1) dev-lang/php5-ovh-5.2.5-r1 to /
 * php-5.2.5.tar.bz2 MD5 RMD160 SHA1 SHA256 size ;-) ...                                                                         [ ok ]
>>> Downloading 'http://mirror.ovh.net/gentoo-distfiles/distfiles/php-patchset-5.2.5-r0.tar.bz2'
--08:36:49--  http://mirror.ovh.net/gentoo-distfiles/distfiles/php-patchset-5.2.5-r0.tar.bz2
           => `/usr/portage/distfiles/php-patchset-5.2.5-r0.tar.bz2'
Résolution de mirror.ovh.net... 91.121.124.139, 91.121.125.139, 2001:41d0:1:7b8b::1
Connexion vers mirror.ovh.net|91.121.124.139|:80...connecté.
requête HTTP transmise, en attente de la réponse...404 Not Found
08:36:49 ERREUR 404: Not Found.

>>> Downloading 'ftp://mirror.ovh.net/gentoo-distfiles/distfiles/php-patchset-5.2.5-r0.tar.bz2'
--08:36:49--  ftp://mirror.ovh.net/gentoo-distfiles/distfiles/php-patchset-5.2.5-r0.tar.bz2
           => `/usr/portage/distfiles/php-patchset-5.2.5-r0.tar.bz2'
Résolution de mirror.ovh.net... 91.121.125.139, 91.121.124.139, 2001:41d0:1:7b8b::1
Connexion vers mirror.ovh.net|91.121.125.139|:21...connecté.
Ouverture de session en anonymous...Session établie!
==> SYST ... complété.    ==> PWD ... complété.
==> TYPE I ... complété.  ==> CWD /gentoo-distfiles/distfiles ... complété.
==> PASV ... complété.    ==> RETR php-patchset-5.2.5-r0.tar.bz2 ...
Fichier « php-patchset-5.2.5-r0.tar.bz2 » inexistant.

>>> Downloading 'http://gentoo.longitekk.com/php-patchset-5.2.5-r0.tar.bz2'
--08:36:49--  http://gentoo.longitekk.com/php-patchset-5.2.5-r0.tar.bz2
           => `/usr/portage/distfiles/php-patchset-5.2.5-r0.tar.bz2'
Résolution de gentoo.longitekk.com... 109.74.197.125
Connexion vers gentoo.longitekk.com|109.74.197.125|:80...connecté.
requête HTTP transmise, en attente de la réponse...404 Not Found
08:36:49 ERREUR 404: Not Found.

!!! Couldn't download 'php-patchset-5.2.5-r0.tar.bz2'. Aborting.
 * Fetch failed for 'dev-lang/php5-ovh-5.2.5-r1'

 * Messages for package dev-lang/php5-ovh-5.2.5-r1:

 * Fetch failed for 'dev-lang/php5-ovh-5.2.5-r1'

leo11173
15/08/2010, 15h46
Bonjour, quelqu'un a t'il réussi à installer fcgi + acp ou eaccelerator récemment à l'aide de ce guide ?

Impossible de faire l'ermege de php5 ici.


* Messages for package app-arch/lzma-utils-4.32.6:

* Fetch failed for 'app-arch/lzma-utils-4.32.6'

lzma-utils-4.32.6 ne semble plus exister.
Idem pour php-patchset-5.2.5-r0.tar.bz2

swiggy
07/07/2010, 18h23
Bonjour,
J'ai lu ici que pour une install fastcgi + apache il fallait mettre PHP_FCGI_CHILDREN à 0 sinon ça fait plein de process qui ne servent à rien :

Apache with fcgid will launch one fastcgi child (in this case php5-fcgi) for each request that needs to be serviced. This means that if apache receives 2 concurrent php requests for the same site, 2 php fastcgi processes will be launched, with each in turn launching 4 children. This means that only one of the php children will ever be used (which we verified using strace). So, since the php processes are being managed by mod_fcgid, there is no point in also configuring php to manage processes. PHP_FCGI_CHILDREN is only useful when the php instance is a stand alone fcgi server as in nginx or lighttpd.
tout le monde dit ici qu'il faut augmenter PHP_FCGI_CHILDREN, est-ce que quelqu'un de plus calé que moi peut expliquer ?

Merci

ammonavis
01/02/2010, 13h09
Bonjour,

Impossible de faire fonctionner le php en fast cgi:

Contenu du httpd.conf sur le virtual host concerné:


ServerAdmin webmaster@xxx.com
DocumentRoot /home/webmail/www
SuexecUserGroup webmail users
ServerName webmail.xxx.com
CustomLog logs/webmail-access_log combined
ScriptAlias /cgi-bin/ /home/webmail/cgi-bin/
#AddHandler x-httpd-php5 .php
suPHP_Engine off

suPHP_Removehandler .php

FastCgiServer /home/webmail/cgi-bin/php-wrap -user webmail -group users -processes 1 -idle-timeout 3600
AddHandler php-fastcgi .php
AddType application/x-httpd-php .php
Action php-fastcgi /cgi-bin/php-wrap


Contenu du php-wrap:
#!/bin/sh
PHP_FCGI_CHILDREN=64
export PHP_FCGI_CHILDREN
PHP_FCGI_MAX_REQUESTS=500
export PHP_FCGI_MAX_REQUESTS
exec /usr/local/php5/bin/php


Erreurs dans error log:
[Mon Feb 01 12:17:49 2010] [warn] FastCGI: server "/home/webmail/cgi-bin/php-wrap" (uid 510, gid 100) started (pid 5068)
[Mon Feb 01 12:17:49 2010] [warn] FastCGI: server "/home/webmail/cgi-bin/php-wrap" (pid 5068) terminated by calling exit with status '1'
[Mon Feb 01 12:17:54 2010] [warn] FastCGI: server "/home/webmail/cgi-bin/php-wrap" (uid 510, gid 100) restarted (pid 5104)
failed to open log file
fopen: Permission denied
[Mon Feb 01 12:17:54 2010] [warn] FastCGI: server "/home/webmail/cgi-bin/php-wrap" (pid 5104) terminated by calling exit with status '1'
failed to open log file
fopen: Permission denied
[Mon Feb 01 12:17:59 2010] [warn] FastCGI: server "/home/webmail/cgi-bin/php-wrap" (uid 510, gid 100) restarted (pid 5136)
[Mon Feb 01 12:17:59 2010] [warn] FastCGI: server "/home/webmail/cgi-bin/php-wrap" (pid 5136) terminated by calling exit with status '1'
failed to open log file
fopen: Permission denied
[Mon Feb 01 12:18:04 2010] [warn] FastCGI: server "/home/webmail/cgi-bin/php-wrap" (uid 510, gid 100) restarted (pid 5245)
[Mon Feb 01 12:18:04 2010] [warn] FastCGI: server "/home/webmail/cgi-bin/php-wrap" (pid 5245) terminated by calling exit with status '1'
[Mon Feb 01 12:18:04 2010] [warn] FastCGI: server "/home/webmail/cgi-bin/php-wrap" has failed to remain running for 30 seconds given 3 attempts, its restart interval has been backed off to 600 seconds

J'ai beau revérifier tout, je ne trouve pas le probleme!!
Que de belles erreurs 500...

Merci d'avance pour votre aide!

swiggy
04/01/2010, 14h15
Bonjour,
J'ai également mis en place FastCgi et APC après quelques galères, un

Code:
cd /usr/local/apache/bin
./ab -n300 -c5 http://monurl/
me donne un "time taken for tests" de 52s sans APC et de 4s avec !
par contre vu que mon serveur abrite une appli très lourde mais avec peu de trafic (application d'entreprise en interne) je ne vois pas vraiment la différence en temps de chargement des pages...

Une question me taraude quand même, je suis resté en php 5.2.1 ovh car je n'arrivais pas à le passer en 5.2.5. est-ce que ça a une incidence ?

d'autre part le fichier cgi-bin/php-wrap ne fonctionnait pas car il faisait appel au fichier /usr/local/php5/bin/php-cgi qui n'existait pas sur mon serveur. J'ai donc changé :

Code:
#!/bin/sh
PHP_FCGI_CHILDREN=8
export PHP_FCGI_CHILDREN
PHP_FCGI_MAX_REQUESTS=500
export PHP_FCGI_MAX_REQUESTS
exec /usr/local/php5/bin/php-cgi
en

Code:
#!/bin/sh
PHP_FCGI_CHILDREN=8
export PHP_FCGI_CHILDREN
PHP_FCGI_MAX_REQUESTS=500
export PHP_FCGI_MAX_REQUESTS
exec /usr/local/php5/bin/php
est-ce que quelqu'un sait si ça a une incidence ? le php_info et la signature d'apache indiquent que Fascgi est bien installé.

Merci de vos feedbacks
Cordialement

Vincent

jvieille
27/11/2009, 17h56
+ Mise à jour de mon expérience FastCGI/APC sur Gentoo Release 2


Je l'ai fait ! Pas facile...

Problème 1
----------
pas le bon PHP - 5.2.1 au llieu de 5.2.5
Je n'arrive pas à faire avec le 5.2.1, donc je tente le passage en 5.2.5

J'ai réussi le passage une première fois. PHPinfo me donnait la bonne version, mais FastCGI n'avait pas l'air d'être activé et les sites ne marchaient pas lorsque je paramétrais le VHost. (voir mon appel au secours ci-dessus)

Problème 2
----------
Je tente un nouvel emerge de PHP5.2.5 : ça ne passe pas du tout
Il manque à présent des packages genre libXpm / libX11.
Ce se règlle avec
emerge -av libX11 libXpm
Problème 3
----------
Ca ne passe toujours pas:
/var/tmp/portage/dev-lang/php-5.2.6_rc4/work/php-5.2.6RC4/ext/posix/posix.c:471:
error: ‘struct utsname’ has no member named ‘domainname’
Ce bug est raporté ici :
Il faut remonter à une vieille version d'autoconf:
Ca se règle comme cela
emerge =sys-devel/autoconf-2.61-r2
Problème 4
----------
Ca ne marche toujours pas
En mode FastCGI, la précédence des fichiers php.ini n'est pas respectée.
Du coup, celui que j'avais placé dans le répertoire www n'est plus pris en compte.
C'est celui au plus bas de la hiérarchie qui compte seul
/usr/local/lib64/php5/php.ini
C'est un peu gênant, cela signifie que quelles que soient les instances de PHP, elles partagent toutes la même configuration.

Problème 5
----------
Ca marche pour un site, pas pour les autres.
Je travaille en multi-sites Drupal, tous les sites pointent sur le même répertoire.

Solution: il faut utiliser les mêmes paramètres group/user et la même référence de répertoire/fichier dans chaque directive Vhost pour:
SuexecUserGroup
ScriptAlias
FastCgiServer


Réglages APC
-------------
apc.enabled = 1
apc.rfc1867 = on
apc.shm_segments=1
apc.shm_size=128
apc.ttl=7200
apc.user_ttl=7200
apc.include_once_override=1
Résultat
--------
Côté FastCGI, on ne voit pas grand chose.
Les répertoires
/tmp/fcgi_ipc
/tmp/fcgi_ipc/dynamic
/home/log/httpd/fastcgi/dynamic
/home/log/httpd/fastcgi/ (à part un "tuyau)
sont vides

APC a l'air de fonctionner, le cache est bien actif

Résultat
--------
FastCGI seul: aucun changement

Avec APC, pas terrible (sur Drupal)
Le gain est de 10-30 %:

Sans fgci/APC:
Executed 385 queries in 103.82 milliseconds.
Page execution time was 1617.91 ms.

Avec fcgi/APC
Executed 385 queries in 86.51 milliseconds.
Page execution time was 1077.61 ms
Tout ça pour des clopinettes...

jvieille
23/11/2009, 16h07
Citation Envoyé par swiggy
bonjour,

Je suis également bloqué à la première étape à cause du /usr/local/portage-ovh/dev-lang/php5-ovh/php5-ovh-5.2.1.ebuild corrompu (missing parenthesis).

Comment se fait-il que certains aient php5-ovh-5.2.5.ebuild et d'autres php5-ovh-5.2.1.ebuild ? on ne peut pas le récupérer ?

Merci
PHP5.2.1 ou PHP5.2.5 ?

Est-ce que quelqu'un a réussi à passer avec succès en fastCGI :
- sur une 5.2.1 en bricolant l'ebuilt en interprétant les indications du tuto ?
- sur une 5.2.5 après avoir mis à jour son PHP ?

Comme j'étais en 5.2.1, j'ai choisi la seconde option, qui ne marche pas pour moi.
(aucune erreur de compilation, tout fonctionne, y compris APC, mais le mode FastCGI n'est pas activé et APC ne fait rien du tout)


Nota: Pour récupérer la 5.2.5, c'est ici :
http://forum.ovh.com/showthread.php?...+ebuild+digest

jvieille
06/11/2009, 14h57
2 questions sans doute idiotes
1) Est-ce que FastCGI doit être installé dans un vhost au niveau httpd pour qu'APC puisse fonctionner sur ce site, ou bien la simple instalation de FastCGI suffit ?
2) J'ai cru comprendre qu'il y avait 2 mode fastCGI
- un mode PHP en FastCGI
- un mode Apache FastCGI
Duquel parle-t-on ici?

Merci pour ces éclaircissements

jvieille
05/11/2009, 11h04
J'ai suivi le tuto scrupuleusement.
Mon Gentoo release 2 était en PHP 5.2.1, je l'ai mis à jour sans trop de difficulté en 5.2.5 en allant chercher le package manquant chez OVH.

Malheureusement ça ne marche pas. Lorsque je met les lignes indiquées et bien configurée dnas un vhost :
- impossible d'accéder au site, la page se met en attente de chargement pour l'éternité
- le fichier error_log rapporte ceci, à partir du redémarrage Apache :


[Thu Nov 05 10:34:13 2009] [notice] Graceful restart requested, doing restart
[Thu Nov 05 10:34:14 2009] [notice] Apache/2.0.59 (Unix) mod_ssl/2.0.59 OpenSSL/0.9.8g mod_fastcgi/2.4.6 configured -- resuming normal operations
[Thu Nov 05 10:34:14 2009] [notice] FastCGI: wrapper mechanism enabled (wrapper: /usr/local/apache/bin/suexec)
[Thu Nov 05 10:34:14 2009] [notice] FastCGI: process manager initialized (pid 17684)
X-Powered-By: PHP/5.2.5-pl1-gentoo
Content-type: text/html

[Thu Nov 05 10:34:14 2009] [warn] FastCGI: server "/home/ccm/cgi-bin/php-wrap" (uid 1005, gid 100) started (pid 17686)
[Thu Nov 05 10:34:14 2009] [warn] FastCGI: server "/home/ccm/cgi-bin/php-wrap" (pid 17686) terminated by calling exit with status '0'
[Thu Nov 05 10:34:19 2009] [warn] FastCGI: server "/home/ccm/cgi-bin/php-wrap" (uid 1005, gid 100) restarted (pid 17699)
X-Powered-By: PHP/5.2.5-pl1-gentoo
Content-type: text/html

[Thu Nov 05 10:34:19 2009] [warn] FastCGI: server "/home/ccm/cgi-bin/php-wrap" (pid 17699) terminated by calling exit with status '0'
[Thu Nov 05 10:34:24 2009] [warn] FastCGI: server "/home/ccm/cgi-bin/php-wrap" (uid 1005, gid 100) restarted (pid 17716)
X-Powered-By: PHP/5.2.5-pl1-gentoo
Content-type: text/html

[Thu Nov 05 10:34:24 2009] [warn] FastCGI: server "/home/ccm/cgi-bin/php-wrap" (pid 17716) terminated by calling exit with status '0'
[Thu Nov 05 10:34:29 2009] [warn] FastCGI: server "/home/ccm/cgi-bin/php-wrap" (uid 1005, gid 100) restarted (pid 17732)
X-Powered-By: PHP/5.2.5-pl1-gentoo
Content-type: text/html

etc...
En bref, arrêt et redémarrage de php-wrap toutes les 5 secondes

J'ai eu beau googler dans tous les sens, je n'ai rien trouvé.
Quelqu'un aurait une idée?

cassiopee
19/10/2009, 09h25
Pour le problème de " missing space by parenthesis: '(h' " , voir par là :

http://forums.ovh.com/showpost.php?p=317631&postcount=4

swiggy
19/10/2009, 09h20
bonjour,

Je suis également bloqué à la première étape à cause du /usr/local/portage-ovh/dev-lang/php5-ovh/php5-ovh-5.2.1.ebuild corrompu (missing parenthesis).

Comment se fait-il que certains aient php5-ovh-5.2.5.ebuild et d'autres php5-ovh-5.2.1.ebuild ? on ne peut pas le récupérer ?

Merci

oli004
28/09/2009, 10h21
Citation Envoyé par jvieille
Un principe semble acquis avec la Release 2 : on ne touche pas.

Jusque là, cela ne m'a pas gêné et j'apprécie la fiabilité et la simplicité d'utilisation de la Release 2. Je m'en sors sans y connaitre grand chose. Par contre je suis frustré par les performances et j'apprécierais l'appui d'un accélérateur comme APC ou au moins de passer à FastCGI.

Je n'arrrive pas à comprendre pourquoi OVH refuse FastCGI qui est disponible sur tous les serverus mutuallisés sans exception et permettrait d'installer APC. Je ne vois pas comment cela compromettrait les objectifs de la Release 2.

J'ai bien compris que cette édition était pour les nuls, mais d'ici à les prendre pour des c..

Est-ce que quelqu'un a une explication rationnelle à cette brimade?
Dois-je comprendre que si l'on a une R2 on ne peut pas activer apc ???
Je galère depuis deux jours et mon php info ne m'affiche tjs pas d'apc. J'ai d'ailleurs remonté un sujet pour essayer de résoudre mon problème mais en vain

Ostin
10/09/2009, 15h37
Bonjour Bloggif,

Bravo pour ce tuto.

J'ai suivi pas à pas le Tuto, mais dès que je commente/ajoute les lignes dans le httpd.conf au niveau du site web que je veux passer en fastcgi, j'obtiens une "Internal Server Error" sur le site correspondant.

Je n'ai pas encore installé APC pour avancer pas à pas.

As-tu une idée d'où ça peut venir stp ?



Merci.

Ostin

EDIT:

J'ai essayé de transférer php-wrap dans /home/ovh/cgi-bin, comme indiqué plus haut, mais j'ai une erreur . Ne trouve pas /home/ovh/cgi-bin/php-wrap/index.php ??

Bon, j'ai quand même installé APC (avec fastcgi php). ça marche sans le fastcgi apache.

jvieille
05/09/2009, 19h43
Un principe semble acquis avec la Release 2 : on ne touche pas.

Jusque là, cela ne m'a pas gêné et j'apprécie la fiabilité et la simplicité d'utilisation de la Release 2. Je m'en sors sans y connaitre grand chose. Par contre je suis frustré par les performances et j'apprécierais l'appui d'un accélérateur comme APC ou au moins de passer à FastCGI.

Je n'arrrive pas à comprendre pourquoi OVH refuse FastCGI qui est disponible sur tous les serverus mutuallisés sans exception et permettrait d'installer APC. Je ne vois pas comment cela compromettrait les objectifs de la Release 2.

J'ai bien compris que cette édition était pour les nuls, mais d'ici à les prendre pour des c..

Est-ce que quelqu'un a une explication rationnelle à cette brimade?

Wahl
05/09/2009, 05h46
Citation Envoyé par s1tropez
Impossible d'activer FastCGI !
Je ne pense pas que mes problèmes viennent d'APC mais bien de FastCGI.

J'ai trouvé sur un forum anglophone la solution pour régler le problème d'encodage de contenu, et ça vient en faite d'un bug vraisemblablement de PHP avec la fonction header.

Mais j'ai crié victoire trop vite puisque maintenant j'ai un problème avec la gestion des ErrorDocument.
Effectivement, Apache n'en tient pas rigueur et m'affiche une erreur 404 classique avec le message :


Mon installation est totalement instable !

Pourtant, je ne suis pas le seul à avoir ces problèmes selon mes recherches (mais malheureusement sans réponse, argh)

Je m'accroche tant bien que mal... surtout avec les gains d'APC c'est quasiment hallucinant.

Quelqu'un pourrait-il me partager son retour d'expérience sur cette installation ?
Pour ceux qui veulent tout de meme utiliser cette configuration et corriger ce probleme (fastcgi header output) :
http://www.noisette.ch/wiki/index.ph...suexec_dynamic

Il suffit de commenter la ligne dans mod_fastcgi.c :
Code:
 /* goto DuplicateNotAllowed;            */
et recompilez normalement le mod_fastcgi.

Apparemment ca a ete directement corrige dans php pour la 5.3.

jvieille
02/05/2009, 07h29
Que se passe-t-il en cas de mise à jour du système?
Pourquoi OVH ne propose même pas Fast-CGI?

meetoo
08/04/2009, 22h02
Je me permet de remonter ce sujet...

Si quelqu'un a une idée, je sèche complètement et c'est vraiment important...

meetoo
08/04/2009, 11h08
Je viens de tenter, mais a la fin du emege j'ai ceci :

>>> No outdated packages were found on your system.
* GNU info directory index is up-to-date.
* IMPORTANT: 1 config files in '/usr/local/lib/php5' need updating.
* See the CONFIGURATION FILES section of the emerge
* man page to learn how to update config files.
Et une belle "Internal Server Error" quand je retourne sur un site :

Code:
Could not execute script "/home/mon_site/www/index.php"

Tchinkatchuk
08/04/2009, 10h48
Tu devrais pouvoir rajouter également la ligne curl qui n'est pas présente dans les dernières versions.

Je crois que je l'avais rajouté également.

meetoo
08/04/2009, 10h22
On édite le fichier "/usr/local/portage-ovh/dev-lang/php5-ovh/php5-ovh-5.2.5.ebuild"

En ajoutant au dessous de "--with-curl \" ces deux lignes :


--enable-fastcgi \
--enable-force-cgi-redirect \
Je coince dès la première étape.
Sur une release 2 64 bits le fichier php5-ovh-5.2.5.ebuild n'existe pas apparamment, il y a que php5-ovh-5.2.1.ebuild

Et je ne vois pas de "--with-curl \" dans le php5-ovh-5.2.1.ebuild.


Merci d'avance

Tchinkatchuk
07/04/2009, 13h24
je viens de configurer tout cela sur ma gentoo 32.
Tout semble bien se passer.
Apx prend bien du cache, même si je ne vois pas de gain sensible mais par contre si je fais une refrech (F5), cela prend plus de 18 secondes avec firefox (testé sur de nombreux postes) alors que la nav marche tres bien !!

Je ne vois aucune explication à tout cela?

jvieille
14/01/2009, 11h22
2 questions:
1) J'ai déjà installé APC sans installer Fastcgi - ce qui ne donne rien évidemment.
Est-ce je dois désinstaller, puis réinstaller APC après avoir installé FastCGI?

2) En cas de mise à jour OVH, est-ce quon perd tout?

dzed
07/10/2008, 18h10
Citation Envoyé par airmax
Ca commence bien pour moi, je n'ai qu'un fichier /usr/local/portage-ovh/dev-lang/php5-ovh/php5-ovh-5.2.1.ebuild

Et cela, bien que c'est PHP 5.2.5 qui est installé sur mon dédié. Et pas de ligne "--with-curl \" dans ce fichier, donc j'imagine que les différences ne sont pas petites. Je suis le seul à qui ça arrive ? J'ai loupé quelque chose ? Je trouve où le bon .ebuild ?

Pour info, je ne connais pas grand chose à OVH Relase / Gentoo, mais je me débrouille de manière générale sous Linux ; j'arriverai sans problème à installer un cache d'opcode sur le dédié, mais je cherche une solution plutôt propre (sans tout recompiler moi-même avec du ./configure à la main).
J'ai le même problème, quelqu'un à une solution ? A part recompiler php à la main ce que je voudrais éviter.

nemilos
28/09/2008, 15h53
Bon à titre d'archive, j'ai résolu le problème en utilisant http://pecl.php.net/package/uploadprogress au lieu de APC ...

et la j'ai bien des infos sur le fichier à jours

bonne journée

nemilos
28/09/2008, 05h56
Citation Envoyé par Spoony
Bonjour, j'ai un soucis concernant APC.

je fais un suivi de progression d'upload, mais lorsque que je fait un apc_fetch je me retrouve toujours avec false durant l'upload, par contre j'arrive bien a le faire une fois que l'upload est fini...

j'utilise apc 3.0.19 et php 5.2.5

Vous avez une idee?

merci
exactement le même problème, il trouve les infos uniquement après l'upload ...

Release 2 ovh 32 bit

merci si quelqu'un à trouvé le soluce je patoge ...

pyg
03/09/2008, 17h14
S1Tropez disait :
J'ai trouvé sur un forum anglophone la solution pour régler le problème d'encodage de contenu, et ça vient en faite d'un bug vraisemblablement de PHP avec la fonction header.
J'ai le même problème (php & header & APC & FastCGI) et je ne trouve pas de solution... :-(

Spoony
08/07/2008, 21h46
Personne pour m'aider ?

Spoony
07/07/2008, 18h28
Bonjour, j'ai un soucis concernant APC.

je fais un suivi de progression d'upload, mais lorsque que je fait un apc_fetch je me retrouve toujours avec false durant l'upload, par contre j'arrive bien a le faire une fois que l'upload est fini...

j'utilise apc 3.0.19 et php 5.2.5

Vous avez une idee?

merci

piop
04/07/2008, 23h21
Quel est ta directive 404? et sous quel condition elle est appelé ?

perso dans un .htaccess (de mémoire):
ErrorDocument 404 /error.php
ErrorDocument 403 /403.htm
Fonctionne très bien

s1tropez
30/06/2008, 23h07
Impossible d'activer FastCGI !
Je ne pense pas que mes problèmes viennent d'APC mais bien de FastCGI.

J'ai trouvé sur un forum anglophone la solution pour régler le problème d'encodage de contenu, et ça vient en faite d'un bug vraisemblablement de PHP avec la fonction header.

Mais j'ai crié victoire trop vite puisque maintenant j'ai un problème avec la gestion des ErrorDocument.
Effectivement, Apache n'en tient pas rigueur et m'affiche une erreur 404 classique avec le message :
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
Mon installation est totalement instable !

Pourtant, je ne suis pas le seul à avoir ces problèmes selon mes recherches (mais malheureusement sans réponse, argh)

Je m'accroche tant bien que mal... surtout avec les gains d'APC c'est quasiment hallucinant.

Quelqu'un pourrait-il me partager son retour d'expérience sur cette installation ?

piop
26/06/2008, 11h22
Citation Envoyé par s1tropez
Cependant je me demandais ou été déposé les fichiers de cache ?
Dans la mémoire

s1tropez
25/06/2008, 23h11
J'ai un problème assez étrange.
Périodiquement, j'ai des erreurs "Erreur d'encodage de contenu" avec firefox ?

Problème avec APC assez étonnant.
J'ai mis à jour la dernière version 3.0.19.

La mémoire n'est pas saturé puisque sur mon apc.php, il m'annonce 20mo d'utilisé sur 64mo.

quelqu'un à rencontré ce problème ?
{Edit}
C'est un problème venant de FastCGI selon les logs (FoxyFox m'y faisant penser) :
[Wed Jun 25 23:22:40 2008] [error] [client 212.198.134.146] FastCGI: comm with server "/home/ovh/cgi-bin/php-wrap" aborted: error parsing headers: duplicate header 'Content-Type', referer: http://mon-adresse-tu-ne-lauras-pas

javacup
25/06/2008, 13h32
Normalement avec le client ftp en te connectant avec le login ftp que tu as créer pour ton dossier web /home/tondossierweb/ tu as tous les droits sur son dossier c'est logique tu trouve pas et si tu n'y arrive pas eh bien le problème et la...


Citation Envoyé par s1tropez
Je vais essayer en modifiant les chemins dans le httpd.conf.
Si je le fais avec mon client ftp, je ne pourrais pas le placer dans le répertoire cgi-bin.
Je te fais un retour rapidement.

s1tropez
25/06/2008, 13h28
Je suis trop nul des fois.
En faite, j'ai mis mon php-wrap dans un répertoire extérieur (c'est un alias car j'ai pas transféré mon nom de domaine encore).

Là, je viens de le transférer dans le répertoire cgi-bin d'ovh.
J'ai mis le meme user et groupe que le vpopmail et les autres.

J'ai modifié dans le httpd.conf encore une fois l'user et le groupe et tout fonctionne parfaitement maintenant.

[Edit]
APC fonctionne parfaitement.
Cependant je me demandais ou été déposé les fichiers de cache ?
Autre chose quand à son utilisation, comment attribuer un mot de passe ?

s1tropez
25/06/2008, 12h49
Je vais essayer en modifiant les chemins dans le httpd.conf.
Si je le fais avec mon client ftp, je ne pourrais pas le placer dans le répertoire cgi-bin.
Je te fais un retour rapidement.

javacup
25/06/2008, 06h38
bonjour,

crée ton fichier et puis tu l'envoi via un client ftp normal du site en question et tu fais le chmod avec le clientftp.

Citation Envoyé par s1tropez
J'ai quasiment testé tous les groupes et utilisateurs possibles...
D'ou peut venir mon incompréhension comme ça.

s1tropez
25/06/2008, 03h10
Ok, ok, that's great.
Mon serveur Apache à planté, et ceci à partir de maintenant

J'ai enlevé les directives dans mon httpd.conf en attendant des réponses pour ma question ci-dessus.

J'espère que tu passes encore sur le forum Bloggif !

s1tropez
25/06/2008, 00h51
J'ai quasiment testé tous les groupes et utilisateurs possibles...
D'ou peut venir mon incompréhension comme ça.

s1tropez
24/06/2008, 18h09
Salut Bloggif.

Je suis assidument ton tutorial mais je bloque sur un truc.
J'ai crée le fichier php-wrap dans mon cgi-bin avec un chmod 0x755

Usager : utilisateur courant
Groupe : users

Et quand je rédemarre mon serveur apache, j'ai comme consigne :
FastCgiServer /home/artbambou/cgi-bin/php-wrap: invalid user or group: invalid uid or gid, see the -user and -group options
[ !! ]
En tout cas, je vois que tu as pas laché l'affaire et que ça a porté ces fruits !
J'ai hate de tout tester pour voir l'evolution en terme de performance !

airmax
18/06/2008, 20h43
C'est bon, je me suis débrouillé en recompilant moi-même PHP à la main

Par contre, je ne comprenais pas un truc : si j'essayais de compiler avec --with-xpm (en reprenant les options données par le phpinfo de la version installée), le configure me disait grosso-merdo que ma libX11 était foireuse.

Pas grave, je m'amuse ni avec des XPM en PHP (donc j'ai compilé sans), ni avec X11 sur un serveur web, mais je pense qu'il ne serait pas inutile pour la team OVH d'investiguer ça, défois que...

airmax
18/06/2008, 09h15
On édite le fichier "/usr/local/portage-ovh/dev-lang/php5-ovh/php5-ovh-5.2.5.ebuild"

En ajoutant au dessous de "--with-curl \" ces deux lignes :

--enable-fastcgi \
--enable-force-cgi-redirect \
Ca commence bien pour moi, je n'ai qu'un fichier /usr/local/portage-ovh/dev-lang/php5-ovh/php5-ovh-5.2.1.ebuild

Et cela, bien que c'est PHP 5.2.5 qui est installé sur mon dédié. Et pas de ligne "--with-curl \" dans ce fichier, donc j'imagine que les différences ne sont pas petites. Je suis le seul à qui ça arrive ? J'ai loupé quelque chose ? Je trouve où le bon .ebuild ?

Pour info, je ne connais pas grand chose à OVH Relase / Gentoo, mais je me débrouille de manière générale sous Linux ; j'arriverai sans problème à installer un cache d'opcode sur le dédié, mais je cherche une solution plutôt propre (sans tout recompiler moi-même avec du ./configure à la main).

piop
15/06/2008, 18h42
Citation Envoyé par pyg
[..]
4- tout con, mais ajouter au tuto (à la fin) :
"copiez le fichier /home/src/APC-3.0.xx/apc.php (ou xx est la version d'APC) à la racine de votre site. Il vous permettra de contrôler l'utilisation de votre cache via http://www.votresite.com/apc.php", ça peut être un plus
[...]
Voilà mes 2 cents.
Merci encore
Mci, j'étais justement en train de le chercher

nellyinf
31/05/2008, 22h34
Citation Envoyé par bloggif
Dites moi, y'a des modérateurs sur le forum ou simplement quelques techniciens d'ovh qui postent des annonces de temps en temps ?
Non, le personnel de OVH ne modère pas ce forum (sauf spam je crois).

En tout cas merci beaucoup pour ce tuto, je ne l'ai pas encore testé mais il à l'air pas mal.

Pour conclure, si tu as le courage, le tuto avec une petite synthèse des commentaires serait bienvenue dans la section how-to (ou on trouve plus facilement les tutos).

pyg
31/05/2008, 20h44
Excellent tuto (qui plus est qui mériterait une synthèse des commentaires) : j'ai du mal à comprendre pourquoi l'installation d'un cache opcode est si difficile à trouver, alors qu'on est probablement *tres* nombreux chez OVH à :
1- vouloir rester en release
2- utiliser des applis PHP
3- avoir pas mal de visiteurs sur nos sites
4- vouloir accélérer les sites en question

Donc, un grand merci à bloggif (et aux autres)

Ma contrib :
sur un kimsufi, il faut faire attention :

1- à faire un emerge php5-ovh avant (qui fournira un php 5.2.1 et non 5.2.5, donc à prendre en compte lors de la modif de l'ebuild)

2- dans le fichier php-wrap, remplacer
Code:
exec /usr/local/php5/bin/php-cgi
par
Code:
exec /usr/local/php5/bin/php
3- dans le tuto, toujours dans le php-wrap, il est indiqué :
Code:
PHP_FCGI_CHILDREN=8
je conseille de taper directement à 64, voir plus :
Code:
PHP_FCGI_CHILDREN=64
(il en est question dans le commentaires, mais si on utilise un cache, c'est souvent qu'on a un site chargé par beaucoup de visiteurs, non ? )

4- tout con, mais ajouter au tuto (à la fin) :
"copiez le fichier /home/src/APC-3.0.xx/apc.php (ou xx est la version d'APC) à la racine de votre site. Il vous permettra de contrôler l'utilisation de votre cache via http://www.votresite.com/apc.php", ça peut être un plus

5- dans le php.ini, j'ai complété la config d'apc par :
Code:
apc.shm_segments=1
apc.optimization=0
apc.shm_size=64
apc.ttl=7200
apc.user_ttl=7200
Le plus important etant la ligne apc.shm_size=64 qui défini la taille du cache (à ajuster en fonction de vos besoins identifiés dans apc.php). La doc de configuration d'APC : http://www.php.net/manual/fr/apc.configuration.php

Voilà mes 2 cents.
Merci encore

bloggif
22/05/2008, 18h43
Oui, je pense pas que ça ait un grand intêret en mode dynamic...

Pour la config du wrapper, j'avais moi aussi augmenter le "PHP_FCGI_CHILDREN". Cette variable doit être configurée en fonction du traffic du site, dans mon cas elle est à 200. Plus ce nombre élevé, plus PHP peut traiter de requêtes en même temps (mais risque aussi d'augmenter le temps de traitement de chacune d'elle). Dans mon cas, relever cette valeur était indispensable car, sinon, la file d'attente des requêtes devient tellement importante que les délais de traitement sont intolérables (l'utilisateur attend qu'un processus fils soit dispo pendant X min/sec).

J'avais aussi diminué la valeur de "PHP_FCGI_MAX_REQUESTS" à 100 pour éviter les fuites de mémoires mais dans le même temps ça augmente le temps d'execution 1/100 car le processus fils est tué puis un autre est rechargé. A configurer donc selon ses envies/besoins.

Pour finir, j'avais plusieurs processus "php-cgi" zombies qui refusaient de se fermer et le seul moyen que j'ai trouvé est de les killer automatiquement. Pour ceux à qui ça arrivent, voici le bout de code que j'ai fait :

exec('ps -ef | grep defunct | more', $tab);

$c = count($tab); $j = 0;

$killed_parents = array();

for ($i = 0; $i < $c; $i++)
{
$row = trim($tab[$i]);

if ($row == '') continue;

$count = 0;

do
{
$row = str_replace('METTRE DEUX ESPACES ICI', ' ', $row, $count);

} while ($count != 0);

$row = explode(' ', $row);

$row = array_map('trim', $row);

$process_id = $row[1];
$parent_id = $row[2];

if ($row[0] == 'METTRE LE NOM DE L'UTILISATEUR DU SITE' && $row[7] == '[php-cgi]' && $row[8] == '')
{
$j++;

echo 'pid '.$process_id.' ('.$parent_id.')';

if (!in_array($parent_id, $killed_parents))
{
exec('kill -9 '.$parent_id);

$killed_parents[] = $parent_id;

echo ' -- kill !';
}

echo "\n";
}
}

piop
22/05/2008, 16h44
J'ai essayer lançant le truc en dynamic, sa avais l'air de fonctionner, mais plus lent dans les temps de réponse

sinon pour le wrapper j'ai mit ça:
Code:
PHP_FCGI_CHILDREN=100
PHP_FCGI_MAX_REQUESTS=250
Sa évite la fuite mémoire. avec le 5000, j'ai exploser le record d'utilisation mémoire. et quand j'ai relancer sa a charger comme un cochon pour vider la mémoire.

bloggif
21/05/2008, 17h45
Oui effectivement par contre il faut bien garder la directive "FastCgiWrapper On" pour que ça fonctionne.

Je ne comprends pas vraiment l'intêret de charger fastcgi en dynamic, ça enlève tout l'intêret de la chose. As-tu une explication la dessus ?

piop
21/05/2008, 08h46
Yellow !
Je viens de relire la doc FastCGI de A a J

La directive
- "FastCgiConfig": application "dynamic"
- "FastCgiServer": application "static"

Ce sont donc deux mode de fonctionnement différent.

J'ai commenté le code suivant:
Code:
#FastCgiIpcDir /tmp/fcgi_ipc/
#FastCgiConfig -singleThreshold 100 -autoUpdate -idle-timeout 90 -pass-header HTTP_AUTHORIZATION
Et ça fonctionne très bien, fonctions APC chargé aussi.

bloggif
11/05/2008, 17h42
Dites moi, y'a des modérateurs sur le forum ou simplement quelques techniciens d'ovh qui postent des annonces de temps en temps ?

Shaye
07/05/2008, 17h43
Et surtout le mettre dans la section "how-to"

bloggif
07/05/2008, 15h34
Je suis content que vos installs fonctionnent, le tuto n'aura pas servi à rien !

Si un modérateur passe par là, il faudrait modifier le titre du post comme ça :

Tuto : Installation FastCGI + APC sur R2 Gentoo 32/64 bits

piop
07/05/2008, 14h28
Citation Envoyé par bloggif
Ca n'a pas fonctionné quand tu l'as fait ? Ou c'est une préférence que d'avoir utiliser une variable pour stocker le chemin vers la config de PHP ?
Une préférence personnelle
Citation Envoyé par bloggif
Sinon, quand ça marche, les processus restent en mémoire. Donc les requêtes sont servies beaucoup plus rapidement.

Tu peux définir le nombre de processus dans les options de "FastCgiServer" (-processes) mais personnellement je te conseille de le laisser à "1" car sinon tu te retrouves avec toutes les pages cachées dans chaque processus (que des clones) et donc la mémoire utilisée pour rien... De plus l'upload progress ne marchera pas.

Vaut mieux jouer sur la variable "PHP_FCGI_CHILDREN" qui définie combien d'enfants du processus "père" peut lancer PHP. Plus tu as de visiteurs et/ou tes requêtes durent longtemps, plus il faut augmenter cette variable (perso elle est à 128).

"PHP_FCGI_MAX_REQUESTS" permet de spécifier le nombre de requêtes auquel peut répondre un processus "fils". Il faut le définir car ça évite les fuites de mémoire. Quand un processus "fils" à répondu à son nombre maximal de requête, il est détruit puis un nouveau processus "fils" est relancé par le "père".

J'espère que c'est clair :-S
Très clair (pour moi)
Je te remercie des infos supplémentaire. Je me posais justement la question

Edit: au faite tu peut modifier le "32 bits" du titre. je suis sur une 64

javacup
07/05/2008, 13h28
Merci Bloggif de m'avoir repondu aussi vite,

J'ai pu finalement faire mes install, c'est tous simplement quand le composant il fait 2mo et que j'utilise (transfert+installation) et donc le temps d'execution etait trop long et ca finissais en page blanche ou deconnection de l'interface admin, j'ai pus transferer en ftp puis faire mon install correctement quoique ca me laisse un peu en doute parceque sur mon 90plan ca passe nickel via (transfert+installation) et pourtant le temps d'execution des script est de 30 et sur le dedie je l'avais mis en 60

Sinon le probleme ne venait pas du tout de fastcgi

bloggif
07/05/2008, 12h33
Salut javacup,

Pour le message dans ton log, il me semble que c'est tout à fait normal, je l'ai aussi depuis le début.

En ce qui concerne joomla, je t'avoue ne pas connaitre. J'ai donc regardé sur google ce que c'était. Etant donné qu'il s'agit d'un cms, le code de ces plates-formes toutes faites n'est pas toujours formidable. Parfois, avec FastCGI, certaines erreurs PHP sont renvoyées dans ton "error_log", y-a-t-il quelque chose de marqué ?

Comme ça, mais c'est peut-être une betise, je dirais que c'est une histoire de droits. Etant donné que c'est le module FastCGI qui execute PHP, il faut que celui-ci ait les droits pour écrire sur le serveur.

Je vais regarder si je trouve une info mais mes connaissances en Linux sont très restreintes.

javacup
07/05/2008, 11h49
Bonjour et merci pour ce tutos,

Je viens de tester la release2 avec apc ca marche nikel mais sur joomla l'installation des composant ne se fait pas et sur mes log j' ai un msg :

[warn] FastCGI: server "/home/****/cgi-bin/php-wrap" (uid 1000, gid 100) started (pid 3958)
j'y suis depuis ce matin rien à faire quand un composant veux creer des dossier et les chmoder et bien l'installation bloque et pourtant ca marche nickel sur le local release1, 90plan

Merci d'avance pour ton aide

bloggif
07/05/2008, 11h15
Oui, pour l'installation d'APC, j'ai utilisé les liens symboliques car lors de beaucoup d'installation de modules PHP ces liens sont nécessaires. Ca évite de les refaire à chaque fois.


ln -s /usr/local/php5/bin/phpize /bin/phpize
ln -s /usr/local/php5/bin/php-config /bin/php-config
ln -s /usr/local/php5/bin/pear /bin/pear
ln -s /usr/local/php5/bin/pecl /bin/pecl


Ca n'a pas fonctionné quand tu l'as fait ? Ou c'est une préférence que d'avoir utiliser une variable pour stocker le chemin vers la config de PHP ?

Sinon, quand ça marche, les processus restent en mémoire. Donc les requêtes sont servies beaucoup plus rapidement.

Tu peux définir le nombre de processus dans les options de "FastCgiServer" (-processes) mais personnellement je te conseille de le laisser à "1" car sinon tu te retrouves avec toutes les pages cachées dans chaque processus (que des clones) et donc la mémoire utilisée pour rien... De plus l'upload progress ne marchera pas.

Vaut mieux jouer sur la variable "PHP_FCGI_CHILDREN" qui définie combien d'enfants du processus "père" peut lancer PHP. Plus tu as de visiteurs et/ou tes requêtes durent longtemps, plus il faut augmenter cette variable (perso elle est à 128).

"PHP_FCGI_MAX_REQUESTS" permet de spécifier le nombre de requêtes auquel peut répondre un processus "fils". Il faut le définir car ça évite les fuites de mémoire. Quand un processus "fils" à répondu à son nombre maximal de requête, il est détruit puis un nouveau processus "fils" est relancé par le "père".

J'espère que c'est clair :-S

piop
07/05/2008, 00h52
Par contre j'ai fait plus ça pour l'apc:
Code:
PHP=/usr/local/php5
$PHP/bin/phpize
./configure --with-php-config=$PHP/bin/php-config && make
make install
Quand sa marche il y a une vingtaine de "/usr/local/php5/bin/php" qui tourne en permanence ?

N.B. j'ai réglé mon pb de duplicate header 'status' fastcgi

bloggif
06/05/2008, 21h57
Non en fait c'est ce que j'avais cru aussi au tout début.

APC ne fonctionne pas réellement, tu verras avec la page d'admin que les pages cachées, la mémoire utilisée etc, n'évoluent pas.

En fait c'est assez simple à comprendre : php étant executé en simple CGI, le processus meurt entre chaque nouvel appel, du coup, rien ne reste en mémoire et l'utilisation de APC ne peut se faire correctement.

piop
06/05/2008, 21h36
D'après ce que je vois apc marche sans le fastcgi

bloggif
06/05/2008, 21h20
Il me semble qu'il y a un moyen de caché ces erreurs pour qu'elle ne fassent pas d'erreurs 500. Je vais rechercher comment faire, je crois qu'il faut mettre un @ quelque part dans le fichier php-wrap.

piop
06/05/2008, 21h10
C'est que j'avais compris avec google...

Le hic, c'est que je ne peu le modifier (code source modulaire et trop gros), et que les "clients" ont des erreur 500

bloggif
06/05/2008, 21h03
Voila, j'ai refait la modif dans le tuto.

Les erreurs que tu as dans ton fichiers "error_log" sont souvent des erreurs dans le code des pages PHP.

En l'occurence, tu dois avoir une page qui renvoie un header en doublon.

C'est une peu le prob (qui n'en est pas vraiment un) avec FastCGI, chaque erreur PHP sera reportée dans ton fichier "error_log". Parfois celles-ci nécessitent d'être corrigées, d'autres fois ce sont des erreurs "obligatoires" dûes aux fonctions PHP (si si, ça arrive).

piop
06/05/2008, 20h53
Cette commande ne marche pas
Code:
make top_dir=/usr/local/apache
Ta précédente version en modifiant le fichier makefile elle oui

Sinon, j'ai du rewrite un peu partout...
dans le error log d'apache:
Code:
[Tue May 06 20:38:45 2008] [error] [client x.x.x.x] FastCGI: comm with server "/home/xxxx/cgi-bin/php-wrap" aborted: error parsing headers: duplicate header 'Status'
Marche de temps en temps correctement, c'est balo

bloggif
06/05/2008, 20h44
Oui, c'est souvent des petites conneries...

Si tu as le moindre problème lorsque tu suis le tuto, n'hésite pas à rapporter l'erreur, histoire d'avoir un tuto final fiable.

piop
06/05/2008, 20h04
Boarf, c'étais tout con, comme dab ^^

Merci messieurs, je remet mon gros nez dedans

Shaye
06/05/2008, 19h41
Savoir lire un INSTALL bloggif
En tout cas pas mal le how to

bloggif
06/05/2008, 19h40
Ahh je crois avoir trouvé !
Tu fais ça avant le make :

cp Makefile.AP2 Makefile

Désolé, c'était un oublie de ma part, je le rajoute de suite !

Shaye
06/05/2008, 19h36
C'est clair bloggif, il manque le makefile
Donc sans makefile il compile rien make.

Ps : Ou alors érreur de la part de piop



*** Apache FastCGI Module Installation ***


See docs/mod_fastcgi.html for configuration information.

This module is maintained at http://www.fastcgi.com.

See the web page for mailing list information.


*NIX
====

$ cd
$ cp Makefile.AP2 Makefile
$ make
$ make install

If your Apache2 installation isn't in /usr/local/apache2, then
set the top_dir variable when running make (or edit the
Makefile), e.g.

$ make top_dir=/opt/httpd/2.0.40

Add an entry to httpd.conf like this:

LoadModule fastcgi_module modules/mod_fastcgi.so


WIN
===

To build mod_fastcgi as a project you'll need M$ VC++ 6.0 (the Makefile
hasn't been updated for AP2 support):

Open the mod_fastcgi project file with the VC++.

Edit the Project for your configuration (update the Preprocessor
and the Link paths). The default assumes a complete Apache2
installation in /Apache2.

Build mod_fastcgi.so.

Copy it to the Apache modules directory, e.g. /Apache2/modules.

Add an entry to httpd.conf like this:

LoadModule fastcgi_module modules/mod_fastcgi.so
On renomme le makefile.ap2 en makefile

bloggif
06/05/2008, 19h30
J'essais de trouver la solution avec mes modestes connaissances mais là...

Y'a pas un pro qui passe par ici qui peut nous aider ?

piop
06/05/2008, 19h20
Voila ce que j'ai dans le dossier et le résultat "make"
mod_fastcgi-2.4.6 # ls -lh
total 384K
-rw-rw-r-- 1 root root 36K Nov 13 13:26 CHANGES
-rw-rw-r-- 1 root root 6.9K Nov 18 2003 INSTALL
-rw-rw-r-- 1 root root 1.2K Aug 20 2002 INSTALL.AP2
-rw-rw-r-- 1 root root 360 May 6 14:42 Makefile.AP2
-rw-rw-r-- 1 root root 252 May 27 1998 Makefile.libdir
-rw-rw-r-- 1 root root 1.4K Aug 16 2000 Makefile.tmpl
-rw-rw-r-- 1 root root 1.3K Nov 18 2003 README
drwxrwsr-x 2 root root 4.0K Nov 13 13:28 Win32
drwxrwsr-x 2 root root 4.0K Nov 13 13:28 debian
drwxrwsr-x 2 root root 4.0K Nov 13 13:28 docs
-rw-rw-r-- 1 root root 25K Sep 23 2007 fcgi.h
-rw-rw-r-- 1 root root 13K Feb 4 2003 fcgi_buf.c
-rw-rw-r-- 1 root root 39K Oct 29 2007 fcgi_config.c
-rw-rw-r-- 1 root root 67K Apr 15 2004 fcgi_pm.c
-rw-rw-r-- 1 root root 20K Feb 3 2003 fcgi_protocol.c
-rw-rw-r-- 1 root root 2.8K Feb 9 1999 fcgi_protocol.h
-rw-rw-r-- 1 root root 15K Sep 23 2007 fcgi_util.c
-rw-rw-r-- 1 root root 89K Nov 13 00:00 mod_fastcgi.c
-rw-rw-r-- 1 root root 8.4K Nov 13 13:26 mod_fastcgi.h
-rw-rw-r-- 1 root root 307 Jul 29 2002 modules.mk
mod_fastcgi-2.4.6 # make
make: *** No targets specified and no makefile found. Stop.
pas de configure

bloggif
06/05/2008, 18h52
Merci d'avoi rapporté ton erreur.
Peux-tu essayer "./configure && make" à la place de "make".
Ca donne quoi ?

piop
06/05/2008, 18h38
Citation Envoyé par bloggif
J'ai mis à jour le tuto.
Pourquoi avoir retiré eaccelerator, et mis APC a la place ? ... Edit: j'ai rien dit
A l'installation de "fastcgi", la commande "make" marche pas...

madrippeur
06/05/2008, 18h24
QUEL TRAVAIL !
(scusez je ne crie pas, je suis juste impressionné).
Joli travail, et franchement merci de partager !

bloggif
06/05/2008, 16h38
J'ai mis à jour le tuto.

bloggif
27/04/2008, 00h40
Oui, je viens d'accepter les messages, c'est tout bon là.

progent
26/04/2008, 19h45
Citation Envoyé par bloggif
progent > Est-ce que ça a fonctionné ? As-tu une messagerie MSN ou autre ?
Salut bloggif
Finalement, je l'ai mis hier (avant d'avoir ta réponse) dans /home/ et je n'avais plus l'erreur. Car le dossier dynamic s'effaçait automatiquement dans tmp.
Peux-tu accepter les mails dans ton profil ?

bloggif
26/04/2008, 19h15
progent > Est-ce que ça a fonctionné ? As-tu une messagerie MSN ou autre ?

bloggif
25/04/2008, 18h09
Salut progent,

Essaye avec un chmod 755 ou avec "FastCgiIpcDir /tmp".

De plus, je vais apporter des modifications au tuto car j'ai réussi à faire fonctionner APC ou eAccelerator complétement avec les pages d'admin qui fonctionnent !

progent
25/04/2008, 17h42
Bonjour bloggif et merci pour le tuto,
PUIS ON CREE LE DOSSIER "/tmp/fcgi_ipc" DANS LEQUEL ON CREE LE DOSSIER "/tmp/fcgi_ipc/dynamic"

CES DEUX DERNIERS DOSSIERS AVEC UN CHMOD 0777, USAGER "root" GROUPE "root"
ces dossieurs sont bien en 777 + chown root:root, mais j'ai l'erreur suivante en relançant Apache :

* Starting apache2 ...
Syntax error on line 239 of /usr/local/apache/conf/httpd.conf:
FastCgiIpcDir /tmp/fcgi_ipc: can't create dynamic directory "/tmp/fcgi_ipc/dynamic": access for server (uid -1, gid -1) failed: read not allowed
Sais-tu d'où ça peut venir ?

Merci.

bloggif
22/04/2008, 15h37
Citation Envoyé par s1tropez
10% à 50% c'est ce que j'avais vu sur les benchmarks d'un blog.
Il faut savoir que ça monte bien plus haut quand les pages sont en cache.
De l'ordre de 10x (ça c'est pour APC par contre).
Oui mais en fait c'est déjà le cas là, c'est une version cachée des pages qu'eAccelerator utilise, c'est grâce à ça que j'obtiens une vitesse d'execution améliorée des scripts.

Par contre, j'ai l'impression qu'il ne charge pas systematiquement la version cachée car, environ une fois sur 3, le temps d'execution redevient "normal"... Je pense que c'est parce qu'il va chercher souvent la version "originale" du script PHP sur le disque...

Pour ton install, n'hésite pas si tu as des soucis !

s1tropez
22/04/2008, 15h14
Ah bah quand même !
10% à 50% c'est ce que j'avais vu sur les benchmarks d'un blog.
Il faut savoir que ça monte bien plus haut quand les pages sont en cache.
De l'ordre de 10x (ça c'est pour APC par contre)

Je vais installer voir ce que ça donne.

bloggif
22/04/2008, 12h42
Bon j'ai fais des tests avec et sans eAccelerator et... y'a pas photo ! Je gagne entre 10 et 50% sur la vitesse d'execution des scripts quand eAccelerator est activé !

Ce qui est très étrange, c'est que sur phpinfo() ou sur la page "control.php" (founie dans le package d'eAccelerator), aucune n'indique un nombre de pages cachées supérieur à 1 (seule la page courante semble être prise en compte). Ceci n'a que peu d'importance car j'ai vérifié dans le répertoire temporaire d'eAccelerator et les pages d'opcodes sont bien présentent. Ceci dit, c'est vrai qu'il serait mieux de pouvoir voir en temps réel la liste des pages cachées...


Par contre, au niveau du module FastCGI d'apache, je ne sais pas comment tester son efficacité. J'ai essayé de "switcher" entre suPHP et FastCGI pour essayer de voir une différence mais je ne vois rien de flagrant... Je suis un peu surpris car j'avais lu qu'un passage par FastCGI pouvait faire gagner 15 fois plus de rapidité.
D'autre part, le dossier (dans /tmp) réservé au module FastCGI d'apache est toujours vide, je me demande si c'est bien normal ça...


Je précise que le module FastCGI d'apache n'est pas nécessaire au fonctionnement d'eAccelerator, seul le module FastCGI de PHP est indispensable.

bloggif
21/04/2008, 15h52
Alors en fait c'est un peu la zone d'ombre ce eAccelerator :

Quand on l'installe sans avoir activé FastCGI, il se mets automatiquement en - cache enabled "false" - dans phpinfo quelque soit la configuration passée dans php.ini.

Dès qu'on installe FastCGI, il s'active, du moins dans le phpinfo, il passe sur - cache enabled "true" - etc. Le seul hic, c'est que la page qui permet d'administrer le module d'eAccelerator, ne reporte aucune page cachée (seulement la page courante) mais là je ne m'y suis pas fié, j'ai fais quelques tests pour calculer le temps d'execution avec et sans eAccelerator. Les résultats ne sont pas tranchés mais à priori, il y a une amélioration de la vitesse d'execution des scripts. Autre chose, ce qui me fais dire que le module fonctionne bien, c'est qu'il y a des fichiers dans le répertoire temporaire réservé pour eAccelerator. J'imagine que c'est bon signe :-p

Pour APC, je l''avais également installé pour faire un upload progress qui n'avait pas marché, je n'ai pas encore eu le temps de le tester vraiment avec FastCGI sauf pour constater qu'ACP aussi n'affiche pas les pages cachées dans son espace d'administration. Est-ce que lui aussi marche de manière transparente avec une admin qui déconne, ça je ne sais pas :S

Et oui... J'ai fais direct les tests sur mon serveur en prod lol, avec 100 connectés dessus... J'ai procédé par étape et passé je ne sais combien d'heures dessus ! Le mérite c'est que ça me permet d'apprendre en même temps, mais c'est vraiment pas simple quand on n'y connais rien en administration ! Ca fait 2 semaines que j'ai mon dédié et j'ai tellement peur d'oublier les procédures que je me fais des mémo partout pour ne rien oublier lol

s1tropez
21/04/2008, 15h27
Merci beaucoup Bloggif pour le tutorial.
Dernière question qui n'en est pas vraiment une, mais bon ...
Ton EACCELERATOR fonctionne bien ?
Au niveau des performances, ça t'a donné quoi ?
Puis autre chose, tu as lancé l'install sur ton serveur en production ?

j'espère que mon APC fonctionnera ...

s1tropez
21/04/2008, 15h26
Merci beaucoup Bloggif pour le tutorial.
Dernière question qui n'en est pas vraiment une, mais bon ...
Ton EACCELERATOR fonctionne bien ?

j'espère que mon APC fonctionnera ...

bloggif
21/04/2008, 09h42
J'ai vraiment galéré pour arriver à bout de l'installation de FastCGI (surtout en module apache) sur ma sur Release 2 Gentoo 32 bits avec PHP 5, c'est pourquoi je vous publie le petit mémo que je me suis fait car je suis sûr, ça servira à d'autres...

Avec cette installation, on ne touche à rien des éléments d'origines, suPHP fonctionne toujours, on bascule juste les sites que l'on veut en FastCGI.

J'ai rédigé ce mémo de mémoire quelques temps après avoir réussi l'installation et donc, il y a peut-être des erreurs, n'hésitez pas à poser une question en cas de problème !

UPDATE!
Maintenant, le tuto n'explique plus l'installation d'eAccelerator mais seulement d'APC pour plusieurs raisons :

- APC sera natif sans PHP6 donc autant s'y habituer tout de suite.
- Niveau performance, ils sont quasi pareil
- APC gère en plus la progression de l'upload avec PHP
- APC permet de mettre des variables (pages, stats, etc) en cache et donc d'economiser encore plus les ressources. Pour ceux que ça interesse, j'ai fais une petite classe PHP très très simple et efficasse pour gérer les éléments à cacher simplement.



FAST CGI PHP

On édite le fichier "/usr/local/portage-ovh/dev-lang/php5-ovh/php5-ovh-5.2.5.ebuild"

En ajoutant au dessous de "--with-curl \" ces deux lignes :


--enable-fastcgi \
--enable-force-cgi-redirect \


On crée le ebuild sous SSL :

ebuild /usr/local/portage-ovh/dev-lang/php5-ovh/php5-ovh-5.2.5.ebuild digest

Puis on lance l'installation sous SSL :

emerge php5-ovh


FAST CGI APACHE

Sous SSL on tape :


cd /home
mkdir src
cd src
wget http://www.fastcgi.com/dist/mod_fastcgi-2.4.6.tar.gz
tar -zxvf mod_fastcgi-2.4.6.tar.gz
cd mod_fastcgi-2.4.6
cp Makefile.AP2 Makefile


Puis on édite le fichier "/home/src/mod_fastcgi-2.4.6/Makefile" et on modifie la ligne ci-dessous :


top_dir = /usr/local/apache


Puis on continue avec SSL :


make
make install


Ensuite, on édite le fichier "/usr/local/apache/conf/httpd.conf"

Et sous la ligne "LoadModule suphp_module modules/mod_suphp.so" on ajoute:

LoadModule fastcgi_module modules/mod_fastcgi.so

Puis on cherche ces 4 lignes toujours dans httpd.conf :


User nobody
Group nobody




Et en dessous de ces 4 lignes on ajoute :


FastCgiWrapper On


A la fin du fichier httpd.conf, on trouve le vhost du site sur lequel on veut FastCGI et on ajoute/commente de cette manière :


#AddHandler x-httpd-php5 .php
suPHP_Engine off

suPHP_Removehandler .php


FastCgiServer /home/VOTRE SITE/cgi-bin/php-wrap -user userDuSite -group users -processes 1 -idle-timeout 3600

AddHandler php-fastcgi .php
AddType application/x-httpd-php .php
Action php-fastcgi /cgi-bin/php-wrap


Puis on crée le dossier "/tmp/fcgi_ipc" dans lequel on crée le dossier "/tmp/fcgi_ipc/dynamic"

Ces deux derniers dossier avec un chmod 0777, usager "root" groupe "root"

Puis on crée le fichier "/home/VOTRE SITE/cgi-bin/php-wrap" avec ce contenu :


#!/bin/sh
PHP_FCGI_CHILDREN=8
export PHP_FCGI_CHILDREN
PHP_FCGI_MAX_REQUESTS=500
export PHP_FCGI_MAX_REQUESTS
exec /usr/local/php5/bin/php-cgi


Ce dernier fichier avec un chmod 0755, usager "USAGER DU SITE" groupe "users"

La variable PHP_FCGI_CHILDREN doit être configurée en fonction du traffic du site. Plus le nombre élevé, plus PHP peut traiter de requêtes en même temps (mais risque aussi d'augmenter le temps de traitement de chacune d'elle). Dans mon cas, relever cette valeur était indispensable car, sinon, la file d'attente des requêtes devient tellement importante que les délais de traitement sont intolérables (l'utilisateur attend qu'un processus fils soit dispo pendant X min/sec).



On peut redemmarer apache pour prendre en compte les modifications.


APC

Sous SSL on tape :


ln -s /usr/local/php5/bin/phpize /bin/phpize
ln -s /usr/local/php5/bin/php-config /bin/php-config
ln -s /usr/local/php5/bin/pear /bin/pear
ln -s /usr/local/php5/bin/pecl /bin/pecl

cd /home
mkdir src
cd src
wget http://pecl.php.net/get/APC-3.0.18.tgz

tar xvzf APC-3.0.18.tgz

cd APC-3.0.18
phpize
./configure && make
make install


Puis dans "/usr/local/lib/php5/php.ini" on ajoute/modifie :


extension_dir = "/usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613/"

extension=apc.so

apc.enabled = 1
apc.rfc1867 = on