Tập lệnh PHP không thực thi trên máy chủ Apache


54

Tôi vừa cài đặt lại Apache và PHP5 nhưng khi tôi truy cập vào tài liệu gốc của mình, nó chỉ tải xuống tệp "tải xuống". Và khi tôi thử documentroot /index.php, nó chỉ tải xuống tệp PHP.

Tôi đã cài đặt PHP nhưng dường như Apache không muốn thực thi nó.
Mọi người đề nghị thêm một dòng 'Tải mô-đun' vào tôi httpd.confnhưng tôi không có tệp đó.

Câu trả lời:


103

Đánh máy:

sudo apt-get install apache2 php5 libapache2-mod-php5

sẽ cài đặt mọi thứ bạn cần và sẽ khởi động máy chủ apache với sự hỗ trợ cho PHP.

Để xác minh rằng mô-đun php đã được tải, gõ:

a2query -m php5

nếu không được bật, hãy tải với:

sudo a2enmod php5

và khởi động lại apache:

sudo service apache2 restart

Cập nhật cho php7.x (đã thử nghiệm trên Ubuntu 16.04, 16.10, 18.04, 18.10 )

Nhờ các ý kiến, tôi cập nhật câu trả lời cho php7.x.

Tải về:

sudo apt-get install apache2 php7.x libapache2-mod-php7.x 

Kiểm chứng:

a2query -m php7.x

Tải:

sudo a2enmod php7.x

Khởi động lại apache:

sudo service apache2 restart

Nó sẽ tốt hơn để sử dụng a2enmodhơn là sao chép tệp theo cách thủ công giữa các mod có sẵn và kích hoạt mod. a2enmodtạo một liên kết tượng trưng và do đó bạn sẽ chỉ có một bản sao của cấu hình.
jkt123

@ jkt123 bạn nói đúng. cảm ơn vì lời khuyên, tôi chỉnh sửa câu trả lời của tôi
girardengo

Trong trường hợp của tôi, nó nói "LRI: mô-đun php5 không tồn tại!" nó được cài đặt
Marian Klühspies

3
cho ubuntu 16.04 với php7 tôi đã thực hiện các lệnh theo thứ tự apt-get install libapache2-mod-php, a2query -m php7.0,service apache2 restart
Marlo

Đối với Ubuntu 14.04: # a2query -m php7.0 php7.0 (được bật bởi quản trị viên trang web) Mã php vẫn không được thực thi
Ashish Karpe

19

Một nguyên nhân phổ biến khác là các thẻ ngắn php <?không được kích hoạt bởi cấu hình php.ini mặc định, vì vậy sau khi nâng cấp hoặc cài đặt lại, cài đặt đó có thể bị tắt và mã php có thể phụ thuộc vào nó. Hãy thử thay thế <?bằng <?php.

( Tín dụng )


13

Ubuntu 16.04 đã chuyển sang PHP 7. Lệnh đơn này sẽ thực hiện công việc cho bạn:

sudo apt-get install apache2 php libapache2-mod-php

Đây libapache2-mod-phplà gói meta cài đặt libapache2-mod-php7.


2

Mở php.inibằng nanotrong thiết bị đầu cuối:

sudo nano /etc/php/php5.6/apache2/php.ini

Sau đó thay đổi:

short_open_tag = Off

đến

short_open_tag = On

Sau đó lưu và khởi động lại apache2:

sudo systemctl restart apache2

1
Hoặc sửa các tập lệnh PHP :-)This directive determines whether or not PHP will recognize code between <? and ?> tags as PHP source which should be processed as such. It is generally recommended that <?php and ?> should be used and that this feature should be disabled [...]
Nicolas Raoul

1

Tôi gặp vấn đề tương tự, nhưng vấn đề cụ thể của tôi là duy nhất. Tôi đã chạy trong một thư mục người dùng (sử dụng mod_userdir) - có nghĩa là bạn truy cập trang web của tôi với http://host.name.com/~username/example.php

Điều này bị tắt theo mặc định trong php * .conf trong thư mục hỗ trợ mod của tôi. Tôi đã phải sửa đổi nó để bình luận:

#<IfModule mod_userdir.c>
#    <Directory /home/*/public_html>
#        php_admin_flag engine Off
#    </Directory>
#</IfModule>

Đó là một nỗi đau để tìm ra ..

Chà, tôi nghi ngờ bất kỳ ai có vấn đề cụ thể NÀY, nhưng tôi đoán tôi sẽ thêm nó bởi vì nó gây khó chịu cho tôi và MAYBE ai đó đang làm điều tương tự. Không ai sử dụng ~ / người dùng nữa tôi đoán, ngoại trừ tôi.

Bạn phải khởi động lại apache sau này tất nhiên.


0

Trường hợp của tôi là một chút khác nhau. Tôi đã nâng cấp từ Ubuntu 19.04 lên 19.10. Trong khi nâng cấp, nó đã cài đặt php 7.3 (trong đó php 7.2 đã được cài đặt). Với 2 phiên bản được cài đặt a2query -m php7.3 return Không có mô-đun nào khớp với php7.3 .

Giải pháp tôi tìm thấy là từ cách cài đặt-php-7-3-on-ubfox .

Để đặt PHP 7.0 làm mặc định, hãy chạy

update-alternatives --set php /usr/bin/php7.0

Để đặt PHP 7.2 làm mặc định, hãy chạy

update-alternatives --set php /usr/bin/php7.2

Để đặt PHP 7.3 làm mặc định, hãy chạy

update-alternatives --set php /usr/bin/php7.3

Trước khi có thể định cấu hình Apache để sử dụng PHP 7.3, chúng ta cần phải tắt phiên bản PHP 7.0 cũ bằng cách nhập

a2dismod php7.2

Bây giờ kích hoạt phiên bản PHP 7.3 mới được cài đặt bằng lệnh sau:

a2enmod php7.3

Khởi động lại máy chủ web Apache để các thay đổi có hiệu lực:

sudo systemctl restart apache2
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.