Heim  >  Artikel  >  Backend-Entwicklung  >  Einführung in die PHP7.0-Installation in einer Linux-Umgebung

Einführung in die PHP7.0-Installation in einer Linux-Umgebung

coldplay.xixi
coldplay.xixinach vorne
2021-03-12 09:51:342839Durchsuche

Einführung in die PHP7.0-Installation in einer Linux-Umgebung Vergleich zwischen PHP7 und HHVM
Die Leistung von PHP7 in realen Szenarien entspricht tatsächlich der von HHVM und übertrifft in einigen Szenarien sogar die von HHVM. Der Betrieb und die Wartung von HHVM sind komplex und es handelt sich um ein Multithread-Modell. Das bedeutet, dass der gesamte Dienst hängen bleibt und nicht automatisch neu gestartet wird. Darüber hinaus verwendet es JIT, was bedeutet, dass es nach dem Neustart aufgewärmt werden muss. Ohne Vorheizen wird die Leistung schlechter. Darüber hinaus ist das Multithread-Modell schwer zu debuggen, was für Webdienste, die Stabilität anstreben, sehr ungeeignet ist.

Nginx und Versionen vor PHP7.0 können auf diesen Artikel verwiesen werden: Linux-Umgebung Nginx-Installation und -Debugging sowie PHP-Installation

Die offizielle Version von PHP7.0 wurde etwa im November 2015 veröffentlicht. Derzeit handelt es sich um die PHP7.0.2-Version war der erste, der die erste Beta-Version von PHP7 im August 2015 veröffentlichte, nun ist die offizielle Version veröffentlicht.

Linux-Version: 64-Bit CentOS 6.6

Nginx-Version: nginx1.8.0

php-Version: php-7.0.2

Empfohlen (kostenlos): PHP7

Download

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

Es wird empfohlen, vor der Installation die Installationshilfedatei INSTALL zu lesen

Entpacken und installieren

tar zxvf php-7.0 .2.tar .gz

cd php-7.0.2

Überprüfen Sie zunächst die Installationshilfe

./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
–with-mysqli
–with-openssl
–with-pcre-regex
–with-pdo-mysql
–with-pdo-sqlite
–with-pear
–with-png-dir
–with-xmlrpc
– with-xsl
– with-zlib
–enable-fpm
–enable-bcmath
–enable-libxml
–enable-inline-optimization
–enable-gd-native-ttf
–enable-mbregex
–enable-mbstring
–enable-opcache
–enable-pcntl
–enable-shmop
–enable-soap
–enable-sockets
–enable-sysvsem
–enable-xml
–enable-zip
Einführung in die PHP7.0-Installation in einer Linux-Umgebung
Wenn die Konfiguration falsch ist, benötigen Sie Um die erforderlichen Module zu installieren, yum sie einfach und installiere die abhängigen Bibliotheken. yum -y install libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel mysql pcre-devel Das kann bei der Installation von php7beta3 nicht konfiguriert werden, Sie müssen es yumen, jetzt muss php-7.0.2 dies nicht mehr tun.

yum -y install curl-devel

yum -y install libxslt-devel

kompilieren und installieren

make && make install

Konfigurationsdatei

cp php.ini- Entwicklung /usr/local/php/lib/php.iniEinführung in die PHP7.0-Installation in einer Linux-Umgebung

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

Es ist zu beachten, dass die Konfigurationsdatei www.conf in PHP7 die Portnummer und andere Informationen von PHPFPM konfiguriert, wenn Sie den Standardport 9000 ändern Nummer, Sie müssen hier gehen Ändern, dann ändern Sie die Nginx-Konfiguration

Starten Sie

/etc/init.d/php-fpm


Anzeigen von phpinfo()

Vergleich der Leistungsanalyse von PHP7 und PHP5
Einführung in die PHP7.0-Installation in einer Linux-Umgebung
Einführung in die PHP7.0-Installation in einer Linux-Umgebung
Erzeugen Sie ein Array mit 600.000 Elementen und ermitteln Sie, ob der Schlüssel vorhanden ist, indem Sie nach dem Schlüssel suchen. PHP-Version 5.4.44

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

real 0m0.351s

Benutzer 0m0.300s

sys 0m0.050s


PHP-Version 5.5.28

[root@localhost www]# time /usr/local/php/bin/php search_by_key.php

real 0m0.361s
Benutzer 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

Offensichtlich ist die Leistung von PHP7 dreimal so hoch wie die von PHP5 !

Opcache konfigurieren
Offizielle Website-Adresse: http://php.net/opcache
Verwenden Sie die folgenden empfohlenen Einstellungen, um eine bessere Leistung zu erzielen:

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
Sie können opcache.save_comments auch deaktivieren Und aktivieren Sie opcache.enable_file_override. Es sei daran erinnert, dass die obige Konfiguration vor der Verwendung in einer Produktionsumgebung gründlich getestet werden muss. Da bei der oben genannten Konfiguration ein bekanntes Problem vorliegt, kommt es in einigen Frameworks und Anwendungen zu Ausnahmen, insbesondere wenn Dokumente vorhanden sind, die Kommentaranmerkungen verwenden.

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

Join

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

Neustart

killall php-fpm

/etc/init.d/php-fpm

Einführung in die PHP7.0-Installation in einer Linux-Umgebung
Einführung in die PHP7.0-Installation in einer Linux-Umgebung
Opcache-Statustestcode (https://gist.github.com/ck-on/ 4959032) zur Demonstration:

<?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 '

Das obige ist der detaillierte Inhalt vonEinführung in die PHP7.0-Installation in einer Linux-Umgebung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen