Điểm:1

Apache vẫn còn trên PHP 7 trong khi các phiên bản máy chủ là php 8

lá cờ ug

Tôi vừa cài đặt php 8 (theo https://rpms.remirepo.net/wizard/) trên VPS của tôi chạy CentOS 7. Mặc dù trong CLI, nó hiển thị rằng PHP 8 khả dụng, nhưng khi tôi cung cấp một trang web bằng phpinfo() thì nó vẫn hiển thị php 7.

PHP 8.0.7 (cli) (được xây dựng: ngày 1 tháng 6 năm 2021 18:43:05) ( NTS gcc x86_64 )
Bản quyền (c) Nhóm PHP
Zend Engine v4.0.7, Bản quyền (c) Zend Technologies

Ngoài ra khi tôi kiểm tra với nhà soạn nhạc, nó hiển thị php 8

Chạy 2.1.3 (2021-06-09 16:31:20) với PHP 8.0.7 trên Linux / 3.10.0-1127.18.2.el7.x86_64

Nhưng thông qua một trang web hiển thị phpinfo(), nó hiển thị

Phiên bản PHP 7.2.34

Các lệnh tôi đã chạy (từ trình hướng dẫn remi) để cài đặt PHP là:

yum cài đặt https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

yum cài đặt https://rpms.remirepo.net/enterprise/remi-release-7.rpm

yum cài đặt yum-utils

yum cài đặt php80

Tiếp theo, tôi đã thử khởi động lại apache bằng 'sudo systemctl restart httpd.service' nhưng điều này không giải quyết được. Tôi nghi ngờ rằng bằng cách nào đó tôi vẫn cần chuyển đổi giữa cả hai phiên bản PHP nhưng tôi không biết liệu đó có phải là nguyên nhân hay cách thực hiện hay không.

Một số thông tin khác

$ mà php
/usr/bin/php

$ đâu là 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

đâu là php80
php80: /usr/bin/php80

$ httpd -v
Phiên bản máy chủ: Apache/2.4.6 (CentOS)
Máy chủ được xây dựng: 16/11/2020 16:18:20

Tìm kiếm thêm của tôi (thnx t3ln3t) đã đưa tôi đến tệp cấu hình apache, tệp này tham chiếu tệp cấu hình php7, sau đó trỏ đến 'libphp72.so'. Vì vậy, tôi đoán rằng cuối cùng điều đó cần trỏ đến php8. Nhưng mặc dù đã cài đặt php8 nhưng tôi không thấy tệp libphp80.so.

Cảm ơn bạn đã hướng dẫn về những gì tôi nên làm tiếp theo để cấu hình apache trỏ đến phiên bản php8 mới được cài đặt.

lá cờ ug
@MichaelHampton Tôi đã cập nhật câu hỏi với gói được cài đặt. Không chắc nếu tôi khởi động lại PHP, đó sẽ là lệnh nào?
lá cờ ug
Tôi đã cài đặt PHP8
Michael Hampton avatar
lá cờ cz
Tôi đã xem lại bản chỉnh sửa của bạn nhưng nó không hiển thị bất cứ điều gì về việc bạn cài đặt PHP 8. Làm cách nào nó xâm nhập được vào hệ thống của bạn?
lá cờ ug
Tôi đã cài đặt php 8 thông qua các lệnh được tạo qua https://rpms.remirepo.net/wizard/. Tôi đã thêm từng lệnh mà tôi đã chạy trong câu hỏi.
Michael Hampton avatar
lá cờ cz
Hoàn tác cài đặt php80 và bắt đầu lại. Bạn đã chọn "Nhiều phiên bản đồng thời" và lẽ ra bạn nên chọn "Mặc định/Phiên bản duy nhất (cách đơn giản nhất)".
Điểm:2
lá cờ in

Đây có thể là trường hợp có hai phiên bản được cài đặt trên hệ thống của bạn. Nếu bạn nhìn vào rpms bạn đã cài đặt, bạn có thể thấy php7 đã được cài đặt và nằm ở một nơi khác trên hệ thống. Rất có thể trong đường dẫn tìm kiếm mà apache sử dụng để tìm mọi thứ. Ngoài ra, hãy xem lại tệp cấu hình apache của bạn. mod_php rất có thể được đặt tên và có đường dẫn đầy đủ đến mô-đun đó.

#rpm -qa | grep php

Lệnh này sẽ hiển thị cho bạn tất cả các phiên bản php đã cài đặt được cài đặt bằng rpms.Nếu php7 được cài đặt từ nguồn phân phối hoặc tarball do ai đó tạo hoặc tìm thấy, điều này sẽ HẤP DẪN!!! Nếu bạn tìm thấy php7 rpms, hãy lên lịch bảo trì (thời gian ngừng hoạt động) cho trang web của bạn, xóa php rpms cũ và sau đó khởi động lại apache. Một lần nữa, hãy cẩn thận xem các tệp cấu hình apache của bạn vì mod_php có thể được đặt tên và có đường dẫn đầy đủ. Bạn sẽ muốn sửa đổi điều đó để cho apache biết để xem xét phiên bản mới hơn của php.

lá cờ ug
Thnx, lệnh đó không hoạt động với tôi, nhưng cấu hình apache nằm ở /etc/httpd/conf/httpd.conf thực sự trỏ đến conf.modules.d/*.conf trong đó có 15-php72-php.conf . Vì vậy, đoán rằng tôi cần một sự thay đổi ở đó để trỏ đến php80 thay vì php72?!?
t3ln3t avatar
lá cờ in
đảm bảo bạn lưu một bản sao của tệp cấu hình đó chưa sửa đổi trước khi thực hiện sửa đổi. Ít nhất bạn có thể đưa nó trở lại hoạt động với php7 nếu các sửa đổi của bạn không hoạt động vì một số lý do. Nếu không tôi sẽ nói có.
Remi Collet avatar
lá cờ jp
Bạn có thể cần xóa mod_php (gói php72-php) và cài đặt phiên bản phù hợp (php80-php), btw như Michael Hampton đã nói, đơn giản hơn là làm theo hướng dẫn của Trình hướng dẫn cho "phiên bản đơn", trừ khi bạn thực sự muốn có nhiều phiên bản.
Remi Collet avatar
lá cờ jp
Và nếu bạn cần nhiều phiên bản, tôi khuyên bạn nên chuyển sang FPM và đọc https://developers.redhat.com/blog/2017/10/25/php-configuration-tips
lá cờ ug
Thnx @RemiCollet Tôi đã bắt đầu bằng cách cài đặt một phiên bản duy nhất, nhưng kết quả vẫn như vậy. Có vẻ như trước đây trong cấu hình apache, một số cấu hình cụ thể đã được thực hiện với liên kết tượng trưng sâu tới phiên bản php. Cố gắng gỡ rối & giải quyết điều đó ngay bây giờ.
lá cờ ug
Cuối cùng, tôi đã gỡ bỏ php và cài đặt lại thông qua: yum xóa php* yum cài đặt php php-{cli, fpm,mysqlnd,zip,devel,gd,mbstring,curl,xml,pear,bcmath,json} dịch vụ http configtest systemctl bắt đầu httpd

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.