Puncte:1

Apache rămâne pe PHP 7, în timp ce versiunile de server sunt PHP 8

drapel ug

Tocmai am instalat php 8 (urmează https://rpms.remirepo.net/wizard/) pe VPS-ul meu care rulează CentOS 7. În timp ce în CLI arată că PHP 8 este disponibil, atunci când servesc o pagină web cu phpinfo() încă arată php 7.

PHP 8.0.7 (cli) (construit: 1 iunie 2021 18:43:05) ( NTS gcc x86_64 )
Drepturi de autor (c) Grupul PHP
Zend Engine v4.0.7, Copyright (c) Zend Technologies

De asemenea, când verific cu compozitorul, arată php 8

Rulează 2.1.3 (2021-06-09 16:31:20) cu PHP 8.0.7 pe Linux / 3.10.0-1127.18.2.el7.x86_64

Dar printr-o pagină web care afișează phpinfo() se arată

Versiunea PHP 7.2.34

Comenzile pe care le-am executat (din vrăjitorul remi) pentru a instala PHP sunt:

yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm

yum instalează yum-utils

yum instalează php80

Apoi am încercat să repornesc apache cu „sudo systemctl restart httpd.service”, dar acest lucru nu s-a rezolvat. Bănuiesc că într-un fel mai trebuie să comut între ambele versiuni PHP, dar nu știu dacă aceasta este cauza sau cum să fac asta.

Mai multe informații

$ care php
/usr/bin/php

$ unde este php
php: /usr/bin/php /usr/lib64/php /etc/php.ini /etc/php.d /usr/include/php /usr/share/php /usr/share/man/man1/php.1 .gz

unde este php80
php80: /usr/bin/php80

$ httpd -v
Versiunea serverului: Apache/2.4.6 (CentOS)
Server construit: 16 noiembrie 2020 16:18:20

Căutarea mea mai departe (thnx t3ln3t) m-a dus la fișierele de configurare apache, care se referă la un fișier de configurare php7 care apoi indică „libphp72.so”. Deci, bănuiesc că în cele din urmă trebuie să indice php8. Dar, deși php8 este instalat, nu văd un fișier libphp80.so.

Vă mulțumesc pentru orice îndrumare cu privire la ce ar trebui să fac în continuare pentru a face ca apache config să indice noua versiune php8 instalată.

drapel ug
@MichaelHampton Am actualizat întrebarea cu pachetul instalat. Nu sunt sigur dacă am repornit PHP, ce comandă ar fi?
drapel ug
Am instalat PHP8
Michael Hampton avatar
drapel cz
Am verificat editarea dvs., dar nu arată nimic despre instalarea dvs. PHP 8. Cum a ajuns în sistemul dvs.?
drapel ug
Am instalat php 8 prin comenzile generate prin https://rpms.remirepo.net/wizard/. Am adăugat fiecare comandă pe care am rulat-o în întrebare.
Michael Hampton avatar
drapel cz
Anulați instalarea php80 și începeți de la capăt. Ați selectat „Versiuni multiple simultan” și ar fi trebuit să selectați „Versiune implicită / o singură (cel mai simplu mod)”.
Puncte:2
drapel in

Acesta este probabil cazul a două versiuni instalate pe sistemul dumneavoastră. Dacă te uiți la rpm-urile pe care le-ai instalat, probabil vei descoperi că php7 a fost instalat și locuiește în altă parte a sistemului. Foarte probabil în calea de căutare pe care apache o folosește pentru a găsi lucruri. De asemenea, revizuiți fișierul de configurare apache. mod_php este foarte probabil numit și o cale completă către acel modul este prezentă.

#rpm -qa | grep php

Această comandă ar trebui să vă arate toate versiunile instalate de php care au fost instalate folosind rpms.Dacă php7 a fost instalat dintr-o distribuție sursă sau tarball pe care cineva l-a făcut sau a găsit, acest lucru va fi SUCK!!! Dacă găsiți rpm-uri php7, programați o întreținere (timp de oprire) pentru site-ul dvs., eliminați vechile rpm-uri php și apoi reporniți apache. Din nou, aveți grijă să vă uitați la fișierele dvs. de configurare apache, deoarece mod_php este probabil numit și o cale completă este prezentă. Veți dori să modificați acest lucru pentru a-i anunța pe apache să se uite la versiunea mai nouă de php.

drapel ug
Thnx, acea comandă nu funcționează pentru mine, dar configurația apache situată la /etc/httpd/conf/httpd.conf indică într-adevăr la conf.modules.d/*.conf în care este prezent 15-php72-php.conf . Deci ghicesc că am nevoie de o schimbare acolo pentru a indica php80 în loc de php72?!?
t3ln3t avatar
drapel in
asigurați-vă că salvați o copie a acelui fișier de configurare nemodificat înainte de a face modificări. Cel puțin îl puteți pune înapoi pe php7 care funcționează dacă modificările dvs. nu funcționează dintr-un motiv oarecare. Altfel as spune ca da.
Remi Collet avatar
drapel jp
Probabil că trebuie să eliminați mod_php (pachetul php72-php) și să instalați versiunea corectă (php80-php), așa cum a spus Michael Hampton, mai simplu de urmat instrucțiunile Expertului pentru „versiune unică”, cu excepția cazului în care doriți cu adevărat versiuni multiple.
Remi Collet avatar
drapel jp
Și dacă aveți nevoie de versiuni multiple, vă recomand să treceți la FPM și să citiți https://developers.redhat.com/blog/2017/10/25/php-configuration-tips
drapel ug
Thnx @RemiCollet Am început prin a instala versiunea unică, dar rezultatul a fost același. Se pare că anterior, în configurația Apache, o anumită configurație a fost făcută cu linkuri simbolice profunde la versiunea php. Încerc să descurc și să rezolv asta acum.
drapel ug
În cele din urmă, am ajuns să elimin php și să reinstalez prin: yum elimina php* yum instalează php php-{cli, fpm,mysqlnd,zip,devel,gd,mbstring,curl,xml,pear,bcmath,json} serviciu http configtest systemctl start httpd

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.