Apache在Mavericks上运行了错误版本的PHP


Apache is running the wrong version of PHP on Mavericks

我正试图将我的PHP版本从5.4更新到5.5,但Apache没有配合。我已经在其他地方搜索过了,似乎解决方案应该在httpd.conf:中添加以下行

LoadModule php5_module    /usr/local/opt/php55/libexec/apache2/libphp5.so

我做到了,但仍然不起作用。从命令行来看,一切似乎都是正确的:

Andres-MacBook-Air:~ fratelli$ which php
/usr/local/opt/php55/bin/php
Andres-MacBook-Air:~ fratelli$ php -v
PHP 5.5.16 (cli) (built: Sep 12 2014 04:34:10) 
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
Andres-MacBook-Air:~ fratelli$ 

正如我所说,我将LoadModule指令添加到位于/private//etc/apache2中的https.conf文件中,然后重新启动apache:

sudo apachectl restart

在我的页面中,我调用phpinfo(),它告诉我我使用的是PHP 5.4.24版本。有人知道怎么解决这个问题吗?

最好。

编辑:这有帮助吗?

Andres-MacBook-Air:apache2 fratelli$ apachectl -M | grep php
[Sat Sep 13 03:11:50 2014] [warn] module php5_module is already loaded, skipping
httpd: Could not reliably determine the server's fully qualified domain name, using Andres-MacBook-Air.local for ServerName
Syntax OK
 php5_module (shared)

编辑:我不知道Apache从哪里加载PHP。我刚刚编辑了我的/private/etc/httpd.conf文件,删除了所有引用PHP的LoadModule指令,它仍然有效(不过是5.4)。我确信这是错误的文件。

编辑:它似乎是错误的文件。/etc/apache2中还有一个。我会试试的。

编辑:现在我很困惑:

Andres-MacBook-Air:apache2 fratelli$ ls -l /private/etc/apache2/httpd.conf
-rwxrwxrwx  1 root  wheel  18196 Sep 13 03:29 /private/etc/apache2/httpd.conf
Andres-MacBook-Air:apache2 fratelli$ ls -l /etc/apache2/httpd.conf
-rwxrwxrwx  1 root  wheel  18196 Sep 13 03:29 /etc/apache2/httpd.conf

编辑其中一个也会更改另一个,但两者似乎都不是符号链接。。

使用此网站。http://php-osx.liip.ch/您可以更新到5.5或5.6。我已经使用单行ssh命令更新了几台Mac。这应该可以修复mac上的一切,让你达到5.5或5.6,现在已经稳定了。

curl -s http://php-osx.liip.ch/install.sh | bash -s 5.6

curl -s http://php-osx.liip.ch/install.sh | bash -s 5.5

我的Apache在这里有一个文件。/etc/apache2/other/+php-osx.conf具有以下路径。

LoadModule php5_module  /usr/local/php5/libphp5.so

在您的命令行

which php

它应该

/usr/local/php5/bin/php

在我的httpd.conf中,libphp5.so实际上被注释掉了,并且没有引用PHP。

#LoadModule php5_module        libexec/apache2/libphp5.so

还要确保您"重启APACHE"以查看发生的任何变化。如果你不这样做,它不会重新加载PHP5.5库,你也看不到任何更改。