40

潜在的な n00b の質問について事前にお詫びします。OSX Mountain Lion マシンに PHP の mcrypt 拡張機能をインストールしようとしています。

ターミナルでの次の手順は、PHP インストールを実現するためにこれまで行ってきたことです。

cd /path/to/downloaded/php-5.3.21/ext/mcrypt/
/usr/bin/phpize
./configure
cd /path/to/downloaded/php-5.3.21
./configure --with-config-file-path=/private/etc/php.ini --with-apxs2=/usr/sbin/apxs
make
sudo make install

これはうまく機能しているようで、PHP 5.3.21 を正常にインストールします。私はそれからやった

sudo nano /private/etc/php.ini

そして含まれています

extension=mcrypt.so

Apache の再起動に伴い、phpinfo() は mcrypt 拡張機能がロードされていることを示しません。

次に、php.ini 内で extension_dir を指定しようとしましたが、やはりうまくいきませんでした。

私はやった

locate mcrypt.so
/opt/local/lib/php/extensions/no-debug-non-zts-20090626/mcrypt.so
/usr/local/Cellar/php53-mcrypt/5.3.18/mcrypt.so

そして、両方のディレクトリを extension_dir として試しましたが、うまくいきませんでした。

グーグルを何度も試した後、次のことも試しました

./configure --with-config-file-path=/private/etc/php.ini --with-apxs2=/usr/sbin/apxs --with-mcrypt

これは問題なく動作するように見えますが、「make」すると返されます

ext/mcrypt/mcrypt.o: No such file or directory
ext/mcrypt/mcrypt_filter.o: No such file or directory

繰り返しますが、成功しません。

私は何を間違っていますか?mcrypt.so の物理的なコンパイルが行われていないか、正しくコンパイルされていないようです。

誰でも助けてください?私は何ページにもわたってGoogle検索を行ってきましたが、運が悪かったです!

4

16 に答える 16

77

私はMacでHomebrewを使う傾向があります。すべてのものをインストールして構成します。
http://mxcl.github.com/homebrew/

次に、それをインストールできるはずで、brew install mcrypt php53-mcryptJust Work (tm) になります。

または53など、使用している PHP の任意のバージョンに を置き換えることができます。よくわからない場合は、 を使用してください。php56-mcryptphp70-mcryptbrew search php

また、組み込みの Mac PHP を使用している場合は、それがインストールされていることを覚えておいてください。ターミナルで/usr/bin使用している php を確認でき、パスが返されます。which php

于 2013-01-30T09:07:21.060 に答える
38

またはmcryptを使用せずにphp-をインストールするportbrew

注: これらの手順は、徹底することを目的としているため、長くなっています。プロセスは実際にはかなり簡単です。あなたが楽観主義者なら、mcrypt 拡張機能のビルド セクションまでスキップできますが、私が行ったエラーが表示されautoconflibmcrypt最初にインストールするように指示されている可能性があります。

OSX 10.9の新規インストールでこれを実行しました。私にとってうまくいった解決策は、 ckmの解決策に非常に近いものでした.完全を期すために、彼らの手順と私自身の手順を完全に含めています。私の主な目標 (「持つ」以外) は、システム全体への影響を最小限に抑える方法でインストールを実行することでした。つまり、手動で行うことを意味します (いいえ、いいえ)mcryptportbrew

手動で行うには、最初にいくつかの依存関係が必要です。1 つは PHP モジュールをビルドするためのもので、もう 1 つはmcrypt具体的なものです。これらはautoconflibmcryptで、どちらもすでに持っているかもしれませんが、OSX 10.9 の新規インストールではどちらもありません。

autoconf

Autoconf (より適切な説明がないため) は、まったく異なるわけではありませんが、それでも非常に異なるシステムにコンパイル方法を伝えるために使用されます。たとえば、ファイルシステム階層が異なるにもかかわらず、 OSXで行うのと同じ基本コマンド セットを使用して、Linux でモジュールをビルドできます。完全性のために。これは非常に簡単です:

$ mkdir -p ~/mcrypt/dependencies/autoconf
$ cd ~/mcrypt/dependencies/autoconf
$ curl -OL http://ftpmirror.gnu.org/autoconf/autoconf-latest.tar.gz
$ tar xzf autoconf-latest.tar.gz
$ cd autoconf-*/
$ ./configure --prefix=/usr/local
$ make
$ sudo make install

次に、次を実行してインストールを確認します。

$ which autoconf

返すべきもの/usr/local/bin/autoconf

libmcrypt

libmcrypt次に、拡張機能の根幹を提供するために使用されるが必要になりますmcrypt(拡張機能自体は、このライブラリーへの PHP インターフェースの提供です)。私が使用した方法は、ここで説明した方法に基づいていますが、できる限り単純化しようとしました。

まず、SourceForgelibmcryptから入手できるソースをダウンロードします。

http://sourceforge.net/projects/mcrypt/files/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.bz2/download

実際のダウンロード リンクにたどり着くには、標準の SourceForge フープをジャンプする必要がありますが、取得したら、次のようなものに渡すことができます。

$ mkdir -p ~/mcrypt/dependencies/libmcrypt
$ cd ~/mcrypt/dependencies/libmcrypt
$ curl -L -o libmcrypt.tar.bz2 '<SourceForge direct link URL>'
$ tar xjf libmcrypt.tar.bz2
$ cd libmcrypt-*/
$ ./configure
$ make
$ sudo make install

これが機能していることを確認する唯一の方法は、拡張機能自体の./configure手順を実行することです (以下)。mcrypt

mcrypt 拡張機能のビルド

これが私たちの実際の目標です。うまくいけば、依存地獄への短いスティントは今終わった.

まず、mcrypt拡張機能のソース コードを取得する必要があります。これは、すべての PHP のソース コードに埋め込まれており、最も簡単に利用できます。そのため、必要な PHP ソース コードのバージョンを決定します。

$ php --version # to get your PHP version

運が良ければ、現在のバージョンがメイン ミラーからダウンロードできるようになります。その場合は、次のように入力できます。

$ mkdir -p ~/mcrypt/php
$ cd ~/mcrypt/php
$ curl -L -o php-5.4.17.tar.bz2 http://www.php.net/get/php-5.4.17.tar.bz2/from/a/mirror

残念ながら、私の現在のバージョン (この場合は 5.4.17) は利用できなかったため、http://downloads.php.net/stas/ (これも公式の PHP ダウンロード サイト) にある代替/歴史的なリンクを使用する必要がありまし。これらには、次のようなものを使用できます。

$ mkdir -p ~/mcrypt/php
$ cd ~/mcrypt/php
$ curl -LO http://downloads.php.net/stas/php-5.4.17.tar.bz2

繰り返しますが、現在のバージョンに基づいています。

それを取得したら (および上記のすべての依存関係)、実際にモジュールをビルド/インストールするメイン プロセスに進むことができます。

$ cd ~/mcrypt/php
$ tar xjf php-*.tar.bz2
$ cd php-*/ext/mcrypt
$ phpize
$ ./configure # this is the step which fails without the above dependencies
$ make
$ make test
$ sudo make install

理論的にmcrypt.soは、PHP 拡張機能のディレクトリにあります。次に、それについて PHP に伝える必要があります。

mcrypt 拡張機能の構成

ファイルphp.iniをロードするように指示する必要がありますmcrypt。OSX 10.9 のデフォルトでは、実際にはmcrypt固有の構成情報がありますが、mcrypt指示しない限り実際にはアクティブになりません。

デフォルトでは、php.iniファイルは存在しません。代わりに、ファイル/private/etc/php.ini.defaultにはデフォルトの構成がリストされており、「true」php.iniがまだ存在しない場合は、作成するための適切なテンプレートとして使用できます。

php.ini既に存在するかどうかを判断するには、次を実行します。

$ ls /private/etc/php.ini

結果が存在する場合、それは既に存在するため、次のコマンドをスキップする必要があります。

php.iniファイルを作成するには、次を実行します。

$ sudo cp /private/etc/php.ini.default /private/etc/php.ini

次に、次の行を追加する必要があります。

extension=mcrypt.so

ファイルのどこかに。ファイルで を検索;extension=し、最初に出現する直前に追加することをお勧めします。

これが完了したら、インストールと構成は完了です。以下を実行して、これが機能していることを確認できます。

php -m | grep mcrypt

これは " mcrypt" を出力し、他には何も出力しません。

PHP の使用が Apache の に依存している場合httpdは、Web 上の変更に気付く前にそれを再起動する必要があります。次の方法で行うことができます。

$ sudo apachectl restart

これで完了です。

于 2014-02-15T20:32:52.770 に答える
8

私にとって、ヨセミテで

$ brew install mcrypt php56-mcrypt

コンピューターを再起動

トリックをしました。

于 2014-12-12T12:04:38.563 に答える
5

brew を使用したソリューションは、次の後にのみ機能しました。

nano /private/etc/php.ini

次の行を追加します。

extension="/usr/local/Cellar/php53-mcrypt/5.3.26/mcrypt.so"

警告!正しい PHP バージョンを設定します。

于 2013-09-08T15:19:17.440 に答える
4

オプションがある場合は、自作ですべてをインストールすることをお勧めします。私はしばらくぐるぐる回っていましたが、brew を介して php 5.x をインストールすると、必要なモジュールがうまく機能しました。私はphp 5.4で作業していて、これを使用して最初に始めました:

https://github.com/josegonzalez/homebrew-php

次に、追加のモジュールを次のようにインストールします。

brew install php54-redis
brew install php54-xdebug
brew install php54-mcrypt

...

于 2013-05-23T15:21:32.697 に答える
3

OS X を可能な限りクリーンに保ちたい場合は、vagrant [1] を使用して php 開発環境を定義することもできます。Vagrant は VirtualBox [2] をヘッドレス モード (私の 13 インチ、Mid 2009 MacBook Pro の CPU の約 3%) で使用して、Web サーバーと php などを備えた仮想マシンを実行できます。

vagrant 環境を簡単に作成するには、この優れたツールhttps://puphpet.com/を使用できます。

  1. http://www.vagrantup.com/
  2. https://www.virtualbox.org/
于 2013-07-23T09:27:54.450 に答える
2

自作なしでPHP 5.3用のmcryptモジュールをインストールするシェルスクリプトを作成します。

スクリプトは、必要に応じて php autoconf をインストールし、php バージョンのモジュールをコンパイルします。

リンクはこちら: https://gist.github.com/lucasgameiro/8730619

ありがとう

于 2014-01-31T12:56:41.453 に答える
1

何も機能せず、リソース @ HereおよびHereを使用して最終的に機能するようになりました。OSX Mavericks (10.9) は PHP 5.4.17 または Stable PHP 5.4.22 ソースを使用して mcrypt をコンパイルする必要があることを覚えておいてください。PHPソース5.4.22はこちら

于 2013-11-16T07:15:08.510 に答える
1

醸造ベースのソリューションは私のために働いた

  1. これらのパッケージをインストールします

    $brew install brew install mcrypt php54-mcrypt

  2. デフォルトの php.ini.default を php.ini にコピーします

    $sudo cp /private/etc/php.ini.default /private/etc/php.ini

  3. この行を php.ini ファイル拡張子セクションに追加します - マシンのインストール場所で拡張子パスを確認してください

    extension="/usr/local/Cellar/php54-mcrypt/5.3.26/mcrypt.so"

  4. Apache サーバーを再起動します

    $apache 再起動

于 2014-08-29T07:59:42.247 に答える
1

これは私がしたことです:

$ wget http://sourceforge.net/projects/mcrypt/files/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz/download
$ tar xzvf libmcrypt-2.5.8.tar.gz
$ ./configure
$ make
$ sudo make install

$ brew install autoconf

$ wget file:///Users/rmatikolai/Downloads/php-5.4.24.tar.bz2
$ tar xjvf php-5.4.24.tar.bz2
$ cd php-5.4.24/ext/mcrypt
$ phpize
$ ./configure # this is the step which fails without the above dependencies
$ make
$ make test
$ sudo make install


$ sudo cp /private/etc/php.ini.default /private/etc/php.ini
$ sudo vi /private/etc/php.ini

次に、次の行を追加する必要があります。

extension=mcrypt.so

$ sudo apachectl restart
于 2014-12-29T23:12:11.550 に答える
0

mycrypt.o と mcrypt_filter.o は、php をダウンロードしたディレクトリの ext/.libs にあります。ファイルを ext/mcrypt にコピーしてから、make && make install をもう一度実行してください。

于 2013-09-07T06:49:18.010 に答える
-4

sudo apt-get インストール php5-mcrypt

ln -s /etc/php5/mods-available/mcrypt.ini /etc/php5/fpm/conf.d/mcrypt.ini

サービス php5-fpm 再起動

サービスnginxの再起動

于 2014-10-07T09:28:00.960 に答える