我尝试将我的php从5.3.13升级到5.4.5 我手动下载php 5.4.5和./configure的源代码,然后sudo make install it。
之后,我跑php -v
它显示5.4.5,而我运行
<?php phpinfo(); ?>
显示5.3.13。这里有什么问题以及如何解决它。感谢
答案 0 :(得分:7)
这是一个猜测答案,因为我没有mac,但根据我的Winodws经验,这只会发生,如果你有2个php可执行文件,而你的CLI使用一个而Apache正在使用另一个。< / p>
在phpinfo()
输出中查找表格行Loaded Configuration File
。
我在Windows上,所以我说C:\server\php\5.4.3\php.ini
但当然你的不同。
如果这不是您期望使用的路径,那么您需要确保更改Apache的httpd.conf
文件中的路径。
找到httpd.conf文件后找到以下行:PHPIniDir
当您找到此行时,请确保它指向php.ini文件的正确目录并重新启动Apache。
我还要说检查LoadModule php5_module
行也指向正确的文件,但如果您之前使用的是php 5.3,则可能会没问题。
这个答案确实假设你已经在另一个目录中安装了新的php版本,但这是我能想到的所有信息。
答案 1 :(得分:5)
我想我刚刚遇到同样的问题。我正在使用OSX Lion并且在没有brew或端口的情况下安装PHP只是使用机器附带的PHP。
我需要将mcrypt模块安装到我正在使用的当前php(当时我没有意识到我的机器上有2个版本的PHP,忘了我是如何安装的),所以我安装自制软件,然后使用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页面,显示PHP 5.3.15版本。。我不知道我的机器上的不同版本是如何结束的,所以我浏览并浏览解决方案并找到一个:
更改httpd.conf中的一行应更改我正在使用的php版本
根据我的经验,这是如何更改要使用的PHP版本:
sudo subl /etc/apache2/httpd.conf
注意:subl
用于崇高文字2,否则您可以使用nano
。LoadModule php5_module libexec/apache2/libphp5.so
,发表评论LoadModule php5_module /usr/local/opt/php53/libexec/apache2/libphp5.so
,就您的情况而言,只需将php53
更改为php54
。sudo apachectl restart
参考:https://github.com/josegonzalez/homebrew-php/issues/448
我在PHP方面没有太多经验,但我希望这可以解决您(或其他所有人)的问题。
答案 2 :(得分:2)
我在Ubuntu 14.04中遇到了同样的问题,我做了以下事情:
从根目录我找了php.ini
find / -name php.ini
我有两个不同的文件,这意味着我安装了两个不同版本的php,所以
我删除了所有php版本
sudo apt-get -y purge php*
然后重新安装了所需的php版本(在本例中为5.6)
sudo apt-get install php5.6
答案 3 :(得分: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版本。
答案 4 :(得分:0)
如果您使用的是ubuntu
,并且您的Web服务器是NGNIX
,并且您使用的是php-fpm
,则应该更改ngnix
的配置:
根据您的地址在/etc/ngnix/sites-available
nano中进行更改,并更改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
现在在cli上使用phpinfo()
和php -v
检查您的php版本。