【问题标题】:Can't install phalcon php on Apple M1 Pro无法在 Apple M1 Pro 上安装 phalcon php
【发布时间】:2021-12-15 13:30:17
【问题描述】:

我一直在尝试在我的 xampp PHP 7.3 设置(Macbook Pro 16 M1 Pro 芯片)上安装 Phalcon 3.4。以下我试过了:

  • 尝试使用 macports,但它正在 /opt/local/lib/php73/extensions/no-debug-non-zts-20180731/phalcon.so 中安装文件,所以我试图将此文件复制到xamppfiles/lib/php/extensions 文件夹。但是在 php_error_log 文件中说 x86_64 文件不支持 arm 芯片。错误日志文件:

    [30-Oct-2021 15:34:16 UTC] PHP Warning:  PHP Startup: Unable to load dynamic library '/Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20180731/phalcon.so' (tried: /Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20180731/phalcon.so (dlopen(/Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20180731/phalcon.so, 0x0009): tried: '/Applications/XAMPP/xamppfiles/lib/phalcon.so' (no such file), '/Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20180731/phalcon.so' (mach-o file, but is an incompatible architecture (have 'arm64', need 'x86_64')), '/usr/local/lib/phalcon.so' (no such file), '/usr/lib/phalcon.so' (no such file)), /Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20180731//Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20180731/phalcon.so.so (dlopen(/Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20180731//Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20180731/phalcon.so.so, 0x0009): tried: '/Applica in Unknown on line 0
  • 我尝试克隆 3.4 github 存储库并运行 cd build ./install,但出现了很多错误。以下是错误:https://pastebin.com/MfJYpzaJ

  • Homebrew 只是吐出错误。终端错误:

zaenkhilji@Zaens-MacBook-Pro ~ % brew tap phalcon/extension https://github.com/phalcon/homebrew-tap
brew install phalcon

==> Tapping phalcon/extension
Cloning into '/opt/homebrew/Library/Taps/phalcon/homebrew-extension'...
remote: Enumerating objects: 369, done.
remote: Counting objects: 100% (215/215), done.
remote: Compressing objects: 100% (118/118), done.
remote: Total 369 (delta 140), reused 122 (delta 83), pack-reused 154
Receiving objects: 100% (369/369), 65.43 KiB | 1.26 MiB/s, done.
Resolving deltas: 100% (224/224), done.
Error: Invalid formula: /opt/homebrew/Library/Taps/phalcon/homebrew-extension/Formula/phalcon@4.0.0.rb
phalcon@4.0.0: undefined method `cellar' for #<BottleSpecification:0x000000012705d6b0>
Error: Invalid formula: /opt/homebrew/Library/Taps/phalcon/homebrew-extension/Formula/psr@74.rb
psr@74: undefined method `cellar' for #<BottleSpecification:0x0000000127135b28>
Error: Invalid formula: /opt/homebrew/Library/Taps/phalcon/homebrew-extension/Formula/phalcon@4.0.4.rb
phalcon@4.0.4: undefined method `cellar' for #<BottleSpecification:0x00000001261297e8>
Error: Invalid formula: /opt/homebrew/Library/Taps/phalcon/homebrew-extension/Formula/phalcon@3.4.rb
phalcon@3.4: undefined method `cellar' for #<BottleSpecification:0x0000000126253060>
Error: Invalid formula: /opt/homebrew/Library/Taps/phalcon/homebrew-extension/Formula/phalcon@4.0.5.rb
phalcon@4.0.5: undefined method `cellar' for #<BottleSpecification:0x0000000126291568>
Error: Invalid formula: /opt/homebrew/Library/Taps/phalcon/homebrew-extension/Formula/phalcon@4.1.0.rb
phalcon@4.1.0: undefined method `cellar' for #<BottleSpecification:0x00000001262ca020>
Error: Invalid formula: /opt/homebrew/Library/Taps/phalcon/homebrew-extension/Formula/phalcon@4.0rc3.rb
phalcon@4.0rc3: undefined method `cellar' for #<BottleSpecification:0x000000012724f900>
Error: Invalid formula: /opt/homebrew/Library/Taps/phalcon/homebrew-extension/Formula/phalcon@4.0rc2.rb
phalcon@4.0rc2: undefined method `cellar' for #<BottleSpecification:0x000000012728c6c0>
Error: Invalid formula: /opt/homebrew/Library/Taps/phalcon/homebrew-extension/Formula/phalcon@73_4.0.0.rb
phalcon@73_4.0.0: undefined method `cellar' for #<BottleSpecification:0x00000001272c47a0>
Error: Invalid formula: /opt/homebrew/Library/Taps/phalcon/homebrew-extension/Formula/phalcon@4.0.6.rb
phalcon@4.0.6: undefined method `cellar' for #<BottleSpecification:0x00000001262e7aa8>
Error: Invalid formula: /opt/homebrew/Library/Taps/phalcon/homebrew-extension/Formula/phalcon@4.0.2.rb
phalcon@4.0.2: undefined method `cellar' for #<BottleSpecification:0x00000001262fe208>
Error: Invalid formula: /opt/homebrew/Library/Taps/phalcon/homebrew-extension/Formula/psr@73.rb
psr@73: undefined method `cellar' for #<BottleSpecification:0x00000001263155e8>
Error: Invalid formula: /opt/homebrew/Library/Taps/phalcon/homebrew-extension/Formula/phalcon@4.0.3.rb
phalcon@4.0.3: undefined method `cellar' for #<BottleSpecification:0x000000012632c888>
Error: Cannot tap phalcon/extension: invalid syntax in tap!
Warning: No available formula or cask with the name "phalcon". Did you mean falcon?
==> Searching for similarly named formulae...
This similarly named formula was found:
falcon
To install it, run:
  brew install falcon
==> Searching for a previously deleted formula (in the last month)...
Error: No previously deleted formula found.
==> Searching taps on GitHub...
Error: No formulae found in taps.

剩下的选择是什么?还是不支持基于 arm 的设备?

【问题讨论】:

  • 您是否阅读过错误:“mach-o 文件,但是是不兼容的架构(有 'arm64',需要 'x86_64'”?很有可能,Phalcon 3 尚未移植到 ARM - 基于 Apples。请查看他们的网站以获取此类信息。

标签: php homebrew phalcon macports apple-m1


【解决方案1】:

错误消息(have 'arm64', need 'x86_64') 表示xampp 是x86_64 应用程序,但从macport 安装的php73-phalcon3 是arm64。您可以尝试download x86 versionphp73-phalcon3。解压缩并将phalcon.so 复制到您的xampp 扩展目录。

【讨论】:

    【解决方案2】:

    截至目前,基于 arm64 的芯片不支持 Phalcon 4.* 支持基于 arm64 的芯片。

    我对这个问题的解决方案是部署一个 docker ubuntu 映像并运行该项目,直到我们不升级到更新版本的 Phalcon。这已经在将近 30 小时后运行良好。

    【讨论】:

      【解决方案3】:

      你可能需要走 Docker 路线:https://github.com/MilesChou/docker-phalcon

      我已经在 M1 Pro 上完成了这项工作,并且可以正常工作。

      也许也可以使用https://www.vagrantup.com/,但我还没有在 M1 上尝试过。不过,它在过去运作良好。

      【讨论】:

        猜你喜欢
        • 2022-01-22
        • 2022-01-16
        • 2022-07-02
        • 2022-07-28
        • 2021-04-03
        • 1970-01-01
        • 1970-01-01
        • 2021-04-24
        • 2021-09-03
        相关资源
        最近更新 更多