ホームページ  >  記事  >  PHPフレームワーク  >  Mac で Swoole をコンパイルしてインストールするときに .h ファイルが存在しない問題の解決策

Mac で Swoole をコンパイルしてインストールするときに .h ファイルが存在しない問題の解決策

谨言慎行
谨言慎行オリジナル
2020-11-05 14:27:312273ブラウズ

まえがき

1. 実は、インストールプロセスがこんなに大変になるとは思っていませんでした…うーん、何と表現すればいいのか、そんな感じです。 、難しいと言えば難しくありませんが、それは非常に嫌でもあり、Mac のネイティブ環境によって引き起こされるさまざまな問題や、一部のファイルが自動的に読み込まれないことがあります。

2. また、この種の質問に関する情報は非常に少ないため、記録してください。


#ネイティブ環境


Xcode はインストールされていません。
ローカル バージョンには PHP バージョン 7.3 が付属しています
ローカル環境構成ツールは、Mac バージョンの PHP 開発環境である MxSrvs を使用します。ツールの公式 Web サイト: http://www.xsrvs.com/ このツールは小さいですが、必要なものがすべて揃っており、開発には十分です。

主な問題

1. PHP ヘッダー ファイルが見つかりません

2. Openssl ヘッダー ファイルが見つかりません (エラー メッセージは PHP の場合と同様です)

準備作業

公式 Web サイトの要件


ここでもう 1 つの文ですが、公式では AutoConf にあと何バージョン必要かは明記されていませんが、コンパイルとインストールには 2.68 以上が必要です。
#Git からソース コード パッケージをダウンロードします。

ダウンロード アドレス

、私がダウンロードしたものは

#インストール プロセス

ローカルなので、先のCDディレクトリなどには書き込まず、ダウンロードしたパッケージを直接コンソールディレクトリに置き、ツール内でPHP版にコンパイルしたいので、以下のコードを実行しました。ツールで提供されているphpzie

を使用します。

/Applications/MxSrvs/bin/php/bin/phpize./configure \--enable-openssl \--enable-http2  \make && sudo make install
当然のことながら、問題 1 に遭遇しました。Baidu も Bing も、この問題に関連するものは何も見つかりませんでした。その後、グループの友人に尋ねたところ、バージョンが高すぎるためだと言う人もいました。最適なバージョンSwoole のバージョンは 7.2 です。

結局、質問の本質を指摘した答えが私にインスピレーションを与えてくれました。一般的な答えは、macOs 10.10 以降のバージョンから、Mac に付属の PHP バージョンがいくつかのフォルダーをキャンセルしたことを意味します。つまり、付属の PHP

には、コンパイルとインストールに必要なファイル

が含まれていないためです。

理由がわかれば、実際には解決するのは簡単です。結局のところ、独自の環境を使用している開発者はほとんどいないため、ツールで使用される PHP バージョンをシステム環境に動的に追加する方法を検討するだけで済みます。変数。 。以前にシステム環境変数のパスを設定したことがあり、少し印象に残っているので、環境変数の設定方法を考えてみました。 実際には、.bash_profile を通じて環境変数を設定します。


ただし、再起動後は、毎回コマンド ラインに

source ~/.bash_profile
と入力する必要があります。問題は、Mac のメカニズムを使用して .zshrc ファイルを自動的にロードし、ファイルの末尾に
source ~/.bash_profile

を追加することで、毎回手動で入力する必要がないようにすることができます。環境変数を動的に設定する目的を達成するため。

この時点で、最初の問題は解決されました。
2 番目のインストールを続行すると、2 番目の問題が発生します。この問題の解決は比較的迂遠です。
実際、発生する問題は本質的に同じです。これらはすべて、Mac に付属のソフトウェアにこの .h ヘッダー ファイルがないため、これらの問題が発生します。最初の問題は、ツールへのバインドです。変数、論理的に言えば、openssl のこの拡張機能は多くの場所で使用されるため、自分のマシンの環境全体にインストールされます。

openssl をインストールする前に、まず Xcode をインストールする必要があります。この手順はスキップしませんでした。Mac の多くの環境変数は Xcode ファイル ディレクトリにリンクされているようです。本当に気持ち悪いですが、無視できません。インストール後次に、openssl をインストールし、コマンド ラインに

brew install openssl


と入力します。既に存在することが検出された場合は、再インストールして

を実行するように求められます。

brew reinstall openssl@1.1


其中有一句,就是让把这个添加到

If you need to have openssl@1.1 first in your PATH run:  echo 'export PATH="/usr/local/opt/openssl@1.1/bin:$PATH"' >> ~/.zshrc

把这个也添加之前修改过的 .zshrc 文件即可。
接下来就是重头戏了。说白了就是简单的粘贴复制,把 openssl 的文件夹,路径为

/usr/local/Cellar/openssl@1.1/1.1.1h/include/openssl

复制到

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/

目录下即可
至此,第二个问题解决。

然后再运行编译 Swoole ,等待编译完成就可以了

成果


打完收工!

以上がMac で Swoole をコンパイルしてインストールするときに .h ファイルが存在しない問題の解決策の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。