Heim  >  Artikel  >  Backend-Entwicklung  >  Wie aktualisiere ich den Nginx-Server von PHP5.5.7 auf PHP7?

Wie aktualisiere ich den Nginx-Server von PHP5.5.7 auf PHP7?

醉折花枝作酒筹
醉折花枝作酒筹nach vorne
2021-06-15 09:26:492274Durchsuche

In diesem Artikel erfahren Sie, wie Sie den Nginx-Server von PHP5.5.7 auf PHP7 aktualisieren. Verfahren. Es hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen. Ich hoffe, es wird für alle hilfreich sein.

Wie aktualisiere ich den Nginx-Server von PHP5.5.7 auf PHP7?

①, Server Nginx, PHP, MySQL sind alle installiert, daher möchte ich PHP7 direkt aktualisieren.

②Folgen Sie dem Artikel: https://typecodes.com/web/centos7compilephp7.html?utm_source=tuicool&utm_medium=referral Während der Operation erscheint in der Mitte etwas anderes.

③Referenz zur Problemlösung: http://blog.chinaunix.net/uid-25266990-id-2915395.html

Trennlinie-------------------- - ------------------------------------------------- - ------------------------------------------------- - ------------------------------------------------- - ---

Ich werde Schritt 2 unten für meinen eigenen Gebrauch erneut veröffentlichen.

1 Erstellen Sie einen PHP-Benutzer und eine Benutzergruppe und laden Sie den PHP7-Quellcode von Github herunter.

Erstellen Sie zunächst einen Benutzer namens PHP ohne Anmeldeberechtigungen und eine Benutzergruppe namens PHP und gehen Sie dann zu GitHub, um das PHP7-Quellcodepaket herunterzuladen.

#######新建php用户和php组
[root@typecodes ~]# groupadd -r php && useradd -r -g php -s /bin/false -d /usr/local/php7 -M php
######从GitHub下载php7安装包
[root@typecodes ~]# wget -c --no-check-certificate -O php7-src-master.zip https://github.com/php/php-src/archive/master.zip
######开始解压php7包
[root@typecodes ~]# unzip -q php7-src-master.zip && cd php-src-master
#####安装编译php7时需要的依赖包
[root@typecodes php-src-master]# yum -y install libxml2 libxml2-devel openssl openssl-devel curl-devel libjpeg-devel libpng-devel freetype-devel libmcrypt-devel
2 Konfiguration der PHP7-Kompilierungsparameter (ps: Ich werde die Schrägstriche unten posten, Sie können sie direkt kopieren)

Nachdem die Vorbereitungen abgeschlossen sind, beginnen Sie mit der formellen Konfiguration der Installationsdetails von PHP7. Beachten Sie, dass Sie zuerst den Kommentartext entfernen müssen, der unten nach dem Backslash „“ hinzugefügt wurde! ! !

######开始生成配置文件
[root@typecodes php-src-master]# ./buildconf
buildconf: checking installation...
buildconf: autoconf version 2.69 (ok)
rebuilding aclocal.m4
rebuilding configure
rebuilding main/php_config.h.in
######开始配置
[root@typecodes php-src-master]# ./configure \
--prefix=/usr/local/php7 \                              [PHP7安装的根目录]
--exec-prefix=/usr/local/php7 \
--bindir=/usr/local/php7/bin \
--sbindir=/usr/local/php7/sbin \
--includedir=/usr/local/php7/include \
--libdir=/usr/local/php7/lib/php \
--mandir=/usr/local/php7/php/man \
--with-config-file-path=/usr/local/php7/etc \           [PHP7的配置目录]
--with-mysql-sock=/var/run/mysql/mysql.sock \           [PHP7的Unix socket通信文件]
--with-mcrypt=/usr/include \
--with-mhash \
--with-openssl \
--with-mysql=shared,mysqlnd \                           [PHP7依赖mysql库]              
--with-mysqli=shared,mysqlnd \                          [PHP7依赖mysql库]
--with-pdo-mysql=shared,mysqlnd \                       [PHP7依赖mysql库]
--with-gd \
--with-iconv \
--with-zlib \
--enable-zip \
--enable-inline-optimization \
--disable-debug \
--disable-rpath \
--enable-shared \
--enable-xml \
--enable-bcmath \
--enable-shmop \
--enable-sysvsem \
--enable-mbregex \
--enable-mbstring \
--enable-ftp \
--enable-gd-native-ttf \
--enable-pcntl \
--enable-sockets \
--with-xmlrpc \
--enable-soap \
--without-pear \
--with-gettext \
--enable-session \                                      [允许php会话session]
--with-curl \                                           [允许curl扩展]
--with-jpeg-dir \
--with-freetype-dir \
--enable-opcache \                                      [使用opcache缓存]
--enable-fpm \
--enable-fastcgi \
--with-fpm-user=nginx \                                 [php-fpm的用户]
--with-fpm-group=nginx \                                [php-fpm的用户组]
--without-gdbm \
--disable-fileinfo
rrree
3 Beginnen Sie mit dem Kompilieren und Installieren von PHP7

Im Vergleich zum Kompilieren und Installieren von MySQL, das viel CPU und Speicher verbraucht, ist das Kompilieren und Installieren von PHP7 viel einfacher. Der gesamte Vorgang dauert etwa 1 Stunde.

./configure
--prefix=/usr/local/php7 
--exec-prefix=/usr/local/php7
--bindir=/usr/local/php7/bin 
--sbindir=/usr/local/php7/sbin 
--includedir=/usr/local/php7/include 
--libdir=/usr/local/php7/lib/php 
--mandir=/usr/local/php7/php/man 
--with-config-file-path=/usr/local/php7/etc         
--with-mysql-sock=/var/run/mysql/mysql.sock 
--with-mcrypt=/usr/include 
--with-mhash 
--with-openssl 
--with-mysql=shared,mysqlnd   
--with-mysqli=shared,mysqlnd 
--with-pdo-mysql=shared,mysqlnd 
--with-gd 
--with-iconv 
--with-zlib 
--enable-zip 
--enable-inline-optimization 
--disable-debug 
--disable-rpath 
--enable-shared 
--enable-xml 
--enable-bcmath 
--enable-shmop 
--enable-sysvsem 
--enable-mbregex 
--enable-mbstring 
--enable-ftp 
--enable-gd-native-ttf 
--enable-pcntl 
--enable-sockets 
--with-xmlrpc 
--enable-soap 
--without-pear 
--with-gettext 
--enable-session 
--with-curl                                        
--with-jpeg-dir 
--with-freetype-dir 
--enable-opcache                                  
--enable-fpm 
--enable-fastcgi 
--with-fpm-user=nginx                                
--with-fpm-group=nginx                                 
--without-gdbm 
--disable-fileinfo

Das Bild unten zu sehen bedeutet, dass PHP7 kompiliert und installiert wurde! (ps: Beim Kompilieren ist ein Fehler aufgetreten. Undefinierter Verweis auf „libiconv_open“ kann PHP nicht kompilieren;

Siehe den Link oben für Details zur Lösung: Bearbeiten Sie das Makefile etwa in Zeile 77:

EXTRA_LIBS = ..... -lcrypt

Fügen Sie abschließend -liconv hinzu, zum Beispiel:

EXTRA_LIBS = ..... -lcrypt -liconv

und führen Sie dann make aus )

4 Optionale Schritte: Führen Sie den Befehl make test aus, um zu testen

Dies ist ein Non -stop Notwendige Schritte: Führen Sie den Befehl make test aus. Interessant ist: Während des Tests wird eine TCP-Verbindung mit einer IP-Adresse 72.52.91.14 aufgebaut, die der offiziellen PHP-Website http://www.php.net entspricht.

5 Überprüfen Sie das PHP7-Installationsverzeichnis nach erfolgreicher Kompilierung

Da Sie mit MySQL kommunizieren müssen, müssen Sie nach der PHP7-Installation speziell das Verzeichnis der lib-Erweiterungsbibliothek überprüfen (/usr/local/php7/lib/php/extensions/no- debug- non-zts-20141001/). Sie müssen sicherstellen, dass mindestens zwei dynamische Bibliotheksdateien mysqli.so und pdo_mysql.so vorhanden sind, wie in der folgenden Abbildung dargestellt.

6 Beginnen Sie mit der Einrichtung der PHP7-Konfigurationsdateien php.ini, php-fpm.conf, www.conf und php-fpm-Skript

Sie können die kompilierte Konfigurationsdatei in das PHP7-Konfigurationsverzeichnis kopieren (/usr/local/php7/ etc/) wird empfohlen, die drei PHP7-Konfigurationsdateien und das php-fpm-Dienststeuerungsskript zu verwenden, die im Artikel „Konfiguration von php.ini, php-fpm und www.conf in PHP7“ zusammengestellt wurden.

[root@typecodes php-src-master]# make clean && make && make install
7 Umgebungsvariable von PHP hinzufügen

Fügen Sie das durch die PHP-Kompilierung generierte bin-Verzeichnis zur Umgebungsvariablen des aktuellen Linux-Systems hinzu

#######方法一:直接使用编译后未经优化处理的配置
[root@typecodes php-src-master]# cp php.ini-production /usr/local/php7/etc/php.ini
[root@typecodes php-src-master]# cp /root/php-src-master/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
[root@typecodes php-src-master]# cp /usr/local/php7/etc/php-fpm.conf.default /usr/local/php7/etc/php-fpm.conf
[root@typecodes php-src-master]# cp /usr/local/php7/etc/php-fpm.d/www.conf.default /usr/local/php7/etc/php-fpm.d/www.conf
#######方法二:使用https://typecodes.com/web/php7configure.html文中的配置 
[root@typecodes php-src-master]# mv ~/php.ini /usr/local/php7/etc/php.ini && mv ~/php-fpm /etc/init.d/php-fpm
[root@typecodes php-src-master]# mv ~/php-fpm.conf /usr/local/php7/etc/php-fpm.conf && mv ~/www.conf /usr/local/php7/etc/php-fpm.d/www.conf
8 Legen Sie das PHP-Protokollverzeichnis und die PHP-FPM-Prozessdatei (php-fpm. sock)-Verzeichnis

Setzen Sie unter anderem den Benutzer und die Benutzergruppe des PHP-FPM-Prozessverzeichnisses auf Nginx und erstellen Sie ein PHP-Sitzungsverzeichnis.

[root@typecodes ~]# echo -e '\nexport PATH=/usr/local/php7/bin:/usr/local/php7/sbin:$PATH\n' >> /etc/profile && source /etc/profile
9 Richten Sie den PHP-Start ein und testen Sie, ob die Konfigurationsdatei korrekt ist.
#######设置PHP日志目录和php-fpm的运行进程ID文件(php-fpm.sock)目录
[root@typecodes ~]# mkdir -p /var/log/php-fpm/ && mkdir -p /var/run/php-fpm && cd /var/run/ && chown -R nginx:nginx php-fpm
#######修改session的目录配置
[root@typecodes etc]# mkdir -p /var/lib/php/session
[root@typecodes etc]# chown -R nginx:nginx /var/lib/php
10 Starten Sie den PHP-Dienst.

Nach Abschluss der oben genannten Vorgänge können Sie den PHP-Dienst offiziell verwenden. Der Befehl zum Starten des PHP-Prozessdienstes lautet wie folgt:

######配置开机自启动,增加到主机sysV服务
[root@typecodes php-src-master]# chmod +x /etc/init.d/php-fpm
[root@typecodes php-src-master]# chkconfig --add php-fpm
[root@typecodes php-src-master]# chkconfig php-fpm on
######测试PHP的配置文件是否正确合法
[root@typecodes sbin]# php-fpm -t
[03-May-2015 17:50:04] NOTICE: configuration file /usr/local/php7/etc/php-fpm.conf test is successful

Dann können Sie mit dem Befehl ps -aux|grep php überprüfen, ob er erfolgreich ist (die Anzahl der PHP-FPM-Prozesse und der Prozessbenutzer nginx im Bild sind beide). Die Werte für pm.start_servers und user in www.conf werden jeweils ermittelt):

11 PHP7-Versionsinformationen anzeigen

Schließlich können Sie die aktuellen PHP-Versionsinformationen über den Befehl php -v anzeigen. Das können Sie im Bild sehen Das aktuelle PHP7 verwendet auch den Zend OPcache-Cache, da in der Datei php.ini die Konfiguration zend_extension=opcache.so hinzugefügt wurde.

configure: Fehler: xslt-config nicht gefunden. Bitte installieren Sie die libxslt >= 1.1.0-Distribution neu.

Der folgende Fehler tritt beim Kompilieren und Installieren von

./configure in PHP auf:

configure: Fehler: xslt-config nicht gefunden. Bitte installieren Sie die libxslt >= 1.1.0-Distribution neu

Das obige ist der detaillierte Inhalt vonWie aktualisiere ich den Nginx-Server von PHP5.5.7 auf PHP7?. 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