PHP hiển thị dưới dạng văn bản thuần túy sau khi nâng cấp lên 18.04


8

Tôi vừa nâng cấp lên Ubuntu 18.04. Bây giờ apache phục vụ php của trang web của tôi dưới dạng php plaintext. Tôi đã thử: Tại sao các tệp PHP của tôi hiển thị dưới dạng văn bản thuần túy? (trên Stack Overflow)PHP 7 và apache hiển thị văn bản thuần túy và không thể khởi động lại . Các gói php được cài đặt là:

php              php7.2-cli       php7.2-fpm       php7.2-mbstring  php7.2-pgsql     php7.2-sqlite3   php7.2-zip       php-curl         php-igbinary     php-pgsql        php-xml
php7.2           php7.2-common    php7.2-gd        php7.2-mysql     php7.2-readline  php7.2-xml       php-bz2          php-fpm          php-mbstring     php-soap         php-xmlrpc
php7.2-bz2       php7.2-curl      php7.2-json      php7.2-opcache   php7.2-soap      php7.2-xmlrpc    php-common       php-gd           php-mysql        php-sqlite3      php-zip

Một trong những trang web trong câu hỏi có thể được nhìn thấy ở đây .

Các apache error.log:

[Thu Apr 26 16:02:12.740886 2018] [mpm_prefork:notice] [pid 6504] AH00169: caught SIGTERM, shutting down

[Thu Apr 26 16:02:13.001806 2018] [mpm_prefork:notice] [pid 7704] AH00163: Apache/2.4.29 (Ubuntu) OpenSSL/1.1.0g configured -- resuming normal operations

[Thu Apr 26 16:02:13.001900 2018] [core:notice] [pid 7704] AH00094: Command line: '/usr/sbin/apache2'

access.log:

<MYIP> - - [26/Apr/2018:16:02:40 +0200] "-" 408 3435 "-" "-"

<MYIP> - - [26/Apr/2018:16:02:40 +0200] "-" 408 3435 "-" "-"

<MYIP> - - [26/Apr/2018:16:02:40 +0200] "-" 408 3435 "-" "-"

Có lẽ bạn nên cài đặt và kích hoạt mô-đun php đúng của Apache libapache2-mod-php7.2(và xóa sạch mô-đun cũ).
pa4080

libapache2-mod-php7.2 đã là phiên bản mới nhất. :(
Benedikt Wutzi

Có lẽ bạn nên kích hoạt nó : sudo a2enmod php7.2.
pa4080

1
Mô-đun php7.2 đã được bật. ;)
Benedikt Wutzi

1
Bạn có thể viết câu trả lời như một câu trả lời không? Sẽ rất hữu ích nếu những người khác vấp phải tình huống tương tự
Lily Bergonzat

Câu trả lời:


23

Đây là những gì đã cài đặt sắp xếp của tôi

sudo apt install php7.2 php7.2-common php7.2-cli
sudo a2enmod php7.2

2
Cảm ơn, với tôi, cho phép mô-đun php7.2 hoạt động hoàn hảo, - dường như đã có xung đột giữa nhiều phiên bản của php
Ag tích Vasiliauskas

1
Tôi chỉ cần dòng thứ hai a2enmod. Khi đã được kích hoạt, ứng dụng đã xuất hiện. cảm ơn!
dùng1794918

4

Trên thực tế, ngoài các lệnh trong câu trả lời này , bạn cần

sudo apt install libapache2-mod-php

cũng. Bằng cách nào đó nó đã biến mất!


0

Có vẻ như điều này có thể liên quan đến việc cài đặt và kích hoạt 2 phiên bản PHP cùng lúc sau khi nâng cấp. Cả hai cách trên đều không phù hợp với tôi, vì vậy tôi đã gỡ cài đặt Apache, PHP 7.1 và PHP 7.2, cài đặt lại Apache và PHP 7.2 và mọi thứ đang hoạt động.


0

Tôi đã gặp phải điều này trong khi nâng cấp từ Ubuntu 16.04.6 LTS lên 18.04 LTS bằng do-release-upgradecông cụ. Trong trường hợp của tôi, những điều sau đây đã giúp:

sudo apt-get install php7.2 libapache2-mod-php

Điều này cũng được thêm vào libapache2-mod-php7.2. php7.2-commonphp7.2-cliđã được cài đặt, vì vậy chúng đã bị bỏ qua. sudo a2enmod php7.2được thực hiện tự động bởi apt-get.

BTW, bạn có thể chẩn đoán sự cố này bằng cách tạo một tệp /var/www/html/phpinfo.phpcó nội dung sau:

<?php phpinfo(); ?>

và sau đó trỏ trình duyệt của bạn tới URL http://your.server/phpinfo.php. Bạn sẽ có được một trang web đẹp với tất cả các cài đặt PHP. Nếu bạn nhận được <?php phpinfo(); ?>văn bản thay thế thì bạn cần phải cài đặt các gói được mô tả ở trên.

Tôi đang đề cập đến điều này bởi vì trước tiên tôi chỉ chạy php -vtrên dòng lệnh và nó nói với tôi rằng PHP 7.2 đã được cài đặt. Điều này là đúng (như các công cụ dòng lệnh từ gói php7.2-cliđã thực sự được cài đặt), nhưng nó không phải là toàn bộ câu chuyện. :-)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.