Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么网页中的phpinfo()显示的是5.6版,而命令行中的php-v显示的是7.3版?_Php_Macos_Apache - Fatal编程技术网

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

为什么网页中的phpinfo()显示的是5.6版,而命令行中的php-v显示的是7.3版?,php,macos,apache,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 re

我已经阅读了之前的答案,并理解我必须安装两个版本,但无法找到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
我找到了一个“部分”答案。我在MacMini上运行MacOSX10.12.6作为web服务器。apache配置文件的位置为:

/Library/Server/web/config/apache2/httpd_server_app.conf
因此,所有的/etc/apache2/httpd.conf和其他建议,虽然它们在许多unix甚至OS X(非服务器)上都可以正常工作,但在这里它们不起作用。我在上面的文件中做了一些更改,并验证了在转到服务器应用程序后,在“服务”菜单中选择“网站”,然后单击将“开/关”按钮切换到“关”,然后再返回“开”,服务器将重新启动。使用不同apache2ctl重新启动等的所有尝试均无效

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

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

LoadModule php5_module libexec/apache2/libphp5.so
#LoadModule php7_module libexec/apache2/libphp7.so
无法作为libphp7工作。因此无法定位。我现在正在找它。在会议文件中的某一点上,我发现:

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

AddType应用程序/x-httpd-php.php
AddType应用程序/x-httpd-php-source.phps
DirectoryIndex.html index.php

我是否需要为php7_模块安装一个这样的模块,一旦我找到并在上面使用它?

您需要杀死MacOS Apache,它可能从系统开始。我正在El Capitan上运行OS X Server。我发现我无法使用这些命令中的任何一个杀死Web服务器。有几十个httpd正在运行。我编辑httpd.conf并重新启动计算机,但编辑的内容不会显示出来。服务器版本似乎不同。此命令无效。我怀疑在OSX服务器版本上,apache服务器的控制权在别处。我想知道在哪里!使用“站点”选项卡上的服务器应用程序并将“开关”滑到“关闭”状态确实有效。@JohnWooten您可以尝试编辑apache配置文件,
/etc/apache2/apache2.conf
/etc/apache2/httpd.conf
并添加模块手册
加载模块php7_模块/module模块/module_php.so
,但老实说,我不知道osx。如下所示,这些文件似乎无法控制OSX服务器上的apache或至少php。我试图找到实际的apache服务器和配置在OSX服务器上的位置。