ホームページ  >  記事  >  バックエンド開発  >  mac OS X には PHP 環境が付属していますが、freetype ソリューションはありません

mac OS X には PHP 環境が付属していますが、freetype ソリューションはありません

WBOY
WBOYオリジナル
2016-07-29 09:03:332500ブラウズ

最近コンピューターを使って小さなものを作成したのですが、thinkPHP フレームワークを使用する必要がありました。TP 検証コードは、APACHE と PHP に付属している freetype ライブラリでサポートされている必要があります。直接設定するだけで使えるのでとても便利ですし、拡張機能も充実していてとても便利ですが、freetypeにはそれがないので面倒です
実は、面倒なことはありません。 Linux サーバー環境であれば、サポートを追加するか、自分でコンパイルすることもできますが、私は自分の環境を使用するので、そうしたくありません。システムには独自の Apache または PHP サポートが必要な他のコンポーネントがあり、それらを変更すると他の問題が発生する可能性があるため、システムを変更しすぎないでください。ほとんどの回答は少し面倒です。インターネットでは PHP の再コンパイルとフリータイプのサポートの追加について説明していましたが、この 2 日間何もすることがなかったので、あれこれいじって完成させました
私のアイデアは、関連するものには PHP を使用することです。元の環境を損なわないように、それらを再ダウンロードしてインストールします。同時に、ファイル /usr/libexec/apache2/libphp5.so をバックアップし、名前を libphp5-OX.so に変更します。 /httpd.conf を追加します:
#LoadModule php5_module libexec/apache2/libphp5-OX.so
これにより、組み込み PHP と新しくコンパイルされた PHP を簡単に切り替えることができます
最初に:
gd:
https://github をダウンロードします。 com/libgd/ libgd/releases
libgd-2.1.1.tar.gz
png と jpeg が必要です。これらは、brew でインストールできるほか、liftoff ライブラリと libvpx ライブラリも必要です
brew install libpng
brew install libjpeg
brew install libtiff
brew install libvpx
Compile GD (brew、png jpeg などによってインストールされる対応するライブラリの場所に注意してください):
./configure --prefix=/usr/local/gd2 --with-zlib --with-png= /usr/local/opt/libpng --with-freetype=/usr/local/opt/freetype --with-jpeg=/usr/local/opt/jpeg/ --with-vpx=/usr/local/opt/ libvpx/ --with-tiff= /usr/local/opt/libtiff/
次に、PHP 公式 Web サイトから PHP のバージョンをダウンロードします。システムのバージョンと異なっていても問題ありません。 MAC システムにはシステム ファイル保護機能 (SIP) があることに注意してください。一部のディレクトリは ROOT ユーザーであってもアクセスできません。これは、APACHE ではなく PHP のみを置き換えたいためです。そのため、PHP がコンパイルして、Apache に必要な libphp5.so を生成するときに、このファイルを /usr /libexec/apache2/ ディレクトリに置く必要があり、このディレクトリは保護されているため、最初にシステム保護をオフにする必要があります。 シャットダウン手順は次のとおりです:
1. MAC を再起動し、ボタンを押します。 command + R キーを押し、MAC アイコンが表示されるまで待ちます。解放します
2. リカバリ モードで起動した後、ツール メニューでターミナルを見つけて開きます。
3. コマンド csrutil disable を使用して閉じ、再起動します。 。
将来再び有効にしたい場合は、csrutil enable; を使用できます。
次に
PHP をコンパイルします
./configure --prefix=/usr/local/php/ --with-config-file-path=/usr/local/php/ --with-apxs2 --enable-sockets --enable -mbstring --with-bz2=shared --with-ic --with-mysql --with-gd=/usr/local/gd2/ --with-pdo-mysql
ここで、対処すべき別の邪悪な依存関係システムに遭遇します。最初のレポート:
'X11/xpm.h' ファイルが見つかりません
このプロンプトに従って、次のように libXpm パッケージをインストールする必要があります:
libXpm-3.5.5.tar.bz2
ただし、このパッケージをインストールすると、プロンプト:
パッケージ 'x11' が見つかりません
パッケージ 'xproto' が見つかりません
再インストール:
libX11-1.5.0.tar.gz
および xproto パッケージ、
X11 をインストールすると、一連の依存パッケージが存在します。ダメだ、遅い インストールが遅い
ここに注意事項があります
パッケージが多すぎるため、これらのパッケージは依存関係をチェックするためにpkg-configを使用するため、pkg-configをインストールする必要があります(これはbrewを使用してインストールすることもできます)
そして、pkg -config は環境変数 PKG_CONFIG_PATH を通じて依存関係をチェックし、対応するパッケージの PC ファイルをチェックします。そのため、私の方法は、これらすべてのパッケージをディレクトリにインストールしてから、環境変数を設定することです:
export PKG_C/local/xproto /lib/pkgconfig:/usr/lib/pkgconfig:/usr/local/lib/pkgconfig
次に、不足しているパッケージを尋ねるメッセージが表示されたら、対応するパッケージに移動し、tar.gz 形式でダウンロードし、
それを解凍します。
インストール パスを統一します :
./configure —prefix=/usr/local/xproto
ヒント: 対応するパッケージのほとんどは
lists.freedesktop.org
および
ftp://ftp.x.org/ を介して渡すことができますpub/X11R7.7 /
この2つの中で見つけました

わざわざ探す必要もないので、インストール中にダウンロードしたパッケージをパッケージ化して、誰でもダウンロードできるようにしました。 アドレスは次のとおりです。 :


http://download.csdn.net/detail /sdomain/9432886

すべてのパッケージがインストールされたら、最後に

libXpm-3.5.5.tar.bz2をインストールします



最後にPHPをコンパイルしてxpmを追加します拡大。

./configure --prefix=/usr/local/php/ --with-config-file-path=/usr/local/php/ --with-apxs2 --enable-sockets --enable-mbstring -- with-bz2=shared --with-ic --with-mysql --with-gd=/usr/local/gd2/ --with-pdo-mysql --with-xpm-dir=/usr/local/xproto


configure には問題ありませんが、作成時に、gd.c ファイルがヘッダー ファイル X11/xpm.h を見つけられないというメッセージが表示されます。これは非常に奇妙です。-with-xpm-path=/usr/ を指定しました。 local/xproto ですが、このパスの include/X11/ の下にファイル xpm.h があります、

--with-xpm-path=/usr/local/xproto/include をこのように変更した後、設定が失敗しました
gd.c のインクルード パスを include/X11/xpm.h に変更することもできませんでした
最後に、変更しました / usr/local/xproto/include 下の X11 フォルダーを PHP ソースコード下の ext/gd/ フォルダーにコピーします。 コンパイルも問題なく、make install も問題ありません。 path 環境変数を $ に変更すると、PATH に /usr/local/xproto/include を追加できる可能性があります。興味がある方は試してみてください。

上記では、mac OS X に付属する PHP 環境を紹介しました。関連するコンテンツを含め、フリータイプのソリューションはありません。PHP チュートリアルに興味のある友人に役立つことを願っています。

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