9

标题几乎概括了它。我正在运行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
4

5 回答 5

8
  1. yum install php
  2. 重启阿帕奇。
  3. 再试一次。

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

于 2013-02-02T08:38:11.857 回答
7

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

像这样

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

请参阅本教程安装 Apache 和 php

安装 Apache 和 php

于 2013-02-02T08:39:12.730 回答
1

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

于 2013-02-02T08:47:42.320 回答
1

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

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

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

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

于 2020-12-10T17:00:27.817 回答
0

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

于 2013-12-11T02:00:13.357 回答