为什么 Apache 使用我没有的 PHP 版本?

为什么 Apache 使用我没有的 PHP 版本?

最近,我升级到 macOS Sierra 后,遇到了 Apache 无法处理 Mac 上的 PHP 文件的问题。关于此问题的原始帖子在这儿

我“修复”此问题的方法是将以下内容添加到/etc/apache2/httpd.conf

AddType application/x-httpd-php .php

然后我重新启动了 Apache sudo apachectl restart,我的 PHP 脚本就被处理了。

然而,当我运行phpinfo()脚本时它说PHP 版本 5.6.24

当我从命令行运行 PHP 时,它会报告PHP 7.0.10(这正是我所期望和想要的)。

这很奇怪,因为我不知道 PHP 5.6.24 在我的系统上在哪里。如果我运行

which php

它给:

/usr/local/php5/bin/php

但进一步研究后发现,这似乎是指向 PHP 7 的符号链接:

$ cd /usr/local
$ ls -l
lrwxr-xr-x 1 root  wheel 38 14 Sep 11:18 php5 -> /usr/local/php5-7.0.10-20160831-102733

直接从执行 PHP/usr/local/php5-7.0.10-20160831-102733也会报告 PHP 7:

$ pwd
/usr/local/php5-7.0.10-20160831-102733/bin
$ ./php -v
PHP 7.0.10 

如何让 Apache 使用 PHP 7.x,更重要的是,我系统上运行的 PHP 5.x 在哪里?

答案1

php 有多种变体。至少有命令行变体、cgi 变体、fastcgi 变体和 apache 模块。

您需要构建一个 php 7 apache 模块,然后重新配置 apache 以使用它。

http://php.net/manual/en/install.unix.apache2.php

相关内容