9

我尝试将我的 php 从 5.3.13 升级到 5.4.5 我已经手动下载了 php 5.4.5 和 ./configure 的源代码,然后 sudo make 安装它。

在那之后,我跑

php -v

它显示 5.4.5,而我运行

<?php phpinfo(); ?>

它显示 5.3.13。这里有什么问题以及如何解决它。谢谢

4

5 回答 5

7

这是一个有点猜测的答案,因为我没有 Mac,但根据我的 Winodws 经验,只有当你有 2 个 php 可执行文件并且你的 CLI 使用一个而 Apache 使用另一个时,才会发生这种情况。

在您的phpinfo()输出中查找 table row Loaded Configuration File

我在 Windows 上,所以我说C:\server\php\5.4.3\php.ini,但你的当然会有所不同。

如果这不是您期望它使用的路径,那么您需要确保更改 Apachehttpd.conf文件中的路径。

找到 httpd.conf 文件后,找到以下行:PHPIniDir

找到此行后,确保它指向 php.ini 文件的正确目录并重新启动 Apache。

我还要说检查该LoadModule php5_module行是否也指向正确的文件,但如果您之前使用的是 php 5.3,这可能会没问题。

这个答案确实假设您已经在不同的目录中安装了新的 php 版本,但这就是我根据您提供的信息所能想到的。

于 2012-07-22T13:03:18.453 回答
6

我想我只是来自同样的问题。我正在使用 OSX lion 并且在没有 brew 或 port 的情况下安装 PHP 只是使用机器附带的 PHP。

我需要将 mcrypt 模块安装到我正在使用的当前 php 中(当时我没有意识到我的机器上有 2 个版本的 PHP,并且忘记了我是如何安装它的),所以我安装了 homebrew 和之后使用 brew 安装 mcrypt。安装完成后打开浏览器,通过phpinfo()发现PHP版本和我安装mcrypt模块的版本不一样,无法使模块正常工作。

这是它在终端中显示的内容:

Windo-MBP:~ herwindoartono$ php --version
PHP 5.3.23 (cli) (built: May  4 2013 06:43:49)

并从浏览器(本地 apache)打开一个包含phpinfo();显示 PHP 5.3.15 版本的 php 页面。. 我不知道我的机器上的不同版本是如何结束的,所以我浏览并浏览解决方案并找到了一个:

在 httpd.conf 中更改一行应该会更改我正在使用的 php 版本

根据我的经验,这是更改要使用的 PHP 版本的方法:

  • 编辑你的 httpd.conf,输入终端:sudo subl /etc/apache2/httpd.conf注意:subl是 sublime text 2,否则你可以使用nano.
  • 找到行LoadModule php5_module libexec/apache2/libphp5.so,评论它
  • 在该行下方添加:LoadModule php5_module /usr/local/opt/php53/libexec/apache2/libphp5.so,对于您的情况,只需将其更改php53php54.
  • 使用终端重启 apache:sudo apachectl restart
  • 在浏览器中测试 phpinfo(),它出现了我打算使用的版本。

参考:https ://github.com/josegonzalez/homebrew-php/issues/448

我在 PHP 方面没有太多经验,但我希望这可以解决您(或其他所有人)的问题。

于 2013-05-05T07:55:10.500 回答
2

我在 Ubuntu 14.04 中遇到了同样的问题,我做了以下事情:

  1. 从根目录我寻找 php.ini

    find / -name php.ini

我有两个不同的文件,这意味着我安装了两个不同版本的 php,所以

  1. 我删除了所有 php 版本

    sudo apt-get -y purge php*

  2. 然后重新安装所需的 php 版本(在本例中为 5.6)

    sudo apt-get install php5.6

于 2016-06-02T04:13:32.840 回答
1

我有一个类似的情况,它是由不同的 php 安装版本随着时间的推移和 linux 中未更新的搜索路径引起的。

通过调查echo $PATH

输出例如:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

在我的情况下,旧版本 5.5.9 位于最新版本 5.5.22 之前引用的安装路径中。5.5.9 安装在/usr/local/bin/5.5.22 安装在/usr/bin/.

通过将正确的文件夹移动到错误的文件夹之前来适应它,或者更好地卸载旧的 php 版本。

于 2015-03-18T11:09:09.233 回答
0

如果您在ubuntu并且您的网络服务器是NGNIX,并且您还使用php-fpm,您应该更改您的ngnix配置:

根据您的地址在/etc/ngnix/sites-availablenano 中并更改fpm版本:

  location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
        fastcgi_index index.php;

然后重启你的ngnix

$ sudo service nginx restart

now check your php version with phpinfo() and php -v on cli.

于 2020-03-16T16:17:57.157 回答