IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Zend Framework PHP Discussion :

Compatibilité entre ZF1 et php > 5.6


Sujet :

Zend Framework PHP

  1. #1
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 99
    Par défaut Compatibilité entre ZF1 et php > 5.6
    Bonjour à tous,

    La problématique est assez simple, j'ai une application développé en ZF 1.7 et j'ai besoin de mettre mon serveur (Suse Linux Enterprise Server) à jour.
    Si je prends le code tel qu'il est écrit aujourd'hui, je suis entièrement satisfait du Framework et de ses performances:

    - ZF 1.7
    - Apache 2.2
    - php 5.2
    - MySQL 5.0
    - ExtJS 3.0
    - SLES 11.2
    --> OK

    Après mise à jour de l'OS du serveur vers SLES 12, les performances du site le rende inutilisable
    - ZF 1.7
    - Apache 2.4
    - php 5.6
    - MySQL / maria_db 10.0.11
    - ExtJS 3.0
    - SLES 12
    --> PAS OK

    J'espérais qu'un update de la version du ZF améliorait les choses, mais il n'en ait rien, la version ZF 12 ne change rien au problème:
    - ZF 1.12
    - Apache 2.4
    - php 5.6
    - MySQL / maria_db 10.0.11
    - ExtJS 3.0
    - SLES 12
    --> PAS OK

    Pour peaufiner un peu les tests j'ai également tester la version ZF 1.12 sur mon serveur actuel, cela fonctionne correctement, exactement comme pour 1.7
    - ZF 1.12
    - Apache 2.2
    - php 5.2
    - MySQL 5.0
    - ExtJS 3.0
    - SLES 11.2
    --> OK

    Une mise à jour vers la version 2.XX de ZF génère un tel travail qu'elle n'est pas envisageable pour le moment, et au pire serait au profit de symphony.( Alors qu'en terme de fonctionnalités le ZF actuel nous convient totalement).

    Est-ce qu'il y a une contre indication à utiliser le ZF 1.XX avec php > 5.6 ou (Apache, MySQL) ?

    Si ce n'est pas le cas, comment pouvons nous résoudre le problème?
    - Changement de structure d'une partie du code actuel (toujours en ZF1) ?
    - Changer les règles d'utilisation du cache ?
    - Changer un paramétrage du comportement de l'application par défaut?
    - Changer le connecteur pour la base de donnée?

    D'avance merci pour vos retours, que ce soit des expériences passées ou des points particuliers à résoudre.

    Bien à vous.

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 502
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 502
    Par défaut
    Haaaaa ZF , que j'ai aimé développer avec ce framework
    Donc d'après la doc http://framework.zend.com/manual/1.1...roduction.html , il n'y a pas de restriction avec ZF 1.12.
    Par contre peut-être n'as-tu pas activer tout ce dont il a besoin sur ton nouveau serveur.

    Une erreur serait plus parlante pour nous.

    MaitrePylos

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 99
    Par défaut
    Merci pour ta réponse,

    Une erreur... en fait il n'y en a pas.
    Cela fonctionne (On ne peut pas parler d'incompatibilité de ZF1 avec php > 5.4)... Mais c'est inutilisable tellement c'est lent !
    Une opération assez simple qui permet d'initier des filtres (12n d'Ajax Request avec requêtes SQL derrière) passe de moins de 3s à 46s !

    Pour préciser un peu ma problématique, je peux ajouter que les utilisateurs sont moins d'une 50n et sur un réseau local. Une 20n utilisent l'application 40% de leur temps de travail, il faut impérativement que ce soit réactif.

  4. #4
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 502
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 502
    Par défaut
    Je remarque que le changement de serveur, il y a aussi un changement de db (MySQL vers MariaDb), peut-on voir le log mysql_slow_log ?

  5. #5
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 99
    Par défaut
    Bonjour MaitrePylos,

    Merci pour la réponse.

    J'ai activé le log pour les requêtes longues sur le nouveau serveur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    MariaDB [(none)]> 
    MariaDB [(none)]> SET GLOBAL slow_query_log_file='/var/log/mysql/mysql.slow.log2';
    Query OK, 0 rows affected (0.01 sec)
     
    MariaDB [(none)]> SET GLOBAL long_query_time=1;
    Query OK, 0 rows affected (0.00 sec)
     
    MariaDB [(none)]> 
    MariaDB [(none)]> SET GLOBAL slow_query_log=1;
    Query OK, 0 rows affected (0.00 sec)
    Même avec le long_query_time à 1 le nombre de requêtes est très faible. Ce qui est surtout intéressant dans mon cas, c'est que rien n'apparait lors de l'initialisation des filtres évoquée au dessus.
    --> Il semble donc que le problème vienne surtout du cumul des Ajax-Request.

    Est-ce que je peux t'envoyer le controller (appelé 24x lors de l'initialisation des filtres) et l'index.php du site pour voir si il y a quelque chose de correct pour php5.2 qu'il ne le serait pas pour php > 5.4 ?

  6. #6
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 502
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 502
    Par défaut
    Envoie toujours mais j'ai des doutes !

  7. #7
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 99
    Par défaut
    C'est super sympa d'essayer, merci.

    Tu trouveras donc en pièces jointes les 2 fichiers php qui me permette de construire le controller (l'action en cause est: setsearchfilterAction) et le fichier d'index où j'initialise les paramètres pour Zend.

    Pour infos, voici le code côté ExtJS qui est appelé une 20n de fois pour initier les filtres:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    	/**
    	 * This function permit to set a filter for the
    	 * search request. (this.specMode = search dans notre cas)
    	 */
    	,setNewFilter		:	function(sGroup, sName, sValue, sMode)
    	{
    		// setsearchfilterAction
    		Ext.Ajax.request(
    		{
    			url		:	this.specMode + '/setsearchfilter?ajax=1',
    			params		:	{
    				group		:	sGroup
    				,name		:	sName
    				,value		:	sValue
    				,mode		:	sMode
    				,loadMngtModule	:	this.sLoadMngtModule
    			}
    			,scope		:	this
    			,success	: 	function(_result, _request)
    			{
    				var resp = Ext.util.JSON.decode(_result.responseText);
    				if (resp.success == true)
    				{
    					this.searchFiltersGrid.getStore().load();	
    				} else
    					displayError(_result, _request);
    			}
    			,failure	:	displayError
    		});	// eof Ajax Request
    Fichiers attachés Fichiers attachés

  8. #8
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 502
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 502
    Par défaut
    Dans ton code tu initialise des log, on peux les voirs ?

  9. #9
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 99
    Par défaut
    Ce sont uniquement des logs d'erreurs, rien n'apparait lors des différents tests si tout ce passe correctement.

  10. #10
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 502
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 502
    Par défaut
    Tu es en prod, j'espère que non.

    Peux-tu me fournir le .htaccess et application.ini

    As tu vérifier si le php.ini de ron premier serveur est identique.
    As-tu des VHOST dans le premier serveur, les as-tu migrer ?

  11. #11
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 99
    Par défaut
    L'application est en prod sur un Intranet.
    --> Quel est le problème?

    En pièce jointe les fichiers .ini qui concerne directement Zend et le .htaccess.
    Fichiers attachés Fichiers attachés

  12. #12
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 502
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 502
    Par défaut
    Il faudrait activer l'affichage des erreurs pour voir ce que cela retourne.

  13. #13
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 99
    Par défaut
    Je viens de regarder de plus près les fichiers php.ini, je l'avais modifier pour avoir une application fonctionnelle mais en regardant de plus près il y a certainement des choses à peaufiner, je vais commencer par travailler sur ce point. (Juste pour infos je te mets le diff en pièce jointe).
    Pour répondre à ta question que je n'avais pas vu: Pas d'utilisation de vhost.
    Pour l'activation des erreurs, tu parles de Zend ?

    Merci pour le temps passé.
    Fichiers attachés Fichiers attachés

  14. #14
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 502
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 502
    Par défaut
    Pour les erreurs oui pour Zend et PHP, comme ça on voit tout de suite s'il y a quelque chose qui bug

  15. #15
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 99
    Par défaut
    A mon grand regret je n'ai rien trouvé dans le fichier php.ini qui pouvait aider à la résolution du problème.

    Pour les logs php, j'ai mis le niveau de log à E_ALL, mais cela ne me renvoit rien lorsque je fait les tests sur le module de filtres.
    La seule chose à creuser est le problème de cache à l'initialisation d'Apache:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    [Thu Feb 19 14:19:44.051904 2015] [mpm_prefork:notice] [pid 8250] AH00170: caught SIGWINCH, shutting down gracefully
    [Thu Feb 19 14:19:44.161445 2015] [ssl:warn] [pid 8327] AH01873: Init: Session Cache is not configured [hint: SSLSessionCache]
    [Thu Feb 19 14:19:44.171437 2015] [mpm_prefork:notice] [pid 8327] AH00163: Apache/2.4.10 (Linux/SUSE) OpenSSL/1.0.1i-fips PHP/5.6.3 configured -- resuming normal operations
    [Thu Feb 19 14:19:44.171464 2015] [core:notice] [pid 8327] AH00094: Command line: '/usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf -D SYSTEMD -D FOREGROUND'
    Pour Zend, je coince un peu sur la sortie de log, car en fait je l'utilise uniquement pour catcher les erreurs que je récupère de l'application. Alors que si je comprends bien ta demande je devrais pouvoir avoir des logs directement générés par le Framework?

  16. #16
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 99
    Par défaut
    Salut,

    Retour de congés et les problèmes ne se sont pas résolus d'eux même (on a le droit de réver !!!).

    Lors des investigations, je pense avoir avancé sur l'origine du problème, dans le répertoire cache de l'application pour Zend, j'ai un nombre de fichiers qui augmente de façon exponentiel.
    Sur le serveur actuel, en php 5.2, après chargement de la page principale, il y a 39 fichiers de cache créés et il n'y a aucune évolution lorsque j'utilise le site.
    Sur le nouveau serveur, en php 5.6, il y a 33 fichiers après le 1er chargement, mais après, pour chaque actions des fichiers sont ajoutés. Lorsque je charge les filtres, je me retrouve avec 1355 fichiers et si je reset les filtres cela passe à 2500 fichiers. En fait à chaque action sur le site, de nouveaux fichiers de caches sont écrits en grande quantité.
    Je pense donc que le problème vient de l'écriture de ces fichiers de cache. Maintenant, il me faut trouver pourquoi Zend écrit ses fichiers avec la nouvelle version de php alors qu'il ne le fait pas avec l'ancienne.

    Merci pour votre aide.

  17. #17
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    306
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 306
    Par défaut
    Bonjour,
    As-tu trouvé ??

  18. #18
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 99
    Par défaut
    Bonjour,

    Oui le problème venait du chiffrement utilisé pour le cache.
    La clef par défaut avec la nouvelle version de php était en 256, alors que Zend 1.7 travaille nativement avec du 128.

    Si cela peut répondre à ton problème, revient vers moi, j'irai rechercher le bout de code que nous avions patché.

  19. #19
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    306
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 306
    Par défaut
    Super merci pour ta réponse.
    Je n'ai pas encore eu le problème car je n'ai pas encore commencé la migration que je vais faire d'ici peu.
    Si j'ai des soucis, je te contacte.
    Merci encore.
    Eric

Discussions similaires

  1. Compatibilité entre Oracle, PHP
    Par tittoto dans le forum Oracle
    Réponses: 5
    Dernier message: 06/10/2006, 17h54
  2. [FB] Compatibilité entre deux logiciels et le SGBD
    Par Benjamin GAGNEUX dans le forum Débuter
    Réponses: 13
    Dernier message: 28/01/2005, 16h30
  3. Problèmes de compatibilité entre sdk 9.0c et geforce 2/4
    Par Francky033 dans le forum DirectX
    Réponses: 2
    Dernier message: 01/10/2004, 14h22
  4. compatibilité entre sql server 7 et analysis service sql2000
    Par jeremie dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 29/03/2004, 15h08
  5. compatibilite entre omondo et cvs
    Par ed_hunter dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 03/11/2003, 16h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo