Web Server nutzt PHP 5.6 anstelle PHP 7

Debian macht sich hervorragend als Web- und Mailserver. Schau auch in den " Tipps und Tricks"-Bereich.
Antworten
BennoGronau
Beiträge: 7
Registriert: 04.01.2019 11:41:41

Web Server nutzt PHP 5.6 anstelle PHP 7

Beitrag von BennoGronau » 04.01.2019 12:05:50

Hi,
ich möchte in meinem Web Server PHP 7 nutzen. Leider gelingt mir das nicht, obwohl ich PHP 7 installiert habe. Trotzdem erhalte ich bei php_info() folgende Ausgabe:

Code: Alles auswählen

PHP Version 5.6.39-0+deb8u1
Build Date 	Dec 16 2018 21:59:49 
Server API 	FPM/FastCGI 
Virtual Directory Support 	disabled 
Configuration File (php.ini) Path 	/etc/php5/fpm 
Loaded Configuration File 	/etc/php5/fpm/php.ini 
Scan this dir for additional .ini files 	/etc/php5/fpm/conf.d 
Additional .ini files parsed 	/etc/php5/fpm/conf.d/00-ioncube-loader-5.6.ini, /etc/php5/fpm/conf.d/05-opcache.ini, /etc/php5/fpm/conf.d/10-pdo.ini, /etc/php5/fpm/conf.d/20-curl.ini, /etc/php5/fpm/conf.d/20-gd.ini, /etc/php5/fpm/conf.d/20-imap.ini, /etc/php5/fpm/conf.d/20-json.ini, /etc/php5/fpm/conf.d/20-mysql.ini, /etc/php5/fpm/conf.d/20-mysqli.ini, /etc/php5/fpm/conf.d/20-pdo_mysql.ini, /etc/php5/fpm/conf.d/20-pdo_sqlite.ini, /etc/php5/fpm/conf.d/20-readline.ini, /etc/php5/fpm/conf.d/20-sqlite3.ini, /etc/php5/fpm/conf.d/20-xsl.ini, /etc/php5/fpm/conf.d/zend_extensions_psa.ini 
PHP API 	20131106 
PHP Extension 	20131226 
Zend Extension 	220131226 
Zend Extension Build 	API220131226,NTS 
PHP Extension Build 	API20131226,NTS 
Debug Build 	no 
Thread Safety 	disabled 
Zend Signal Handling 	disabled 
Zend Memory Manager 	enabled 
Zend Multibyte Support 	provided by mbstring 
IPv6 Support 	enabled 
DTrace Support 	enabled 
Registered PHP Streams	https, ftps, compress.zlib, compress.bzip2, php, file, glob, data, http, ftp, phar, zip
Registered Stream Socket Transports	tcp, udp, unix, udg, ssl, sslv3, tls, tlsv1.0, tlsv1.1, tlsv1.2
Registered Stream Filters	zlib.*, bzip2.*, convert.iconv.*, string.rot13, string.toupper, string.tolower, string.strip_tags, convert.*, consumed, dechunk
Es handelt sich um einen Cloud Servern auf dem ich root Rechte habe und auf dem Debian 8 läuft:

Code: Alles auswählen

cat /etc/debian_version
8.11

Code: Alles auswählen

cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 8 (jessie)"
NAME="Debian GNU/Linux"
VERSION_ID="8"
VERSION="8 (jessie)"
ID=debian
HOME_URL="http://www.debian.org/"
SUPPORT_URL="http://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
Wenn ich in einer Shell die PHP Version anzeige bekomme ich die gewünschte Version 7:

Code: Alles auswählen

php -v
PHP 7.0.33-1+0~20181208203043.8+jessie~1.gbp2ff763 (cli) (built: Dec  8 2018 20:59:14) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
    with Zend OPcache v7.0.33-1+0~20181208203043.8+jessie~1.gbp2ff763, Copyright (c) 1999-2017, by Zend Technologies
Ich habe schon einige Foren durchsucht und verschiedenes versucht. So z.B. das aktivieren bzw. deaktivieren der verschiedenen apache module:

Code: Alles auswählen

a2dismod php5
Module php5 already disabled

Code: Alles auswählen

a2enmod php7.0
Considering dependency mpm_prefork for php7.0:
Considering conflict mpm_event for mpm_prefork:
Considering conflict mpm_worker for mpm_prefork:
Module mpm_prefork already enabled
Considering conflict php5 for php7.0:
Module php7.0 already enabled
Aber ich komme leider nicht weiter.
Kann mir jemand vielleicht helfen? (Ich bin kein Web Server Experte und kenne mich mit den genauen Konfigurationsdateien und Abläufen leider zu wenig aus).
Vielen Dank im Voraus für alle Hilfe.

hec_tech
Beiträge: 1093
Registriert: 28.06.2007 21:49:36
Wohnort: Wien
Kontaktdaten:

Re: Web Server nutzt PHP 5.6 anstelle PHP 7

Beitrag von hec_tech » 04.01.2019 13:05:19

Apache hast du aber schon durchgestartet?

BennoGronau
Beiträge: 7
Registriert: 04.01.2019 11:41:41

Re: Web Server nutzt PHP 5.6 anstelle PHP 7

Beitrag von BennoGronau » 04.01.2019 13:33:04

Ja, habe ich:

Code: Alles auswählen

/etc/init.d/apache2 restart
[ ok ] Restarting apache2 (via systemctl): apache2.service.

hec_tech
Beiträge: 1093
Registriert: 28.06.2007 21:49:36
Wohnort: Wien
Kontaktdaten:

Re: Web Server nutzt PHP 5.6 anstelle PHP 7

Beitrag von hec_tech » 04.01.2019 13:42:29

Poste mal die Konfiguration von Apache2.

Vor allem würde mich die Konfiguration des php7 Modules brauchen. Die sollte im Verzeichnis mods-enabled liegen.

BennoGronau
Beiträge: 7
Registriert: 04.01.2019 11:41:41

Re: Web Server nutzt PHP 5.6 anstelle PHP 7

Beitrag von BennoGronau » 04.01.2019 13:45:56

Welche Datei genau brauchst du? /etc/apache2/apache2.conf ?

getphp
Beiträge: 80
Registriert: 14.01.2006 15:23:28

Re: Web Server nutzt PHP 5.6 anstelle PHP 7

Beitrag von getphp » 04.01.2019 13:46:08

Du nutzt PHP nicht als Modul, sondern als FPM Variante. Daher hat das De/Aktivieren des PHP-Moduls bei Apache keine Auswirkung.

Stelle sicher, dass PHP 7 als FPM konfiguriert ist und auch die gleichen Pools angelegt sind, unter /etc/php/#PHP-VERSION#/fpm/pool.d/
Für PHP 5.6 kann dieses Verzeichnis auch wo anders liegen.

Schau in die Apache-vHost Konfiguration rein, und stelle dort entweder global oder pro Domain die PHP-Version ein - welche Variante du nutzt, müsstest du nachschauen.
Gruss
getphp

BennoGronau
Beiträge: 7
Registriert: 04.01.2019 11:41:41

Re: Web Server nutzt PHP 5.6 anstelle PHP 7

Beitrag von BennoGronau » 04.01.2019 13:50:31

Wahrscheinlich meinst du diese?

Code: Alles auswählen

/etc/apache2/mods-enabled# ls -ltr *php7*
lrwxrwxrwx 1 root root 29 Nov  6 15:38 php7.0.load -> ../mods-available/php7.0.load
lrwxrwxrwx 1 root root 29 Nov  6 15:38 php7.0.conf -> ../mods-available/php7.0.conf

Code: Alles auswählen

 cat ../mods-available/php7.0.conf
<FilesMatch ".+\.ph(p[3457]?|t|tml)$">
    SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch ".+\.phps$">
    SetHandler application/x-httpd-php-source
    # Deny access to raw php sources by default
    # To re-enable it's recommended to enable access to the files
    # only in specific virtual host or directory
    Require all denied
</FilesMatch>
# Deny access to files without filename (e.g. '.php')
<FilesMatch "^\.ph(p[3457]?|t|tml|ps)$">
    Require all denied
</FilesMatch>

# Running PHP scripts in user directories is disabled by default
#
# To re-enable PHP in user directories comment the following lines
# (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it
# prevents .htaccess files from disabling it.
<IfModule mod_userdir.c>
    <Directory /home/*/public_html>
        php_admin_flag engine Off
    </Directory>
</IfModule>

Code: Alles auswählen

cat ../mods-available/php7.0.conf
<FilesMatch ".+\.ph(p[3457]?|t|tml)$">
    SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch ".+\.phps$">
    SetHandler application/x-httpd-php-source
    # Deny access to raw php sources by default
    # To re-enable it's recommended to enable access to the files
    # only in specific virtual host or directory
    Require all denied
</FilesMatch>
# Deny access to files without filename (e.g. '.php')
<FilesMatch "^\.ph(p[3457]?|t|tml|ps)$">
    Require all denied
</FilesMatch>

# Running PHP scripts in user directories is disabled by default
#
# To re-enable PHP in user directories comment the following lines
# (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it
# prevents .htaccess files from disabling it.
<IfModule mod_userdir.c>
    <Directory /home/*/public_html>
        php_admin_flag engine Off
    </Directory>
</IfModule>
root@server:/etc/apache2/mods-enabled#
root@server:/etc/apache2/mods-enabled#
root@server:/etc/apache2/mods-enabled#
root@server:/etc/apache2/mods-enabled# cat ../mods-available/php7.0.load
# Conflicts: php5
# Depends: mpm_prefork
LoadModule php7_module /usr/lib/apache2/modules/libphp7.0.so

BennoGronau
Beiträge: 7
Registriert: 04.01.2019 11:41:41

Re: Web Server nutzt PHP 5.6 anstelle PHP 7

Beitrag von BennoGronau » 04.01.2019 13:56:10

getphp hat geschrieben: ↑ zum Beitrag ↑
04.01.2019 13:46:08
Du nutzt PHP nicht als Modul, sondern als FPM Variante. Daher hat das De/Aktivieren des PHP-Moduls bei Apache keine Auswirkung.

Stelle sicher, dass PHP 7 als FPM konfiguriert ist und auch die gleichen Pools angelegt sind, unter /etc/php/#PHP-VERSION#/fpm/pool.d/
Für PHP 5.6 kann dieses Verzeichnis auch wo anders liegen.

Schau in die Apache-vHost Konfiguration rein, und stelle dort entweder global oder pro Domain die PHP-Version ein - welche Variante du nutzt, müsstest du nachschauen.
Was muss ich tun um PHP 7 als FPM zu konfigurieren? Ist das sinnvoll oder sollte ich es lieber als Modul nutzen (Ich benutzte Joomla als CMS auf dem Server). Wenn Modul besser ist, was muss ich dann machen?

getphp
Beiträge: 80
Registriert: 14.01.2006 15:23:28

Re: Web Server nutzt PHP 5.6 anstelle PHP 7

Beitrag von getphp » 04.01.2019 14:05:12

BennoGronau hat geschrieben: ↑ zum Beitrag ↑
04.01.2019 13:56:10
Was muss ich tun um PHP 7 als FPM zu konfigurieren? Ist das sinnvoll oder sollte ich es lieber als Modul nutzen (Ich benutzte Joomla als CMS auf dem Server). Wenn Modul besser ist, was muss ich dann machen?
Schau nach, ob das Paket php7.0-fpm installiert ist.

Welche Art von PHP (Modul/FPM) sinnvoll ist, hängt von deinem Einsatz-Szenario ab. Bei Debian 8 kannst du ohnehin nicht ohne weiteres von http/2 profitieren, daher könntest du auch auf Modul umstellen.
Aktuell scheint allerdings FPM eingerichtet zu sein, daher weiß ich gar nicht, warum du plötzlich das Modul aktivieren willst.

Wer hat den Server denn installiert und kümmert sich um Sicherheit, Updates & Co?
Gruss
getphp

schwedenmann
Beiträge: 5528
Registriert: 30.12.2004 15:31:07
Wohnort: Wegberg

Re: Web Server nutzt PHP 5.6 anstelle PHP 7

Beitrag von schwedenmann » 05.01.2019 09:21:46

Hallo

Ev. ist das für dich hilfreich

http://www.myphpforum.de/thread/1362-ph ... ntu-linux/

mfg
schwedenmann

BennoGronau
Beiträge: 7
Registriert: 04.01.2019 11:41:41

Re: Web Server nutzt PHP 5.6 anstelle PHP 7

Beitrag von BennoGronau » 06.01.2019 20:46:33

getphp hat geschrieben: ↑ zum Beitrag ↑
04.01.2019 14:05:12
BennoGronau hat geschrieben: ↑ zum Beitrag ↑
04.01.2019 13:56:10
Was muss ich tun um PHP 7 als FPM zu konfigurieren? Ist das sinnvoll oder sollte ich es lieber als Modul nutzen (Ich benutzte Joomla als CMS auf dem Server). Wenn Modul besser ist, was muss ich dann machen?
Schau nach, ob das Paket php7.0-fpm installiert ist.

Welche Art von PHP (Modul/FPM) sinnvoll ist, hängt von deinem Einsatz-Szenario ab. Bei Debian 8 kannst du ohnehin nicht ohne weiteres von http/2 profitieren, daher könntest du auch auf Modul umstellen.
Aktuell scheint allerdings FPM eingerichtet zu sein, daher weiß ich gar nicht, warum du plötzlich das Modul aktivieren willst.

Wer hat den Server denn installiert und kümmert sich um Sicherheit, Updates & Co?
Ich muss gestehen, das ich mit meinem gefährlichen Halbwissen selbst für Sicherheit und Updates zuständig bin.
Ja, php7.0-fpm ist installiert. Allerdings laufen im Moment beide Processe:

Code: Alles auswählen

/etc/apt# ps -ef | grep php
root      3948     1  0 Jan02 ?        00:00:14 php-fpm: master process (/etc/php5/fpm/php-fpm.conf)
www-data  3950  3948  0 Jan02 ?        00:00:00 php-fpm: pool www
www-data  3951  3948  0 Jan02 ?        00:00:00 php-fpm: pool www
root     20935     1  0 20:31 ?        00:00:00 php-fpm: master process (/etc/php/7.2/fpm/php-fpm.conf)
www-data 20936 20935  0 20:31 ?        00:00:00 php-fpm: pool www
www-data 20937 20935  0 20:31 ?        00:00:00 php-fpm: pool www
bennosc+ 21750  3948  8 20:38 ?        00:00:01 php-fpm: pool gegogronau.de
root     21927 10982  0 20:39 pts/0    00:00:00 grep php
Wie bekomme ich Apache nun dazu PHP 7 zu benutzen anstelle von zur Zeit immer noch benutzten PHP 5? Wie sorge ich dafür, das nur noch der PHP 7 Process läuft?

BennoGronau
Beiträge: 7
Registriert: 04.01.2019 11:41:41

Re: Web Server nutzt PHP 5.6 anstelle PHP 7

Beitrag von BennoGronau » 06.01.2019 22:09:34

Danke für alle Hilfe. Ich habe es geschafft.

Antworten