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

时间:2019-12-14 19:31:24

标签: php macos apache

已阅读先前的答案,并了解我必须安装两个版本,但无法找到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 个答案:

答案 0 :(得分:0)

使用elem命令时,可以使用php -v,它可以是不同版本。 另外,如果您安装了多个版本,则可能要禁用旧版本的apache模块。

php-cli

答案 1 :(得分:0)

可能有很多不同的原因造成这种情况,但是我押注系统随附的MacOS Apache。尝试从启动中杀死它:

$query = "SELECT sum(vacancy) as total FROM user WHERE vacancy != 0";
$result = $con->query($query);
if(mysqli_num_rows($result) > 0){
    $total = mysqli_fetch_assoc($result);
    $total = floatval($totle['total']);
}
<html>
    <p><?php echo number_format($total,0,",",".");?> people who went to vacancy
    </p>
</html>

答案 2 :(得分:0)

我找到了“部分”答案。我在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重新启动等的所有尝试均不起作用。

我仍然感到困惑,因为我没有看到我输入的服务器管理员出现在phpinfo.php屏幕中,但是做了一些其他更改。

我的下一个任务和建议是,如何更改http_server_app.conf文件,以便代替php5,它将使用可从命令行使用的php7。尝试更改:

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吗?

相关问题