Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 27/04/2020, à 11:47

DonutMan75

[RESOLU] Installation de PHP 7-4-5 pour Apache 2.4 ?

Bonjour à tous,
j'ai un serveur Apache compilé manuellement en MPM Event et je souhaite intégrer l'utilisation de PHP.
La documentation de PHP indique qu'il faut utiliser l'option de compilation FastCGI.

Je rencontre des erreurs avec make test, dont je ne sais ni d'où elles proviennent ni si elles sont critiques ou pas.. Avez-vous déjà rencontré ces soucis ?

Je tente tout d'abord configure, l'option enable-fpm me permet d'activer le FastCGI Process Manager :

$ ./configure --prefix=/usr/local/php745-fpm --enable-fpm
(...)
Generating files
configure: patching main/php_config.h.in
configure: creating ./config.status
creating main/internal_functions.c
creating main/internal_functions_cli.c
config.status: creating main/build-defs.h
config.status: creating scripts/phpize
config.status: creating scripts/man1/phpize.1
config.status: creating scripts/php-config
config.status: creating scripts/man1/php-config.1
config.status: creating sapi/cli/php.1
config.status: creating sapi/fpm/php-fpm.conf
config.status: creating sapi/fpm/www.conf
config.status: creating sapi/fpm/init.d.php-fpm
config.status: creating sapi/fpm/php-fpm.service
config.status: creating sapi/fpm/php-fpm.8
config.status: creating sapi/fpm/status.html
config.status: creating sapi/phpdbg/phpdbg.1
config.status: creating sapi/cgi/php-cgi.1
config.status: creating ext/phar/phar.1
config.status: creating ext/phar/phar.phar.1
config.status: creating main/php_config.h
config.status: main/php_config.h is unchanged
config.status: executing default commands

+--------------------------------------------------------------------+
| License:                                                           |
| This software is subject to the PHP License, available in this     |
| distribution in the file LICENSE. By continuing this installation  |
| process, you are bound by the terms of this license agreement.     |
| If you do not agree with the terms of this license, you must abort |
| the installation process at this point.                            |
+--------------------------------------------------------------------+

Thank you for using PHP.

Je lance ensuite la compilation, qui ne génère aucune erreur particulière

$ make
(...)
Build complete.
Don't forget to run 'make test'.

make me suggère de lanccer make test avant le traditionnel sudo make install

$ make test
(...)
=====================================================================
FAILED TEST SUMMARY
---------------------------------------------------------------------
Test DOMDocument::load() with LIBXML_DTDLOAD option [ext/dom/tests/DOMDocument_load_variation1.phpt]
Test DOMDocument::load() with LIBXML_DTDVALID option [ext/dom/tests/DOMDocument_load_variation2.phpt]
Test DOMDocument::load() with LIBXML_DTDATTR, LIBXML_NOCDATA, LIBXML_NOENT, LIBXML_NOBLANKS [ext/dom/tests/DOMDocument_load_variation4.phpt]
DOMDocument::validate() should validate an external DTD declaration [ext/dom/tests/DOMDocument_validate_external_dtd.phpt]
Bug #37456 (DOMElement->setAttribute() loops forever) [ext/dom/tests/bug37456.phpt]
Bug #43364 (recursive xincludes don't remove internal xml nodes properly) [ext/dom/tests/bug43364.phpt]
Bug #67081 DOMDocumentType->internalSubset returns entire DOCTYPE tag, not only the subset [ext/dom/tests/bug67081.phpt]
Bug #61367: open_basedir bypass in libxml RSHUTDOWN: read test [ext/libxml/tests/bug61367-read.phpt]
libxml_disable_entity_loader() [ext/libxml/tests/libxml_disable_entity_loader.phpt]
libxml_set_external_entity_loader() variation: restore original handler; returning NULL [ext/libxml/tests/libxml_set_external_entity_loader_variation2.phpt]
XMLReader: libxml2 XML Reader, DTD [ext/xmlreader/tests/008.phpt]
XMLReader: accessing empty and non existing attributes [ext/xmlreader/tests/012.phpt]
=====================================================================

=====================================================================
WARNED TEST SUMMARY
---------------------------------------------------------------------
FPM: Buffered worker output decorated log with multiple continuous messages (stdout/stderr mixed) [sapi/fpm/tests/log-bwd-multiple-msgs-stdout-stderr.phpt] (warn: XFAIL section but test passes)
FPM: Buffered worker output decorated log with multiple continuous messages [sapi/fpm/tests/log-bwd-multiple-msgs.phpt] (warn: XFAIL section but test passes)
=====================================================================

You may have found a problem in PHP.
This report can be automatically sent to the PHP QA team at
http://qa.php.net/reports and http://news.php.net/php.qa.reports
This gives us a better understanding of PHP's behavior.
If you don't want to send the report immediately you can choose

Le rapport de test généré indique que l'essentiel des tests effectués sont validés. 2 lèvent un warning, 28 ont échoués de façon attendue (??) et 10 ont foiré. Dois-je m'en offusquer ?

TEST RESULT SUMMARY
---------------------------------------------------------------------
Exts skipped    :   53
Exts tested     :   20
---------------------------------------------------------------------

Number of tests : 15484             10096
Tests skipped   : 5388 ( 34.8%) --------
Tests warned    :    2 (  0.0%) (  0.0%)
Tests failed    :   10 (  0.1%) (  0.1%)
Expected fail   :   28 (  0.2%) (  0.3%)
Tests passed    : 10056 ( 64.9%) ( 99.6%)
---------------------------------------------------------------------

Merci d'avance pour toute aide ou idée smile

Donut

Dernière modification par DonutMan75 (Le 27/04/2020, à 15:21)

Hors ligne

#2 Le 27/04/2020, à 14:51

bruno

Re : [RESOLU] Installation de PHP 7-4-5 pour Apache 2.4 ?

Il n'y a pas eu d'erreur à la compilation, donc je ne vois pas de problème. Il ne te reste plus qu'à vérifier que PHP-FPM fonctionne.

Mais c'est quoi l'interêt de compiler apache2 et PHP-FPM ?

#3 Le 27/04/2020, à 15:20

DonutMan75

Re : [RESOLU] Installation de PHP 7-4-5 pour Apache 2.4 ?

Hello bruno,
merci pour ton retour !
Oui php-fpm semble fonctionner correctement (du moins phpinfo() renvoie la page php d'info).

L’intérêt est pour moi avant tout didactique : j'essaie de construire un serveur Apache/PHP/MySQL à partir des sources uniquement de tout ce petit monde.
Trois MPM sont possible pour Apache2.4 : Prefork, Worker et Event. C'est ce dernier qui est utilisé par défaut lors de la compilation.

http://httpd.apache.org/docs/current/mpm.html a écrit :

En pratique, cela signifie que le MPM par défaut sera presque toujours event car tous les systèmes d'exploitation modernes satisfont aux deux conditions.

Pour ajouter PHP sur du Apache MPM-Event, il est conseillé d'utilisé PHP-FPM. Dans ce contexte, et si j'ai bien compris, on sépare le traitement des scripts php (qui est confié au serveur php-fpm) du serveur Apache.

J'ignore comment un serveur comme LAMP associe Apache à Php.

Merci pour ton retour quoiqu'il en soit, je passe le fil à résolu

Donut

Hors ligne

#4 Le 27/04/2020, à 16:35

bruno

Re : [RESOLU] Installation de PHP 7-4-5 pour Apache 2.4 ?

Pas sur d’avoir compris pourquoi tu compiles…
Tu peux parfaitement utiliser Apache2 avec le MPM event et PHP-FPM à partir des paquets Ubuntu. Pour info :

sudo apt install apache2 php-fpm
sudo a2enmod event

Sinon, oui tu as compris, cela permet d'avoir des performances bien meilleures qu'avec le mod_php d'Apache et de bien séparer les processus et les utilisateurs (avec les pools).