ubuntu 20.04 apache2-php文件下载



php文件不会在浏览器中加载,而是下载的。我已经在serverfault.com和stackoverflow上阅读了许多关于这个问题的解决方案。(许多帖子都是几年前发布的,使用的是Apache和php的旧版本,一些配置文件及其位置已经更改。(我找到了一套常见的解决方案,但没有一个对我有效。下面的链接包含了我尝试过的没有解决我问题的建议的示例。

apache2在ubuntu-php文件下载

Apache显示PHP代码而不是执行

https://serverfault.com/questions/25227/why-is-php-script-downloaded-instead-of-executed

https://serverfault.com/questions/286882/apache-is-not-interpreting-php-files

我安装了apache2。如果我去";localhost";在我的浏览器中;Apache2 Ubuntu默认页面";。我安装了php"php7.4.conf";以及";php7.4.load";出现在/etc/apache2/mods available和/etc/apache2/mods enabled中。我验证php是否使用sudo a2enmod php7.4启用,这将提供

Considering conflict mpm_event for mpm_prefork:
Considering conflict mpm_worker for mpm_prefork:
Module mpm_prefork already enabled
Considering conflict php5 for php7.4:
Module php7.4 already enabled

根据对不同问题的多次回答,我在/etc/apache2/apache2.conf文件中得到了以下内容(请注意,这不是整个文件(:

Include /etc/phpmyadmin/apache.conf
AddType application/x-httpd-php .php
# Use for PHP 7.x:
LoadModule php7_module        modules/libphp7.4.so
AddHandler php7-script php 
AddType application/x-httpd-php-source .phps
AddHandler application/x-httpd-php .phps
AddHandler application/x-httpd-php .php
AddType application/x-httpd-php .php
# Add index.php to your DirectoryIndex line:
DirectoryIndex index.html index.php

注意:我已经验证了apache2.conf文件是否正在执行,方法是在文件中添加一行错误的代码并尝试重新启动apache,这导致了一个错误。libphp7.4.so位于/usr/lib/apache2/modules中。

我的/etc/apache2/mods-available/php7.4.conf和/etc/apache2/mods-enabled/php7.4.conf文件如下所示:

<FilesMatch ".+.ph(ar|p|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(ar|p|ps|tml)$">
#     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>

在我做了每一次更改之后,我都用sudo service apache2 restart重新启动了apache。我做了一个测试,仍然下载了php文件。我使用的是一个名为verify.php的简单php文件,其中包含以下内容:

<?php
phpinfo();
?>

我以前从未处理过这些事情,所以我可能会错过一些显而易见的东西?对于一些额外的上下文,我正在进行一个学校项目,计划使用php页面查询数据库并生成一个包含结果的表。

在我遇到类似困难的情况下:

  1. 我不需要apache2.conf:List item 中的那些语句

  2. 我的/etc/apache2/mods-available/php7.4.conf/etc/apache2/mods-enabled/php7.4.conf中有类似的内容

  3. 我跑了:

    sudo a2dismod mpm_event && sudo a2enmod mpm_prefork && sudo a2enmod php7.4
    

然而,让我开始工作的是将"php"拼错为"phd"(在etc/apache2.confSetHandler application/x-httpd-php中(:

<FilesMatch .php$>
SetHandler  application/x-httpd-php
</FilesMatch>

我认为这是调用PHP作为处理程序所唯一需要的命令。

附言:我有不止一个错误配置文件的实例。。我还没有为所有这些linux配置过程找到一个好的控制模板。(这次安装是由某人启动的,我接管了第二部分(

(本节包含特定于Apache 2.x在Unix系统上安装PHP的注释和提示。https://www.php.net/manual/en/install.unix.apache2.php)

相关内容

  • 没有找到相关文章

最新更新