繁体   English   中英

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

[英]Why does phpinfo() in webpage show version 5.6, but php -v from command line shows 7.3?

已阅读以前的答案并了解我必须安装两个版本,但无法找到 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 ),这样它就不会被使用。

我还应该看哪些东西?

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

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

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

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

我找到了一个“部分”的答案。 我在 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(非服务器)上运行良好,但它们在这里不起作用。 我对上述文件进行了一些更改,并验证在转到服务器应用程序,在服务菜单中选择网站,然后单击将开/关按钮切换为关闭,然后重新打开后,服务器会重新启动。 所有使用不同 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 提供这样的一个?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM