为了账号安全,请及时绑定邮箱和手机立即绑定

为什么网页中的 phpinfo() 显示版本 5.6,而命令行中的 php -v 显示 7.3?

为什么网页中的 phpinfo() 显示版本 5.6,而命令行中的 php -v 显示 7.3?

PHP
牧羊人nacy 2022-06-17 16:41:31
已阅读以前的答案并了解我必须安装两个版本,但无法找到 5.6 的位置。我将 /etc/bin/php 更改为指向我使用 brew 安装的版本 7.3。我更新了 /etc/apache2/httpd.conf 以使用 php@7.3。我重新启动服务器以确保它会开始从 httpd.conf 读取 apache。然而,当我从网页运行 phpinfo 时,它从 5.6 开始并且不包括有关服务器管理员的 http.conf 信息,但它说它正在使用 http.conf。出于某种原因, sudo apachectl restart 表示端口已在使用中不起作用。我删除了 /usr/local/php5 链接(将其重命名为 php5.bak ),因此它不会被使用。我还应该看哪些其他东西?
查看完整描述

3 回答

?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

当您使用php -v命令时php-cli,您可以使用不同的版本。此外,如果您安装了多个版本,您可能需要禁用旧版本的 apache 模块。

sudo a2dismod php5 // disable php5.6
sudo a2enmod php7.3 // enable php7.3


查看完整回答
反对 回复 2022-06-17
?
千万里不及你

TA贡献1784条经验 获得超9个赞

可能有许多不同的原因导致它,但我打赌系统安装的 MacOS Apache。尝试从启动中杀死它:

sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist


查看完整回答
反对 回复 2022-06-17
?
冉冉说

TA贡献1877条经验 获得超1个赞

我找到了一个“部分”的答案。我在 mac-mini 上运行 Mac OS X 10.12.6 作为 Web 服务器。apache的配置文件的位置是:


/Library/Server/web/config/apache2/httpd_server_app.conf

因此,所有 /etc/apache2/httpd.conf 和其他建议,虽然它们在许多使用 brew 安装的 unix 甚至 OS X(非服务器)上都可以正常工作,但它们在这里不起作用。我对上述文件进行了一些更改,并验证了在进入服务器应用程序后,在服务菜单中选择网站,然后单击将 ON/OFF 按钮切换为关闭,然后重新打开,服务器重新启动。使用不同的 apache2ctl restart 等的所有尝试都不起作用。


我仍然有些困惑,我输入的服务器管理员没有出现在 phpinfo.php 显示中,但其他一些更改确实出现了。


我的下一个任务和建议是受欢迎的,是如何更改 http_server_app.conf 文件,以便使用命令行中提供的我的 php7 而不是 php5。改变的尝试:


LoadModule php5_module libexec/apache2/libphp5.so

#LoadModule php7_module libexec/apache2/libphp7.so

由于无法找到 libphp7.so,因此无法正常工作。我现在正在寻找它。在会议文件的某一时刻,我发现:


<IfModule php5_module>

    AddType application/x-httpd-php .php

    AddType application/x-httpd-php-source .phps

    <IfModule dir_module>

        DirectoryIndex index.html index.php

    </IfModule>

</IfModule>

一旦我找到它并在上面使用它,我是否需要为 php7_module 提供这样的一个?


查看完整回答
反对 回复 2022-06-17
  • 3 回答
  • 0 关注
  • 255 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信