Apache 显示 PHP 代码 - 在 Mac 上升级到 macOS Sierra 后

Apache 显示 PHP 代码 - 在 Mac 上升级到 macOS Sierra 后

我正在使用刚刚更新到 macOS Sierra 的 iMac。在此之前,它运行的是 El Capitan。

在我的 El Capitan 设置下,我有 Apache、PHP 和 MySQL按照本指南进行配置. 一切顺利。

当我更新到 Sierra 时,它覆盖了大量配置文件。因此我重新阅读了指南并按照在 El Capitan 下所做的配置了所有内容。

http://localhost运行正常,我可以看到 webroot 中的文件。但是,如果我打开 PHP 页面,它只会显示原始 PHP 代码,而不会执行它。

我正在使用以下内容:

阿帕奇

  • 服务器版本:Apache/2.4.23(Unix)
  • 服务器已建:2016年8月8日 16:31:34

PHP

  • PHP 7.0.10 (cli)(构建于:2016 年 8 月 31 日 10:25:51)(NTS)

苹果系统

  • 塞拉 10.12

答案1

Sierra 附带 PHP 5,而不是 PHP 7。无论如何,检查模块是否已加载httpd.conf

LoadModule php5_module libexec/apache2/libphp5.so

如果这不起作用,可能是您没有告诉 Apache 将 *.php 文件识别为 php 可执行文件。为此,找到并编辑httpd.conf并添加以下行(如果尚不存在):

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

并编辑DirectoryIndex参数:

<IfModule dir_module>
    DirectoryIndex index.php index.html
</IfModule>

另一个常见的解决方案是激活短打开标签(如果您的 PHP 代码中有的话)。找到php.ini,搜索字符串short_open_tag = Off并将其更改为short_open_tag = On

重新启动 Apache。

答案2

你的 apache 不再处理 php 文件。有一行

LoadModule **php5_module** libexec/apache2/**libphp5.so**

在你的配置文件中/etc/apache2/httpd.conf

但是你已经安装了PHP7,将其改为:

LoadModule **php7_module** libexec/apache2/**libphp7.so**

或者可能是 modules/mod_php.so 或者任何 php 模块所在的位置。

答案3

确保#LoadModule php5_module libexec/apache2/libphp5.sohttpd.conf文件中的该行已取消注释。别忘了重新启动 Apache sudo apachectl restart

答案4

您无法使用浏览器文件菜单中的打开文件来打开 .php 文件,您必须在浏览器地址栏中输入 localhost/info.php(或您要打开的任何文件和路径)... 至少对我来说,这有效。希望您能解决这个问题。

相关内容