実行すると:rvmsudo passenger-install-nginx-module
私のMacでnginxをインストールすると、ターミナルは次を印刷します。
Checking for OpenSSL development headers...
Found: no
しかし、opensslがインストールされていることは確かです。 which openssl
戻り値 /usr/local/openssl/bin/openssl
および/usr/local/openssl/bin:
は、$ PATHの最初のエントリです。私の質問は:
brew link openssl --force
は次のメッセージを表示します。
警告:リンクの拒否:openssl kegのみのopensslをリンクすると、Homebrewのopensslのヘッダーを使用しているときに、安全ではなく非推奨のシステムOpenSSLにリンクすることになります。代わりに、完全なインクルード/ライブラリパスをコンパイラに渡します。例:-I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib
これを試して:
$ brew doctor (now fix anything that it tells you to fix)
$ brew update
$ brew upgrade
それをインストールしましょう:
$ brew install openssl
そして今、私たちはそれを私たちのパブリックエリアにリンクするので、お気に入りのOpenSSLで裏付けられたライブラリを構築するときに設定する魔法の環境変数を把握する必要はありません:
$ cd /usr/local/include
$ ln -s ../opt/openssl/include/openssl .
全部できた!楽しい
Mac OS X El Capitanを使用している場合、Appleにopensslが含まれなくなりました。Passengerのインストールでも同様の問題があります。
El Capitanより古いバージョンのMac OS Xを使用している場合は、次を使用できます。xcode-select --install
openssl開発ヘッダーもインストールします。
編集:
Brewを更新してopensslをインストールし、opensslをbrewバージョンに強制的にリンクすると問題が解決しました。
$ brew update
$ which openssl
/usr/bin/openssl
$ brew install openssl
$ brew link openssl --force
$ which openssl
/usr/local/bin/openssl