![Apache 显示 PHP 代码 - 在 Mac 上升级到 macOS Sierra 后](https://linux22.com/image/1508370/Apache%20%E6%98%BE%E7%A4%BA%20PHP%20%E4%BB%A3%E7%A0%81%20-%20%E5%9C%A8%20Mac%20%E4%B8%8A%E5%8D%87%E7%BA%A7%E5%88%B0%20macOS%20Sierra%20%E5%90%8E.png)
我正在使用刚刚更新到 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.so
主httpd.conf
文件中的该行已取消注释。别忘了重新启动 Apache sudo apachectl restart
。
答案4
您无法使用浏览器文件菜单中的打开文件来打开 .php 文件,您必须在浏览器地址栏中输入 localhost/info.php(或您要打开的任何文件和路径)... 至少对我来说,这有效。希望您能解决这个问题。