如何在 Linux Fedora 上的 Apache 中启用 PHP


How to enable PHP in Apache on Linux Fedora?

标题几乎总结了它。我正在运行Fedora 18 64位,通过"httpd"安装Apache。我的Apache运行良好,但我的PHP似乎不起作用。我相当确定我确实在我的机器上安装了它(Linux的新手)。

我在/var/www/html/目录中创建了一个"test.php"文件,其中包含代码:<?php phpinfo(); ?>但它没有按照应有的方式显示,它只是将文本打印到我的浏览器。

所以我的想法是PHP没有在我的Apache配置或其他东西中设置。有人可以对此有所了解,并就如何使其工作提出一些建议吗?

提前感谢!

编辑,这是我的httpd.config文件:

ServerRoot "/etc/httpd"
Listen 80
Include conf.modules.d/*.conf
User apache
Group apache
ServerAdmin root@localhost
<Directory />
   AllowOverride none
   Require all denied
</Directory>
DocumentRoot "/var/www/html"
<Directory "/var/www">
   AllowOverride None    
   Require all granted
</Directory>
<Directory "/var/www/html">
   Options Indexes FollowSymLinks
   AllowOverride None
   Require all granted
</Directory>
<IfModule dir_module>
   DirectoryIndex index.html
</IfModule>
<Files ".ht*">
   Require all denied
</Files>
ErrorLog "logs/error_log"
LogLevel warn
<IfModule log_config_module>
   LogFormat "%h %l %u %t '"%r'" %>s %b '"%{Referer}i'" '"%{User-Agent}i'"" combined
   LogFormat "%h %l %u %t '"%r'" %>s %b" common
   <IfModule logio_module>
     LogFormat "%h %l %u %t '"%r'" %>s %b '"%{Referer}i'" '"%{User-Agent}i'" %I %O" combinedio
   </IfModule>
   CustomLog "logs/access_log" combined
</IfModule>
<IfModule alias_module>
   ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
</IfModule>
<Directory "/var/www/cgi-bin">
   AllowOverride None
   Options None
   Require all granted
</Directory>
<IfModule mime_module>
   TypesConfig /etc/mime.types
   AddType application/x-compress .Z
   AddType application/x-gzip .gz .tgz
   AddType text/html .shtml
   AddOutputFilter INCLUDES .shtml
</IfModule>
AddDefaultCharset UTF-8
MIMEMagicFile conf/magic
EnableSendfile on
IncludeOptional conf.d/*.conf

你可能有一些问题,其中之一是你没有为Apache定义".php"索引

喜欢这个

<IfModule mime_module>
   AddType text/html .php .phps
</IfModule>

请参阅本教程安装 Apache 和 php

并安装 Apache 和 php

  1. yum install php
  2. 重新启动 apache。
  3. 再试一次。

PHP 需要自己安装。它不是一个无需先安装 PHP 即可简单地启用的 apache 模块。

我通过重新安装httpd和php解决了这个问题。然后 php 文件正在执行。

自从这个原始问题及其答案出现以来,情况发生了很大变化。 从 Fedora 32 和 Apache (httpd) 2.4.46 开始,

mod_php 已被弃用,因为 FPM 现在默认与 httpd 一起使用事件模式。 mod_php仅在显式启用或 httpd 时使用切换到预分叉模式

([原文如此]来自/etc/httpd/conf.d/php.conf

换句话说,mod_php不再启用;如果你想在Fedora下使用来自Apache的PHP,安装php-fpm,默认情况下它作为*.php文件的处理程序启用。

显然,PHP 是作为一个软件包安装的,但通过 apache 的模块进行解释:即; mod_php。这是一个猜想,我只是发现它是为了嵌入HTML的方法。