如何在macOS Server中升级PHP版本?

时间:2019-06-09 15:06:21

标签: php macos server

美好的一天,

为了澄清一下,我想问一下macOS Server(苹果公司发布的应用程序)。我指的不是系统的PHP版本。

我到处都是Google,SO,论坛,已经有一段时间了,但是还没有找到解决方案。

无论如何尝试,我都无法升级macOS Server的PHP版本。根本没有任何文档。

我已经从App Store更新了应用程序,已经在Mac上升级了PHP版本,并且更改了PATH以反映新安装的PHP,并且在执行{{1 }},显示我想要的正确版本。

但是,macOS Server似乎完全不受其影响。我试图在所有可能的地方四处查看,但是我没有看到单独安装的PHP for Server,并且在各处都查看了配置文件,但是看不到它在哪里以及使用哪个PHP。

有帮助吗?

编辑:我刚刚意识到这是一个整个应用程序,许多部分都在积极使用PHP,而我自己升级它可能会破坏这些东西,但是,如果有可能,我愿意尝试一下。我的意思是,最糟糕的情况是我删除并重新安装Server,对吗?

1 个答案:

答案 0 :(得分:1)

在macOS上安装php

  

老实说,您听起来似乎比问题中所知道的要了解更多。因此,您可能对此了解很多,但是根据我的经验,我想尽可能地完善,因为这些响应仍然留给将来可能找到它们并找到有用信息的其他人使用。如果我遗漏了任何东西,希望有人能为我指出,这样我就可以学到更多。

回到过去,然后雷神统治了整个世界:

从Mac OS X 10.0.0版开始,

php已成为Mac上的捆绑标准,您可以阅读有关here的信息。 Mac OS X Server(1.0)的第一个版本是Steve Jobs的NeXT Computer的OPENSTEP和1999年发布的Mac OS 8.5.1的混合版本。

Starting with Mac OS X 10.7(狮子)Mac OS X和Mac OS X Server已合并为一个操作系统程序包,而macOS Server是可从App Store获得的附加程序包。这意味着您不必担心要破坏任何重要的东西。

您不能总是得到想要的东西...

此响应中的许多值将取决于您使用Server软件包的用途。如果仅将Web服务器用于开发环境,则可以轻松地将其替换为任何典型LAMP(linux-apache-mysql-php)样式环境的版本。

对于macOS,这意味着升级apache,安装php,如果无法使用macOS随附的MySQL,则安装SQLite。在线提供Here is one of the many很棒的教程。 (无从属关系)它可能会变得复杂...

另一个受欢迎但我没有用过的选择是非营利组织XAMPP。他们致力于简化php开发,Wordpress,Drupal,电子商务和流行的开源应用程序的设置。

当你是陌生人时...

如果您使用服务器软件包附带的一些更神秘的应用程序,则必须分别升级它们。但是,由于您询问的是php及其识别的服务器,所以我假设您是在谈论Web服务器,并且您正在使用类似的东西来查看apache所找到的php版本:

<?php phpinfo(); ?>

您最有可能说的是,命令行php版本显示了正确的版本和设置,但是apache提供的网页版本显示了旧版本。是吗?

版本和文件位置:

我不确定您是否已检查过此内容,但是我要做的第一件事就是确定路径和所使用的版本。这也使我可以快速直接链接到ini文件,这样我就可以更快地断开文件。这是我使用php --versionphp --ini的结果(最后的截图):

$ which php

/usr/local/bin/php

$ php --version

PHP 7.3.6 (cli) (built: May 31 2019 23:38:25) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.6, Copyright (c) 1998-2018 Zend Technologies
    with Xdebug v2.7.0, Copyright (c) 2002-2019, by Derick Rethans
    with Zend OPcache v7.3.6, Copyright (c) 1999-2018, by Zend Technologies

$ php --ini

Configuration File (php.ini) Path: /usr/local/etc/php/7.3
Loaded Configuration File:         /usr/local/etc/php/7.3/php.ini
Scan for additional .ini files in: /usr/local/etc/php/7.3/conf.d
Additional .ini files parsed:      /usr/local/etc/php/7.3/conf.d/ext-opcache.ini

触摸太多:

使用php -i将输出大量信息。它有很多页面……比您想要的更多。如果您要查找详细信息,则可以根据需要使用grep进行搜索:php -i | grep iniphp -i | grep -- '--with'以查找选项。

隐藏在视线内:

您很可能正在检查,测试和升级phpapache的错误安装。 macOS因拥有许多程序的标准版本而臭名昭著,如果升级其中任何一个的“系统”版本,它可能会破坏某些功能。

RubyPython是最常见的问题。我从来没有对php有任何问题,但是对于许多程序(例如coreutils for gnu)有很多解决方法。

自制!

我发现最简单的方法是使用Homebrew安装一个单独的版本,您可以根据需要进行管理和升级,并将其链接到路径的早期位置,因此它始终是找到的第一个版本。

$ brew install php

它会为您做所有事情并保持更新。它还允许php始终使用brew services start php作为服务运行。这样可以减少启动时间并防止出现多个版本问题。如您所料,可以通过brew services list找到所有冲泡服务和状态信息的列表。如果更新任何配置文件或ini文件,则应使用brew services restart php重新启动php(和apache)。如果选择,您仍然可以使用launchctlapachectl

Apache!

关于自制的另一个方便的事情是,您也可以使用它来安装和管理apache2。试试这个:

$ brew install httpd
$ brew services start httpd
$ httpd

非酒精配方:

如果您想弃权而不使用自制软件,则可以从php.net安装所需的任何版本,并在PATH的早期目录中建立链接。修补程序和升级是常规的,所有内容都非常专业,并且记录完整(超过?)。

enter image description here

下载php二进制文件,使用提供的签名进行检查,然后将其链接到您的路径上的某个位置:ln -s /path/to/new/php ~/bin/php或其他不使用/ home / bin的位置。默认情况下,Homebrew将链接放在/usr/local/bin中。

无论选择哪种方法,安装程序后,您肯定都需要调整一些设置。在线上有几篇很棒的文章。 This one是一个由多个部分组成的系列,已针对Mojave更新。如下面的屏幕快照所示,应该可以提供入门的主要信息。

enter image description here