Maison  >  Article  >  développement back-end  >  Introduction à l'installation de PHP7.0 dans un environnement Linux

Introduction à l'installation de PHP7.0 dans un environnement Linux

coldplay.xixi
coldplay.xixiavant
2021-03-12 09:51:342840parcourir

Introduction à l'installation de PHP7.0 dans un environnement Linux Comparaison entre PHP7 et HHVM
Les performances de PHP7 dans des scénarios réels sont en effet équivalentes à celles de HHVM, et dépassent même HHVM dans certains scénarios. Le fonctionnement et la maintenance de HHVM sont complexes et il s'agit d'un modèle multithread. Cela signifie que si un thread provoque un crash, l'ensemble du service se bloquera et ne redémarrera pas automatiquement. De plus, il utilise JIT, ce qui signifie qu'il doit être réchauffé après le redémarrage. Sans préchauffage, les performances seront pires. De plus, le modèle multithread est difficile à déboguer, ce qui est très inadapté aux services Web qui recherchent la stabilité.

Pour les versions antérieures à Nginx et PHP7.0, merci de vous référer à cet article : Environnement Linux Installation et débogage de Nginx et installation de PHP

La version officielle de PHP7.0 a été publiée vers novembre 2015, et est actuellement la version PHP7.0.2, j'ai commencé à suivre la première version bêta de php7 en août 2015, et maintenant la version officielle est publiée.

Version Linux : CentOS 6.6 64 bits

Version Nginx : nginx1.8.0

Version php : php-7.0.2

Recommandé (Gratuit) : PHP7

Télécharger

wget http://php.net/get/php-7.0.2.tar.gz /from/a/mirror

Il est recommandé de lire le fichier d'aide à l'installation avant l'installation INSTALLER

Décompresser et installer

tar zxvf php-7.0 .2.tar .gz

cd php-7.0.2

Vérifiez d'abord l'aide à l'installation

./configure --help

./configure --prefix=/usr/local/php

–with-curl
–with-freetype-dir
–with -gd
–with-gettext
–with-iconv-dir
–with-kerberos
–with-libdir=lib64
–with-libxml-dir
–avec-mysqli
–avec-openssl
–avec-pcre-regex
–avec-pdo-mysql
–avec-pdo-sqlite
–avec-pear
– avec-png-dir
–avec-xmlrpc
–avec-xsl
–avec-zlib
–enable-fpm
–enable-bcmath
–enable-libxml
–enable-inline-optimisation
–enable-gd-native-ttf
–enable-mbregex
–enable-mbstring
–enable-opcache
–enable-pcntl
–enable -shmop
–enable-soap
–enable-sockets
–enable-sysvsem
–enable-xml
–enable-zip
Introduction à linstallation de PHP7.0 dans un environnement Linux
Si la configuration est faux, vous devez installer les modules requis, installer les bibliothèques dépendantes directement avec yum

yum -y install libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel mysql pcre-devel

Remarque : Il existe plusieurs configurations qui ne peuvent pas être configurées lors de l'installation de php7beta3. Vous devez le miam. Ce n'est plus le cas avec php-7.0.2.

yum -y install curl-devel

yum -y install libxslt-devel

Compiler et installer

make && make install

Introduction à linstallation de PHP7.0 dans un environnement Linux

Fichier de configuration

cp php.ini-development /usr/local/ php /lib/php.ini

cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www. conf

cp -R ./sapi/fpm/php-fpm /etc/init.d/php-fpm

Il est à noter que www en php7 Le fichier de configuration .conf configure le numéro de port et d'autres informations de phpfpm Si vous modifiez le numéro de port 9000 par défaut, vous devez le changer ici, puis modifier la configuration nginx
Démarrer

/etc/init.d /php-fpm

Afficher phpinfo()


Introduction à linstallation de PHP7.0 dans un environnement Linux
Introduction à linstallation de PHP7.0 dans un environnement Linux
Comparaison des analyses de performances php7 et php5

Générer un tableau de 600 000 éléments et déterminer si le La clé consiste à rechercher la clé qui existe.

PHP version 5.4.44

[root@localhost www5.4.44]# time /usr/local/php5.4.44/bin/php search_by_key.php

real 0m0.351s

utilisateur 0m0.300s
sys 0m0.050s

PHP version 5.5.28

[root@localhost www]# time /usr/local/php/bin/php search_by_key.php
réel 0m0.361s
utilisateur 0m0.304s
sys 0m0.057s

PHP version 7.0.0

[root@localhost www7]# time /usr/local/php7/bin/ php search_by_key.php
real 0m0.114s
user 0m0.097s
sys 0m0.017s

Évidemment, les performances de php7 sont 3 fois supérieures à celles de php5 !

Configurer opcache

Adresse du site officiel : http://php.net/opcache
Utilisez les paramètres recommandés suivants pour obtenir de meilleures performances :

opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli=1
Vous pouvez également désactiver opcache.save_comments et activer opcache.enable_file_override. Il convient de rappeler que la configuration ci-dessus doit être rigoureusement testée avant d'être utilisée dans un environnement de production. En raison d'un problème connu avec la configuration ci-dessus, cela entraînera des exceptions dans certains frameworks et applications, en particulier lorsque des documents utilisent des annotations de commentaires.

vim /usr/local/php7/etc/php.ini

Rejoindre

zend_extension=/usr/local/php7/lib/php /extensions/no-debug-non-zts-20141001/opcache.so

restart

killall php-fpm

/etc /init.d/php-fpm

Introduction à linstallation de PHP7.0 dans un environnement Linux
Introduction à linstallation de PHP7.0 dans un environnement Linux
Code de test d'état Opcache (https://gist.github.com/ck-on/4959032) Donner une démo :

<?php /*
OCP - Opcache Control Panel (aka Zend Optimizer+ Control Panel for PHP)
Author: _ck_ (with contributions by GK, stasilok)
Version: 0.1.6
Free for any kind of use or modification, I am not responsible for anything, please share your improvements
 
* revision history
0.1.6 2013-04-12 moved meta to footer so graphs can be higher and reduce clutter
0.1.5 2013-04-12 added graphs to visualize cache state, please report any browser/style bugs
0.1.4 2013-04-09 added "recheck" to update files when using large revalidate_freq (or validate_timestamps=Off)
0.1.3 2013-03-30 show host and php version, can bookmark with hashtag ie. #statistics - needs new layout asap
0.1.2 2013-03-25 show optimization levels, number formatting, support for start_time in 7.0.2
0.1.1 2013-03-18 today Zend completely renamed Optimizer+ to OPcache, adjusted OCP to keep working
0.1.0 2013-03-17 added group/sort indicators, replaced "accelerator_" functions with "opcache_"
0.0.6 2013-03-16 transition support as Zend renames product and functions for PHP 5.5 (stasilok)
0.0.5 2013-03-10 added refresh button (GK)
0.0.4 2013-02-18 added file grouping and sorting (click on headers) - code needs cleanup but gets the job done
0.0.2 2013-02-14 first public release
 
* known problems/limitations:
Unlike APC, the Zend OPcache API
- cannot determine when a file was put into the cache
- cannot change settings on the fly
- cannot protect opcache functions by restricting execution to only specific scripts/paths
 
* todo:
Extract variables for prefered ordering and better layout instead of just dumping into tables
File list filter
 
*/
 
// ini_set(&#39;display_errors&#39;,1); error_reporting(-1);
if ( count(get_included_files())>1 || php_sapi_name()=='cli' || empty($_SERVER['REMOTE_ADDR']) ) { die; } // weak block against indirect access
 
$time=time();
define('CACHEPREFIX',function_exists('opcache_reset')?'opcache_':(function_exists('accelerator_reset')?'accelerator_':''));
 
if ( !empty($_GET['RESET']) ) {	
if ( function_exists(CACHEPREFIX.'reset') ) { call_user_func(CACHEPREFIX.'reset'); }
header( 'Location: '.str_replace('?'.$_SERVER['QUERY_STRING'],'',$_SERVER['REQUEST_URI']) );
exit;
}
 
if ( !empty($_GET['RECHECK']) ) {
if ( function_exists(CACHEPREFIX.'invalidate') ) {
$recheck=trim($_GET['RECHECK']); $files=call_user_func(CACHEPREFIX.'get_status');
if (!empty($files['scripts'])) {
foreach ($files['scripts'] as $file=>$value) {
if ( $recheck==='1' || strpos($file,$recheck)===0 ) call_user_func(CACHEPREFIX.'invalidate',$file);
}
}
header( 'Location: '.str_replace('?'.$_SERVER['QUERY_STRING'],'',$_SERVER['REQUEST_URI']) );
} else { echo 'Sorry, this feature requires Zend Opcache newer than April 8th 2013'; }
exit;
}



?>nbsp;html>
OCP - Opcache Control Panel
<p>
 
</p><h1><a>Opcache Control Panel</a></h1>
 
<p>
<a>Details</a>
<a>Files</a>
<a>Reset</a>
<?php  if ( function_exists(CACHEPREFIX.&#39;invalidate&#39;) ) { ?>
<a>Recheck</a>
<?php  } ?>
<a>Refresh</a>
</p>
 
<?php  
if ( !function_exists(CACHEPREFIX.&#39;get_status&#39;) ) { echo &#39;<h2>Opcache not detected?'; die; }
 
if ( !empty($_GET['FILES']) ) { echo '<h2>files cached</h2>'; files_display(); echo '

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer