web-dev-qa-db-fra.com

XAMPP sur Win7 trop lent

J'exécute XAMPP 1.7.1 sur Windows 7 Ultimate. Tout fonctionne (Apache et MySQL), sauf la vitesse.

Quand j'ouvre http: // localhost/ , je dois probablement attendre 1 à 3 secondes pour voir une page Web. À mon avis, il devrait être au plus quelques centaines de millisecondes.

Faits basiques:

  • en attendant de charger une page Web localhost, la barre d'état indique "En attente de localhost ..."
  • Le processeur est toujours inactif (pas d'activité accrue pendant le chargement)
  • sur localhost ne nécessite pas de scripts PHP, les problèmes surviennent lorsqu'il existe un simple phpinfo (), même s'il existe de longs scripts lourds.
  • désactiver le serveur MySQL n'affecte pas la vitesse
  • mon PC: AMD Turion 64 X2; 1,6 GHz double cœur, 2 Go de RAM, disque dur de 100 Go

J'ai créé un petit script de référence PHP simple pour tester les vitesses HDD/CSS:

<?php

function getmicrotime() { 
    list($usec, $sec) = explode(" ", microtime());
    return ((float)$usec + (float)$sec);
}

function testReadWrite() {
 $timeStart = getmicrotime();
 $filename = "test.txt";

 file_put_contents( $filename, '' ); // prepare empty file

 for ( $i = 0; $i < 1000; $i++ ) {
  $a = file_get_contents( $filename );
  file_put_contents( $filename, $a . '.' );
 }

 return round( getmicrotime() - $timeStart, 3 );
} 


function testCpuSpeed() {
 $timeStart = getmicrotime();

 $var = '';
 for ( $i = 0; $i < 100000; $i++ ) {
  $var = sha1( md5( $i * $i * $i * $i * $i * $i * $i * $i * $i * $i ) );
 }

 return round( getmicrotime() - $timeStart, 3 );
}

echo "Read/write #1: " . testReadWrite() . "<BR>";
echo "Read/write #2: " . testReadWrite() . "<BR>";
echo "Read/write #3: " . testReadWrite() . "<BR>";
echo "CPU speed #1: " . testCpuSpeed() . "<BR>";
echo "CPU speed #2: " . testCpuSpeed() . "<BR>";
echo "CPU speed #3: " . testCpuSpeed() . "<BR>";

?>

Mes résultats PC:

  • Lecture/écriture: 5.134/3.431/3.494 
  • Vitesse du processeur: 0.816/0.767/0.795

Un résultat d'hébergement Web:

  • Lecture/écriture: 7.768/7.69/7.371
  • Vitesse du processeur: 0.232/0.234/0.234

Un des résultats de mon serveur (ordinateur aussi inactif que mon PC, mais un peu plus rapide):

  • Lecture/écriture: 0.088/0.168/0.185
  • Vitesse du processeur: 0,191/0,189/0,189

Donc, je ne pense pas que ce soit à cause de la vitesse de mon PC, mais je suis sûr qu’il ya un autre problème… .. Avez-vous déjà utilisé la vitesse XAMPP sous Windows 7 (ou Vista)?

Merci.

26
Martin

Pourquoi ne pas essayer Wamp Server?

Le fichier d'installation est beaucoup plus petit (16 Mo) que XAMPP (44 Mo).

http://wampserver.com/

2
Yada

Si XAMP est lent sous Windows 7, les paramètres du pare-feu ne font aucune différence.
L'antivirus Security Essentials ne fait aucune différence.

Pour résoudre ce problème, les deux choses qui font une grande différence sont les suivantes:

1) dans windows\system32\drivers\etc\hosts, ajoutez les lignes suivantes:

127.0.0.1 127.0.0.1

127.0.0.1 localhost

2) Si vous utilisez PHP, dans le fichier php.ini de XAMP, décommentez la ligne eaccelerator:

zend_extension = "C:\xampp\php\ext\php_eaccelerator_ts.dll"

Après ces deux modifications, redémarrez Apache et ce sera beaucoup plus rapide.

43
JoeV

Pas sûr que cela puisse être la cause de vos problèmes, mais cela pourrait être une idée: avez-vous une ligne qui ressemble à ceci:

::1 localhost

dans vos hôtes (il devrait être quelque part comme C:\WINDOWS\system32\drivers\etc\hosts, si mes souvenirs sont exacts)) fichier?

Si oui, commentez cette ligne en ajoutant un # au début.


De cette façon, la seule ligne qui concerne localhost devrait être

127.0.0.1    localhost

qui est une adresse IPv4; et celui que vous avez mentionné étant un IPv6 - ce qui n’est pas utile pour ce que vous essayez de faire.


Comme je l’ai dit, je ne suis pas sûr que votre problème soit lié à cela, mais j’ai déjà vu cette suggestion aider à résoudre des problèmes assez similaires à votre (c.-à-d. Attendre longtemps avant de faire quoi que ce soit sur le serveur).

15
Pascal MARTIN

Commentez les lignes dans PHP.ini avec XDEBUG:

;[XDebug]

    ;zend_extension = "C:\xampp\php\ext\php_xdebug.dll"
    ;xdebug.profiler_append = 0
    ;xdebug.profiler_enable = 1
    ;xdebug.profiler_enable_trigger = 0
    ;xdebug.profiler_output_dir = "C:\xampp\tmp"
    ;xdebug.profiler_output_name = "cachegrind.out.%t-%s"
    ;xdebug.remote_enable = 0
    ;xdebug.remote_handler = "dbgp"
    ;debug.remote_Host = "127.0.0.1"
    ;xdebug.trace_output_dir = "C:\xampp\tmp"


 J'ai désactivé Bitdefeender -> pas de résultat 
 J'ai ajouté des lignes aux hôtes -> pas de résultat 
 J'ai désactivé xdebug - x2-x3 plus rapidement 

Cordialement Barto

15
Barto

J'ai eu le même problème avec Win 7 + XAMPP. Le problème était dû à mon logiciel antivirus. Lorsqu'il a été activé, la page la plus simple PHP prenait plus d'une demi-seconde à s'ouvrir. Les gros scripts PHP avec beaucoup de chaînes require_once () ont pris plus de 1,5 secondes. Avec les antivirus désactivés, tout allait très vite (moins de 100 millisecondes par pages simples et environ 500 millisecondes pour des choses très lourdes (plus de 100 chaine require_once ())).

J'utilise bitdeffender et voici la solution:

  1. Solution simple - il suffit de passer bitdefender à game mode lorsque vous travaillez avec xampp
  2. Solution "avancée" - allez à Antivirus -> Shield -> Advanced Settings -> Exclusions Tab et ajoutez-y une exclusion pour httpd.exe (situé dans votre installation xampp/Apache/bin /). Ensuite, allez à Antivirus -> Exclusions et ajoutez une exclusion pour le répertoire où résident vos fichiers php.

N'oubliez pas de redémarrer Apache après les étapes ci-dessus.

Vous pouvez également installer eaccelerator pour accélérer encore plus les choses.

Comme je le note de côté: j'ai trouvé WAMP moins mature en tant que projet que XAMPP.

Note 2: La meilleure solution consiste à utiliser votre ancien PC comme serveur Linux et tout fonctionnera à merveille :-)

11
Ognyan

Après avoir lu plusieurs réponses - aucun d’entre eux n’a aidé (j’ai même supprimé mon antivirus).

Ce qui m'a considérablement aidé, c'est désactiver xdebug . Maintenant tout est devenu très rapide.

8
Ronny Sherer

Ce problème peut être causé par deux choses.Le logiciel antivirus et les paramètres de hostfile

1) dans windows\system32\drivers\etc\hosts, ajoutez les lignes suivantes:

127.0.0.1 127.0.0.1

127.0.0.1 localhost

2) Dans votre antivirus, excluez le dossier document_root contenant vos fichiers (par exemple, c:/www ou c:/xampp/htdoc, etc.). Pour tester cela, vous pouvez également désactiver temporairement votre antivirus, mais la solution à long terme consiste à exclure le dossier et les sous-dossiers.

2
Sanket Gupta

La connexion à la base de données en utilisant 127.0.0.1 au lieu de "localhost" a fonctionné pour moi.

Mais j'ai cherché une autre solution et suis venu avec ceci:

Dans votre fichier my.ini , décommentez la ligne suivante:

    # Change here for bind listening
    # bind-address="127.0.0.1" 
    # bind-address = ::1          # for ipv6

Vous finirez par avoir:

    # Change here for bind listening
      bind-address="127.0.0.1" 
    # bind-address = ::1          # for ipv6

Redémarrez votre serveur mysql et les pages devraient se charger très rapidement sans délai de 2-3 secondes.

De plus, avec cette solution, vous n'avez pas besoin de modifier votre connexion dans votre code de connexion à la base de données, vous pouvez continuer à utiliser "localhost" au lieu de "127.0.0.1"

1
ChelaTheGreat

Dans C:\WINDOWS\system32\drivers\etc\hosts j'avais ces lignes commentées

# 127.0.0.1 localhost
# ::1       localhost

et environ 100 lignes supplémentaires de règles… .. La solution consiste à effacer toutes ces règles ou à supprimer le commentaire 127.0.0.1 localhost et à le mettre en tête.

1
bumbu

Mon BUG - XAMPP très lent

Mon Xampp ralentit et un arrêt éventuel a été causé par des messages d'avertissement remplissant le journal php - lisez la suite

1 - Localhost/127.0.0.1 - pas d'aide

2 - Interférence de logiciel antivirus - pas d'aide

3 - Interférence de port passant à 8080 - pas d'aide

4 - Wamp - même chose - pas d'aide

finalement, les choses ont échoué avec 500 erreurs.

C:\xampp\php\logs\php_error_log était presque un Mo (957 Ko)

trop gros pour notepadd ++ (mon premier indice que j'étais sur quelque chose) et le bloc-notes a pris plusieurs minutes pour rendre.

Des milliers de messages du type "Strict" & "Warning"

R&EACUTE;PARER

a changé le php.ini display_errors = On à = Off "Il y a plusieurs autres commutateurs on/off d'erreur ici, mais celui-ci l'a fait pour moi."

log nenamed

redémarré Apache et mysql

La vie est belle.

1
Joe

j'avais le même problème il y a un an et je découvre enfin ce qui rend le problème ici . Et si vos fichiers de log (accès, erreurs) vont à un tel point qu'il faudra un temps pour s'ouvrir même avec le bloc-notes?

oui, vous avez bien entendu xampp créera ces fichiers.

 enter image description here

Maintenant Si nous avons un problème, il y a aussi une solution. nous pouvons faire pivoter les fichiers journaux pour chaque jour. voici les étapes

  1. Editez votre httpd.conf dans ce chemin “Xampp/Apache/conf/httpd.conf”
  2. Vous trouverez CustomLog "logs/access.log" common
  3. remplacer par CustomLog "|bin/rotatelogs.exe logs/access_%y-%m-%d.log 86400" common
  4. Vous pouvez faire la même chose avec les fichiers logs/error.log.
  5. pour plus d'informations sur le programme de rotation, veuillez suivre https://httpd.Apache.org/docs/2.4/programs/rotatelogs.html

je suis également d'accord avec disble Xdebug aidera aussi.

1
chudasamachirag

Au risque de poser une évidence - vérifiez la taille de votre fichier hosts. Mon fichier hosts a grimpé à 450K en raison de l'ajout par Spybot d'exceptions pour chaque site malveillant jamais existé, même si ces sites n'étaient pour la plupart plus actifs. Spybot a commenté ces 10000 entrées avec une date de copyright de 2008, les rendant de toute façon inutiles.

Je ne sais pas si un autre logiciel de protection contre les logiciels espions le fait, mais le fichier hosts devrait être suffisamment petit pour que XAMPP ne soit pas obligé de passer en revue les URL d'exception chaque fois qu'il affiche une page. Si vous avez un logiciel piraté installé, ce que je n’approuve bien sûr pas, veillez à ne pas supprimer les exceptions d’hôte qui bloquent les sites de vérification de validation en ligne.

1
VanAlbert

C'est ce que j'ai fait et cela a rendu XAMPP plus rapide:

  1. Attribué une adresse de bouclage nouvelle et inutilisée à mon site dans le fichier hosts (C:\Windows\System32\drivers\etc\hosts). En d'autres termes, j'ai évité d'utiliser 127.0.0.1 pour d'autres sites: 

    127.0.0.2 example.com

  2. Dans le fichier httpd.conf Apache ajouté:

    Listen 127.0.0.2: 80

  3. Comme j'ai plusieurs sites, j'ai des sous-dossiers sous htdocs pour chaque site. Dans cet exemple, le nom de pliage est example.com, et c'est ici que mon site se trouve. Donc ajouté un VirtualHost, encore une fois dans mon fichier httpd.conf, comme ceci: 

    <VirtualHost 127.0.0.2:80> ServerAdmin [email protected] DocumentRoot "C:/xampp/htdocs/example.com" ServerName example.com ErrorLog "c:/xampp/Apache/logs/example.log" CustomLog "c:/xampp/Apache/logs/example-access.log" common </VirtualHost>

  4. Apache redémarré.

Après cela, visiter exemple.com dans le navigateur se charge très rapidement.

0
Goboca

J'ai le même problème ....

Ce que j'ai fait, c'est que j'ai désinstallé xampp, qui était sur C: drive.

Installé sur un autre lecteur (E:)...

et je ne sais pas mais ça marche bien et vite ....

0
Pratik

J'utilise un antivirus Avast et résout le problème d'un simple clic. Cliquez avec le bouton droit sur l'icône Avast et sélectionnez Mode silencieux/jeu. C'est tout.

0
lesm

j'ai eu ce problème, il n'était pas lié à un anti-virus ou à un pare-feu. a été facilement résolu en s’assurant que l’hôte local recherchait 127.0.0.1. 

j'ai trouvé un bon conseil ici:
[ http://www.devside.net/wamp-server/wamp-is-running-very-slow

les instructions étaient les suivantes: Editer le fichier – C:\Windows\System32\drivers\etc\hosts

Mettez en commentaire la ligne en ajoutant un «#» devant:

:: 1 localhost

Si “localhost” est résolu en adresse IP “:: 1 ″, la requête (si elle ne peut pas trouver de socket d'écoute IPv6) sera réacheminée vers l'adresse IP 127.0.0.1 (via un délai dépassé, un repli ou un autre mécanisme ), entraînant des retards inutiles pour les connexions (par exemple, généralement entre 1 et 30 secondes).

Assurez-vous que «localhost» est correctement mappé sur l'adresse de bouclage IPv4 «127.0.0.1» (… que cette ligne n'est pas commentée): 127.0.0.1 localhost

0
OurHighHopes