Magento : Enlever Le Index.php De L'url

<p>Par d&eacute;faut, si lors de l'installation de Magento, vous n'avez pas coch&eacute; l'option rewrite_url, vos urls auront "index.php" juste apr&egrave;s le nom de domaine. Pour l'enlever, car ce n'est pas tr&egrave;s beau, il faut au pr&eacute;alable que mod_rewrite (un module Apache pour r&eacute;&eacute;crire les urls) soit install&eacute;.</p> <p>Une fois ce pr&eacute;requis rempli, vous allez dans System &gt; Configuration, puis sous Genral &gt; Web, dans la section Search Engine Optimization, pour la dropdown list mettez sur 'Yes'. Rafraichissez votre page administration et frontend.</p>

2017-02-15 13:02:03 0 Commentaires

Magento Désinstaller Un Module Manuellement

Il existe peu d'information pour désinstaller un module dans Magento, or il est préférable de la faire proprement.

Désintaller un module consiste à désactiver dans un premier temps le module et ensuite effacer les fichiers php, et les tables qui sont créée s'il y en a.

Commencez par désactiver le module

Regardez s'il n'a pas un script de création de table (il existe alors un répertoire sql au même niveau que /Helper ou /controllers)

Enlevez donc les tables correspondantes

la table Magento native core_resource peut contenir des informations des modules.

Effacer les fichiers dans app/code et app/design, /skin, /js

 

Par rapport à Prestashop, c'est vraiment pas top, Prestashop permet de désinstaller programmatiquement, inutile de s'emmerder avec toutes ces manipulations.

2017-02-14 10:02:20 0 Commentaires

Magento Comment Mettre Des Produits Sur La Homepage

<p>A la diff&eacute;rence des autres logiciels de ecommerce, avec Magento vous allez avoir du mal &agrave; mettre votre produit en page d'accueil, sans faire une manipulation bien particuli&egrave;re.</p> <h2>Afficher des produits d'une cat&eacute;gorie sur la page d'accueil</h2> <p>Allez sur la cat&eacute;gorie qui vous int&eacute;resse et regardez son ID vous en aurez besoin pour la suite.</p> <p>Allez dans CMS &gt; Pages &gt; Home</p> <p>Allez dans l'onglet Content et collez le bout de code suivant :</p> <pre class="language-markup"><code>{{block type="catalog/product_list" category_id="4" template="catalog/product/list.phtml"}}</code></pre> <p>&nbsp;Update&nbsp; !</p> <p>Due &agrave; une mise &agrave; jour de s&eacute;curit&eacute;, vous ne pouvez plus adopter cette m&eacute;thode (plus exactement la <a href="http://magento.stackexchange.com/questions/90354/show-products-of-a-category-on-home-page-in-magento-1-9-2-2">SUPEE-6788</a>), il faut toucher au xml du layout directement, donc dans la section Design de la page CMS, vous collez le bout de code suivant :</p> <pre class="language-markup">&nbsp;</pre> <p>&nbsp;</p> <p>&nbsp;</p>

2017-02-13 08:02:56 0 Commentaires

Optimiser Mysql Avec Mysqltuner

Une installation de base de Mysql n'est pas optimisé pour votre ou vos sites web.

Aussi après un certains temps de fonctionnement, une heure par exemple, vous devez commencer à régler les paramètres de Mysql pour que Mysql aille plus vite.

Nous allons nous aider d'un programme en Perl Mysqltuner, que vous allez télécharger depuis votre shell via la commande suivante :

$ wget http://mysqltuner.pl/ -O mysqltuner.pl

$ perl mysqltuner.pl

Au bout de quelques instants Mysqltuner va vous sortir un rapport avec des recommandation. Ce sont de réglages à faire dans votre fichier my.cnf qui est le fichier de configuration de Mysql.

Voici un exemple de rapport généré :

[!!] User '@localhost' is an anonymous account.
[!!] User '@ns35.ovh.net' is an anonymous account.
[!!] User '@localhost' has no password set.
[!!] User '@ns35.ovh.net' has no password set.
[!!] User 'root@127.0.0.1' has no password set.
[!!] User 'root@ns35.ovh.net' has no password set.
[!!] User '@localhost' has user name as password.
[!!] User '@ns35.ovh.net' has user name as password.
[!!] There is no basic password file list!

-------- CVE Security Recommendations --------------------------------------------------------------
[--] Skipped due to --cvefile option undefined

-------- Performance Metrics -----------------------------------------------------------------------
[--] Up for: 4d 12h 12m 30s (89M q [228.694 qps], 20M conn, TX: 582G, RX: 4G)
[--] Reads / Writes: 78% / 22%
[--] Binary logging is disabled
[--] Physical Memory     : 1.9G
[--] Max MySQL memory    : 449.2M
[--] Other process memory: 518.0M
[--] Total buffers: 34.0M global + 2.7M per thread (151 max threads)
[--] P_S Max memory usage: 0B
[--] Galera GCache Max memory usage: 0B
[OK] Maximum reached memory usage: 141.2M (7.12% of installed RAM)
[OK] Maximum possible memory usage: 449.2M (22.64% of installed RAM)
[OK] Overall possible memory usage with other process is compatible with memory available
[OK] Slow queries: 0% (22/89M)
[OK] Highest usage of available connections: 25% (39/151)
[OK] Aborted connections: 0.00%  (65/20403660)
[!!] name resolution is active : a reverse name resolution is made for each new connection and can reduce performance
[!!] Query cache is disabled
[OK] Sorts requiring temporary tables: 0% (1K temp sorts / 4M sorts)
[!!] Joins performed without indexes: 296569
[OK] Temporary tables created on disk: 9% (90K on disk / 958K total)
[!!] Thread cache is disabled
[!!] Table cache hit rate: 0% (64 open / 299K opened)
[OK] Open file limit used: 12% (127/1K)
[OK] Table locks acquired immediately: 99% (32M immediate / 32M locks)

 

  Remove Anonymous User accounts - there are 2 anonymous accounts.
    Set up a Password for user with the following SQL statement ( SET PASSWORD FOR 'user'@'SpecificDNSorIp' = PASSWORD('secure_password'); )
    Set up a Secure Password for user@host ( SET PASSWORD FOR 'user'@'SpecificDNSorIp' = PASSWORD('secure_password'); )
    Enable the slow query log to troubleshoot bad queries
    Configure your accounts with ip or subnets only, then update your configuration with skip-name-resolve=1
    Adjust your join queries to always utilize indexes
    Set thread_cache_size to 4 as a starting value
    Increase table_open_cache gradually to avoid file descriptor limits
    Read this before increasing table_open_cache over 64: http://bit.ly/1mi7c4C
    Beware that open_files_limit (1024) variable
    should be greater than table_open_cache (64)
Variables to adjust:
    query_cache_size (>= 8M)
    join_buffer_size (> 128.0K, or always use indexes with joins)
    thread_cache_size (start at 4)
    table_open_cache (> 64)
    innodb_file_per_table=ON
    innodb_log_file_size should be equals to 1/4 of buffer pool size (=2M) if possible.


Regardez les point d'exclamations, ce sont les point à travailler ! Mais tous les point n'ont pa s la même importance selon ce que vous recherchez. Moi je cherche la performance, voici ce que je regarde de ce rapport :

Ce qui saute aux yeux c'est query cache qui n'est pas activé !! Le cache stocke les requêtes qui sont les plus utilisée, afin de ne pas taper dans le moteur de base de données Mysql, mais sur un résultat déjà calculé donc on gagne du temps.

Voyons comment on peut soigner ce point :

Vous aurez remarqué qu'une des recommandations est de logger les requêtes lents via le slow query log. Pour ce faire, on va mettre en action le slow query log .

Ensuite nous allons donner une taille au cache de 8 Mo comme suggéré.

D'abord il faut se connecter à Mysql en ligne de commande.

Ensuite pour connaitre l'existence d'un query cache :

mysql > SHOW VARIABLES LIKE 'have_query_cache';

+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| have_query_cache | YES   |
+------------------+-------+

Selon la documentation officielle ce n'est pas parce que c'est à YES qu'il existe !

mysql> SHOW VARIABLES LIKE 'query_cache_size';

+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| query_cache_size | 0     |
+------------------+-------+

Enfin il existe mais est à zéro. Donnons lui une taille :

mysql> SET GLOBAL query_cache_size = 8000000;

 


+------------------+---------+
| Variable_name    | Value   |
+------------------+---------+
| query_cache_size | 7999488 |
+------------------+---------+

voilà c'est en place ! Attendre un petit peu suivant le traffic de votre site web.

 

Attention ! ceci est à faire dans le fichier my.cnf, sinon quand vous allez redémarrer mysql, ça va disparaitre. Voilci quelques valeur recommandées :

query_cache_type = 1 // pour activer le cache
query_cache_size = 256M
query_cache_limit = 2M
query_cache_strip_comments =1

 

 

 

 

2017-02-02 14:02:34 0 Commentaires

Les Sous Modules Dans Git

UPDATE :

N'utilisez pas les sous module GIT, ils sont d'un usage délicat, googlez le sujet, vous verrez des blogs qui votent contre. Préférez cloner dans un sous répertoire et ignorer ce sous-répertoire.

 

Lorsque vous développez un module pour Prestashop ou Magento, les fichiers se logent dans un sous répertoire de la solution. Si en même temps vous devez versionner la solution globale, et le module, mais que vous voulez gérer deux dépôts Git différent, pour pouvoir par exemple distribuer le module indépendamment plus tard, la solution qui s'offre est la gestion des sous-modules de git.

 

Vous avez votre module dans une répertoire quelconque, et vous avez déjà versionné les scripts.

Vous allez dans un sous-répertoire de la solution globale, et vous clonez le dépôt du module :

$ git clone git@github.com:gituser/module.git

 

2017-01-30 16:01:40 0 Commentaires

Configurer Les Log De Mysql Sous Linux

Pour connaitre les performances de votre base de données Mysql, il vous faut connaitres ses logs. Il y a trois fichiers log qui peuvent être généré avec Mysql:

Error log : le log des erreurs de mysql, utile souvent en développement

Query log : le log de toutes les requêtes SQL qui sont exécutée, utile lorsque vous êtes en production, pour pouvoir détecter où se produit un événement à problème.

Slow query log : le plus intéressant en situation normale, dans ce fichier sont loggées les requêtes non optimisées. C'est là que vous découvrirez sans doute qu'il faudra un index sur une colonne pour qu'une jointure se fasse plus rapidement.

 

Quel fichier éditer pour pouvoir logger ces informations? par défaut l'installation de Mysql ne configure pas ces fichiers de log.

Nous allons donc éditer le fichier my.cnf sous Linux.

Sous une distribution Debian, le fichier se trouve dans etc.

Pour le query log (general query log) :

Pour mysql version 5.1.29 et plus :

general_log_file = /path/to/query.log
general_log      = 1

Généralement vous pouvez mettre le query.log à /var/log/mysql/query.log

Pour le slow query log :

log_slow_queries = 1
slow_query_log_file = /path/to/slow-query-query.log

long_query_time = 2

log-queries-not-using-indexes

2016-11-23 08:11:28 0 Commentaires