GNU/Linux >> Tutoriels Linux >  >> Cent OS

Exécutez WordPress + W3TotalCache avec la pile LEMP (Nginx, PHP-FPM + APC et MySQL) sur CentOS 6 VPS pour des performances maximales

Nginx est un serveur Web HTTP haute performance gratuit, open-source qui, contrairement à certains autres serveurs Web, ne repose pas sur la gestion des requêtes par thread, mais utilise à la place un événement beaucoup plus évolutif (asynchrone ) architecture.

Cela utilise une quantité de mémoire très petite et prévisible sous une charge importante. Nginx en combinaison avec le gestionnaire de processus FastCGI simple et très robuste pour PHP (PHP-FPM ) et le serveur de base de données le plus populaire au monde MySQL peut vous offrir beaucoup de puissance et de performances tout en utilisant une petite empreinte mémoire.

L'article suivant concerne comment installer et configurer LEMP Stack sur un VPS CentOS 6 et hébergez un WordPress ultra rapide applications Web optimisées.

L'article est divisé dans les sections suivantes :

  • Configuration initiale
  • Installer et configurer Nginx
  • Installer et configurer MySQL
  • Installer et configurer PHP-FPM
  • Installer et configurer WordPress
  • Configurer la mise en cache pour de meilleures performances
Avant de procéder à l'installation, lancez une session screen en exécutant :
## screen -U -S lemp-stack

Une fois que vous êtes dans la session d'écran, assurez-vous que votre VPS CentOS 6 est entièrement à jour en exécutant :

## mise à jour miam

si Apache est installé sur votre VPS, arrêtez-le et supprimez-le en exécutant :

## /etc/init.d/httpd stop## yum supprimer httpd
ÉTAPE 1) Installez et configurez Nginx

activez le référentiel epel en exécutant :

trouvez votre architecture VPS en exécutant uname -m

– VPS 32 bits :

## wget -P /tmp http://mirror.pnl.gov/epel/6/i386/epel-release-6-8.noarch.rpm## rpm -Uvh /tmp/epel-release-6 -8.noarch.rpm## rm -f /tmp/epel-release-6-8.noarch.rpm

– VPS 64 bits :

## wget -P /tmp http://mirror.itc.virginia.edu/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm## rpm -Uvh /tmp/epel -release-6-8.noarch.rpm## rm -f /tmp/epel-release-6-8.noarch.rpm

vérifier que tout est à jour

## mise à jour miam

Installez Nginx via yum en lançant :

## yum installer nginx

Accédez au répertoire de configuration de Nginx dans /etc/nginx/ et modifiez nginx.conf avec votre éditeur préféré :

## cd /etc/nginx/## vim nginx.conf
utilisateur nginx;worker_processes 2;error_log /var/log/nginx/error.log;#error_log /var/log/nginx/error.log notice;#error_log /var/log/nginx/error.log info;pid /var/run/nginx.pid;events { worker_connections 1024;}http { include /etc/nginx/mime.types; default_type application/octet-stream ; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"' ; access_log /var/log/nginx/access.log principal ; envoyer le fichier ; #tcp_nopush activé ; #keepalive_timeout 0 ; keepalive_timeout 30 ; server_tokens désactivé ; gzip activé ; gzip_disable "MSIE [1-6]\.(?!.*SV1)" ; gzip_http_version 1.1 ; gzip_vary activé ; gzip_proxied n'importe lequel ; gzip_comp_level 6 ; gzip_buffers 16 8k; gzip_types texte/texte brut/application css/application json/texte x-javascript/application xml/application xml/texte xml+rss/application javascript/texte javascript/x-js ; # sites activés incluent /etc/nginx/sites-enabled/*;}

créer des sites-enabled et sites-available dans le /etc/nginx répertoire :

## mkdir -p /etc/nginx/sites-available /etc/nginx/sites-enabled

configurez la directive d'hôte virtuel Nginx par défaut en ajoutant ce qui suit dans /etc/nginx/sites-available/default.conf

serveur { écouter 80 default_server ; nom du serveur _; emplacement / { racine /usr/share/nginx/html ; index index.html index.htm; } page_erreur 404 /404.html ; emplacement =/404.html { racine /usr/share/nginx/html ; } page_erreur 500 502 503 504 /50x.html ; emplacement =/50x.html { racine /usr/share/nginx/html ; }}

activez la directive d'hôte virtuel Nginx par défaut en créant un lien symbolique vers la configuration vhost par défaut dans /etc/nginx/sites-enabled/

## cd /etc/nginx/sites-enabled## ln -s /etc/nginx/sites-available/default.conf

testez la configuration de Nginx, ajoutez-la au démarrage de votre système et lancez-la enfin en :

## nginx -t## /etc/init.d/nginx restart## chkconfig nginx on
ÉTAPE 2) Installez et configurez MySQL

installez le serveur de base de données MySQL, démarrez-le et ajoutez-le au démarrage de votre système en exécutant les commandes suivantes :

## yum install mysql mysql-server## service mysqld restart## chkconfig mysqld on

ensuite, exécutez la commande ci-dessous afin de configurer MySQL

## mysql_secure_installation
Entrez le mot de passe actuel pour root (entrez pour aucun) :Set root password ? [O/n] ySupprimer les utilisateurs anonymes ? [O/n] yInterdire la connexion root à distance ? [O/n] ySupprimer la base de données de test et y accéder ? [O/n] yRecharger les tables de privilèges maintenant ? [O/n] oui

assurez-vous que votre MySQL n'est pas exposé pour écouter sur l'adresse IP publique de votre serveur en ajoutant ce qui suit à /etc/my.cnf

## vim /etc/my.cnf[mysqld]bind-address =127.0.0.1...

redémarrez le serveur de base de données pour que les modifications prennent effet par :

## /etc/init.d/mysqld restart
ÉTAPE 3) Installez et configurez PHP-FPM

installer PHP-FPM et quelques extensions PHP utiles en exécutant la commande ci-dessous :

## yum installer php-fpm php-mysql php-gd php-mcrypt

modifier /etc/php.ini et modifiez/supprimez les commentaires suivants :

cgi.fix_pathinfo=0date.timezone =America/New_Yorkmemory_limit =64Mexpose_php =Désactivé

ensuite, éditez /etc/php-fpm.conf avec votre éditeur préféré et décommentez ce qui suit :

emergency_restart_threshold =10emergency_restart_interval =1mprocess_control_timeout =10

avec tout cela en place, configurez un pool PHP-FPM dans /etc/php-fpm.d/www.conf :

## mv /etc/php-fpm.d/www.conf /root/## vim /etc/php-fpm.d/www.conf
[wordpress];listen =127.0.0.1:9001listen =/var/run/php-wordpress.socketuser =nginxgroup =nginxrequest_slowlog_timeout =5sslowlog =/var/log/php-fpm/blogcms.loglisten.allowed_clients =127.0.0.1 pm =dynamicpm.max_children =22h.start_servers =15h.min_spare_servers =2pm.max_spare_servers =4pm.max_requests =400listen.backlog =-1pm.status_path =/statusrequest_terminate_timeout =120srlimit_files =131072rlimit_core =unlimitedcatch_workers_output =yesphp_value[session]. .save_path] =/var/lib/php/sessionphp_admin_value[error_log] =/var/log/php-fpm/wordpress-error.logphp_admin_flag[log_errors] =on

redémarrez PHP-FPM et ajoutez-le au démarrage de votre système :

## /etc/init.d/php-fpm restart## chkconfig php-fpm on

à ce stade, vous devriez avoir Nginx , MySQL et PHP-FPM opérationnel sur votre serveur. Procédez à la création d'une directive vhost pour votre WordPress candidature :

## vim /etc/nginx/sites-available/my-wordpress.tld.conf
serveur { écoute 80 ; nom_serveur my-wordpress.tld ; réécrire ^(.*) http://www.my-wordpress.tld$1 permanent;}server { listen 80; nom_serveur www.my-wordpress.tld ; client_max_body_size 5 m ; client_body_timeout 60 ; access_log /var/log/nginx/my-wordpress.tld-access ; erreur_log /var/log/nginx/my-wordpress.tld-error; racine /var/www/html/my-wordpress.tld/; index index.html index.php; ### répertoire racine ### emplacement / { try_files $uri $uri/ /index.php?$args; } ### security ### error_page 403 =404; emplacement ~ /\. { access_log off ; log_not_found désactivé ; Nier tous; } emplacement ~ ~$ { access_log off; log_not_found désactivé ; Nier tous; } emplacement ~* wp-admin/includes { tout refuser ; } location ~* wp-includes/theme-compat/ { refuser tout ; } location ~* wp-includes/js/tinymce/langs/.*\.php { tout refuser ; } emplacement /wp-includes/ { interne ; } #location ~* wp-config.php { tout refuser ; } emplacement ~* ^/wp-content/uploads/.*.(html|htm|shtml|php)$ { types { } default_type text/plain ; } # emplacement ~* wp-admin { # autoriser  ; # autoriser 127.0.0.1 ; # Nier tous; # } ### désactiver la journalisation ### location =/robots.txt { access_log off; log_not_found désactivé ; } location =/favicon.ico { access_log off ; log_not_found désactivé ; } ### cache ### emplacement ~* \.(jpg|jpeg|gif|css|png|js|ico|html)$ { access_log off; expire max ; } emplacement ~* \.(woff|svg)$ { access_log off; log_not_found désactivé ; expire 30j ; } emplacement ~* \.(js)$ { access_log off; log_not_found désactivé ; expire 7j ; } ### bloc php ### emplacement ~ \.php?$ { try_files $uri =404; inclure fastcgi_params ; #fastcgi_pass 127.0.0.1:9001; fastcgi_pass unix:/var/run/php-wordpress.socket ; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name ; fastcgi_intercept_errors activé ; fastcgi_split_path_info ^(.+\.php)(.*)$; # Empêcher les fuites d'informations de version fastcgi_hide_header X-Powered-By ; }}

activez la directive d'hôte virtuel et redémarrez nginx en exécutant les commandes suivantes :

## cd /etc/nginx/sites-enabled## ln -s /etc/nginx/sites-available/my-wordpress.tld.conf## nginx -t## /etc/init.d/nginx redémarrer

tester PHP-FPM en créant PHP info.php script dans la racine de votre document vhost dans /var/www/html/my-wordpress.tld/ :

## mkdir -p /var/www/html/my-wordpress.tld/## cd /var/www/html/my-wordpress.tld/## echo -e " info.php

accéder à http://my-wordpress.tld/info.php pour tester votre PHP-FPM

ÉTAPE 4) Configurer WordPress

L'étape suivante consiste à installer WordPress dans la racine de votre document vhost dans /var/www/html/my-wordpress.tld/ . Avant d'installer WordPress, créons d'abord une base de données MySQL en exécutant :

## mysql -u root -p
mysql> créer la base de données wordpressDB ;mysql> accorder tout sur wordpressDB.* à wpUser@localhost identifié par 'YOUR_PASS' ;mysql> quitter
## cd /var/www/html/my-wordpress.tld/## wget http://wordpress.org/latest.zip## unzip latest.zip## mv wordpress/* .## rm - rf dernier.zip wordpress/

Ensuite, copiez l'exemple de configuration WordPress et configurez les informations de votre base de données MySQL :

## cp wp-config-sample.php wp-config.php## vim wp-config.php
define('DB_NAME', 'wordpressDB');define('DB_USER', 'wpUser');define('DB_PASSWORD', 'YOUR_PASS');
## chown nginx :-R /var/www/html/my-wordpress.tld/

ouvrez http://my-wordpress.tld et terminez votre installation de WordPress

ÉTAPE 5) Configurer la mise en cache pour de meilleures performances

Installez PHP-APC (Alternative PHP Cache) en exécutant :

## yum install php-pecl-apc

une fois APC installé, ajoutez ce qui suit à /etc/php.d/apc.ini

## chat> ​​/etc/php.d/apc.ini
extension =apc.soapc.enabled=1apc.shm_segments=1apc.shm_size=128Mapc.num_files_hint=1024apc.user_entries_hint=4096apc.ttl=7200apc.use_request_time=1apc.user_ttl=7200apc.gc_ttl=3600apc.cache_by_default=1apc .mmap_file_mask=/tmp/apc.XXXXXXapc.file_update_protection=2apc.enable_cli=0apc.max_file_size=1Mapc.stat=1apc.stat_ctime=0apc.canonicalize=0apc.write_lock=1apc.report_autofilter=0apc.rfc1867=0apc.rfc1867_prefix =upload_apc. rfc1867_name=APC_UPLOAD_PROGRESSapc.rfc1867_freq=0apc.rfc1867_ttl=3600apc.include_once_override=0apc.lazy_classes=0apc.lazy_functions=0apc.coredump_unmap=0apc.file_md5=0apc.preload_path

et redémarrez PHP-FPM pour que les modifications prennent effet.

## /etc/init.d/php-fpm restart

vérifier si APC est chargé en exécutant :

## php -m | grep -w apc

ou en ouvrant le info.php script dans la racine de votre document.

La prochaine chose à faire est de vous connecter à votre administration WordPress et d'installer le W3 Total Cache Plugin . Pour que le plug-in W3 Total Cache fonctionne, vous devez d'abord activer les Pretty URLs dans

Settings->Permalinks->Custom Structure :

http://my-wordpress.tld/%postname%/

puis procédez à l'installation du W3 Total Cache . Une fois installé, allez à

Performance->General Settings

et activez/désactivez les options suivantes :

Cache de page :enabledPage cache method :Disque :EnhacedMinify :disabledDatabase Cache :enabledDatabase Cache Method :Opcode :Alternative PHP Cache (APC)Object Cache :enbabledObject Cache Method :Opcode :Alternative PHP Cache (APC)Browser Cache :disabledCDN :this dépend de vous.

Cliquez sur Save all settings pour soumettre les modifications.

Ajoutez ce qui suit dans /var/www/html/my-wordpress.tld/nginx.conf

## cat> /var/www/html/my-wordpress.tld/nginx.conf
# BEGIN W3TC Page Cache cachelocation ~ /wp-content/cache/page_enhanced.*html$ { add_header Vary Cookie;}# END W3TC Page Cache cache# BEGIN W3TC Page Cache coreset $w3tc_rewrite 1;if ($request_method =POST ) { set $w3tc_rewrite 0;}if ($query_string !="") { set $w3tc_rewrite 0;}if ($request_uri !~ \/$) { set $w3tc_rewrite 0;}if ($http_cookie ~* "(comment_author |wp\-postpass|w3tc_logged_out|wordpress_logged_in|wptouch_switch_toggle)") { set $w3tc_rewrite 0;}if (!-f "$document_root/wp-content/cache/page_enhanced/$http_host/$request_uri/_index.html") { set $w3tc_rewrite 0;}if ($w3tc_rewrite =1) { rewrite .* "/wp-content/cache/page_enhanced/$http_host/$request_uri/_index.html" last;}# END W3TC Page Cache core

assurez-vous que la propriété de la racine du document est correcte en :

## chown nginx :-R /var/www/html/my-wordpress.tld/

L'étape suivante consiste à dire à Nginx d'utiliser ce fichier de configuration. Modifier /etc/nginx/sites-enabled/my-wordpress.tld.conf et ajoutez/décommentez ce qui suit :

include /var/www/html/my-wordpress.tld/nginx.conf;...location ~* wp-config.php { deny all; } 

testez le fichier de configuration de Nginx et redémarrez-le pour que les modifications prennent effet en exécutant :

## nginx -t## /etc/init.d/nginx restart

Vous pouvez également modifier votre fichier de configuration WordPress /var/www/html/my-wordpress.tld/wp-config.php et définissez les éléments suivants afin que WordPress n'ait pas à interroger la base de données pour l'URL du site :

define('WP_HOME', 'http://my-wordpress.tld');define('WP_SITEURL', 'http://my-wordpress.tld');

Bien sûr, si vous êtes l'un de nos clients Linux VPS Hosting, vous n'avez rien à faire de tout cela, demandez simplement à nos administrateurs, asseyez-vous et détendez-vous. Nos administrateurs vont configurer cela pour vous immédiatement.

PS. Si vous avez aimé cet article, partagez-le avec vos amis sur les réseaux sociaux en utilisant les boutons à gauche ou laissez simplement une réponse ci-dessous. Merci.


Cent OS
  1. Exécutez Joomla avec Nginx sur un VPS Centos

  2. Comment installer Varnish et phpMyAdmin sur un VPS CentOS 7 avec Nginx, MariaDB et PHP-FPM

  3. Installer FluxBB sur un VPS CentOS 7 avec Nginx et PHP-FPM

  4. Installer Concrete5 sur un VPS Ubuntu 14.04 avec Nginx, PHP-FPM et MySQL

  5. Comment installer la pile LEMP sur CentOS 7

Installer Mattermost avec PostgreSQL et Nginx sur CentOS 7

Comment installer Redmine 3 avec Nginx sur CentOS 7

Comment installer Nginx avec PHP et MySQL (pile LEMP) sur Ubuntu 18.04

Comment installer Nginx avec PHP et MySQL (pile LEMP) sur Ubuntu 20.04 LTS

Comment installer Nginx avec PHP et MySQL (pile LEMP) sur CentOS 7.6

Installation de Nginx avec PHP5 (et PHP-FPM) et prise en charge de MySQL sur CentOS 6.4