簡體   English   中英

如何在 macOS 服務器中升級 PHP 版本?

[英]How do I upgrade PHP version in macOS Server?

再會,

為了澄清起見,我問的是 Apple 發布的應用程序 macOS 服務器。 我不是指系統的 PHP 版本。

我到處找,谷歌,SO,論壇,很長一段時間都沒有找到解決方案。

無論我嘗試什么,我都無法為 macOS 服務器升級我的 PHP 版本。 只是沒有文檔。

我已經從 App Store 更新了應用程序,我已經在 Mac 上升級了我的 PHP 版本,並且我已經更改了PATH以反映新的 PHP 安裝,當我在終端中執行php -v時,它顯示了正確的我要的版本

但是,macOS 服務器似乎完全不受它影響。 我嘗試四處尋找可能的地方,但我沒有看到單獨安裝的 PHP 用於服務器,我查看了配置文件,到處都是,但看不到它使用的位置和使用的 PHP。

有什么幫助嗎?

編輯:我剛剛意識到這是一個完整的應用程序,其中許多部分都積極使用 PHP,我自己升級它可能會破壞這些東西,但如果可能的話,我願意試一試。 我的意思是,最糟糕的情況是我刪除並重新安裝服務器,對嗎?

在 macOS 上安裝 php

老實說,您聽起來好像對此了解得比問題中的要多。 因此,您可能對此了解很多,但根據我的經驗,我希望盡可能完整,因為這些回復留給將來可能找到它們並發現有用信息的其他人。 如果我遺漏了什么,我希望有人會為我指出,這樣我就可以在此過程中學到更多。

當年,雷神一統天下:

自 Mac OS X 版本 10.0.0 起, php已成為 Mac 上的捆綁標准,您可以在此處閱讀。 Mac OS X Server (1.0) 的第一個版本是 Steve Jobs 的 NeXT Computer 的 OPENSTEP 和 1999 年發布的 Mac OS 8.5.1 的混合體。

從 Mac OS X 10.7 (Lion) 開始,Mac OS X 和 Mac OS X Server 已合並為一個操作系統包,而 macOS Server 是可通過 App Store 獲得的附加包。 這意味着您不必非常擔心破壞任何太重要的東西。

你不能總是得到你想要的......

此響應中的許多值將取決於您使用 Server 包的目的。 如果您僅將 Web 服務器用於開發環境,則可以輕松地將其替換為任何版本的典型 LAMP (linux-apache-mysql-php) 風格環境。

對於 macOS,這意味着如果您無法使用與 macOS 捆綁的SQLite ,則升級 apache、安裝php並安裝MySQL 這是在線提供的眾多優秀教程之一。 (無從屬關系)它可能會變得復雜......

另一個流行但我自己沒有使用過的選項是非營利性的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 ini php -i | grep iniphp -i | grep -- '--with' php -i | grep -- '--with'尋找選項。

隱藏在眾目睽睽下:

您很可能正在檢查、測試和升級錯誤的phpapache安裝。 macOS 因擁有許多程序的標准版本而臭名昭著,如果您升級其中任何程序的“系統”版本,它可能會破壞某些內容。

RubyPython是最常見的給我帶來問題的。 我從來沒有遇到過 php 的任何問題,但是有許多解決方法可用於許多程序(例如,用於 gnu 的coreutils )。

家釀!

我發現的最簡單的方法是使用Homebrew安裝一個單獨的版本,您可以根據需要對其進行管理和升級,並將其鏈接到路徑的早期位置,因此它始終是找到的第一個版本。

$ brew install php

它為您做所有事情並保持更新。 它還允許 php 始終作為使用brew services start php的服務運行。 這減少了啟動時間並防止了一些多版本問題。 如您所料,所有 brew 服務和狀態信息的brew services list可以通過brew services list找到。 如果您更新任何配置或 ini 文件,您應該使用brew services restart php重新啟動 php(和 apache)。 如果您launchctl ,您仍然可以使用launchctlapachectl

阿帕奇!

關於自制軟件的另一個方便之處是,您還可以使用它來安裝和管理apache2 嘗試這個:

$ brew install httpd
$ brew services start httpd
$ httpd

無酒精配方:

如果您更喜歡棄權而不使用自制軟件,您可以從php.net安裝您想要的任何版本,並在PATH早期目錄中創建一個鏈接。 補丁和升級是定期的,一切都非常專業並且有很好的(超過?)記錄。

在此處輸入圖片說明

下載一個 php 二進制文件,使用提供的簽名檢查它,並將它鏈接到你路徑上的某個地方: ln -s /path/to/new/php ~/bin/php或其他地方,如果你不使用你的 /home/bin . Homebrew 默認將鏈接放在/usr/local/bin

無論您選擇哪種方法,安裝程序后,您肯定都需要調整一些設置。 網上有很多關於這個的好帖子。 是一個多部分系列,並針對 Mojave 進行了更新。 幫助您入門的主要信息應該可用,如下面的屏幕截圖所示。

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM