ホームページ >バックエンド開発 >PHPチュートリアル >PHPモジュールを動的にコンパイルして追加する、PHPモジュールをコンパイルする_PHPチュートリアル

PHPモジュールを動的にコンパイルして追加する、PHPモジュールをコンパイルする_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:14:08899ブラウズ

動的コンパイルはphpモジュールを追加し、phpモジュールをコンパイルします

PHPモジュールを動的にコンパイルして追加する、PHPモジュールをコンパイルする_PHPチュートリアル

注: 転載する場合は出典を明記してください: http://www.programfish.com/blog/?p=85

多くの場合、Linux で Web サーバーを構築する場合、PHP パッケージをコンパイルしてインストールする必要があります。コンパイルとインストール中にコンパイルするように指定されていないモジュールを追加する必要がある場合があります。次の状況:
Mysql.so または mysqli.so、mbstring.so zlib.so およびその他のモジュール。

リマインダー:
phpmyadmin をインストールしていて、インストールと設定後にホームページが空白の場合は、php に mysql モジュールと mbstring モジュールがない可能性が非常に高くなります。
また、wordpress プラグインをオンラインでインストールする場合、php 環境に zlib.so モジュールがないため、zlib プラグインが存在しないというメッセージが表示されます。

上記は著者が経験したことです。あなたの問題の解決に役立つことを願っています。


さて、本題に入り、PHP モジュールを動的にコンパイルして追加しましょう:

このブログ投稿では、PHP がインストールされている Linux 環境についてのみ説明していることに注意してください。

モジュールを動的に追加したくないが、PHP 環境を再インストールしたい場合は、次の場所に移動してください:
Linux での PHP 環境のインストール: http://www.cnblogs.com/fly1988happy/archive/2011/12/14/2288096.html

現時点では、phpのコンパイルとインストール時に使用したphpソースコードを保存する必要があります。そうでない場合は、http://cn2.php.net/downloads.php にアクセスして、インストールした PHP バージョンと同じソース コード パッケージをダウンロードできます (ここでのバージョンは同じか、それに近いものである必要があります)。バージョンが異なると一致しない可能性があります)。

また、後でインストール ディレクトリで /bin/phpize ツールを使用する必要があるため、php がどこにインストールされているかを知っておく必要があります。
php ディレクトリがどこにインストールされているかわからない場合は、find コマンドを使用して phpize ファイルの場所を見つけることができます。

PHPモジュールを動的にコンパイルして追加する、PHPモジュールをコンパイルする_PHPチュートリアル

lfly@PHPモジュールを動的にコンパイルして追加する、PHPモジュールをコンパイルする_PHPチュートリアル-oj9e:~> sudo find / -name phpize
ここで、php が /php にインストールされていることがわかります。

それでは、php-5.5.18.tar.gz のソース コード パッケージをダウンロードします。
ダウンロード後、tar -zxvf を使用して解凍します。 (.tar.gz圧縮パッケージのみ)
PHPモジュールを動的にコンパイルして追加する、PHPモジュールをコンパイルする_PHPチュートリアル

lfly@PHPモジュールを動的にコンパイルして追加する、PHPモジュールをコンパイルする_PHPチュートリアル-oj9e:~/temp> tar -zxvf php-5.5.18.tar.gz

解凍後、php-5-5-18フォルダーが得られます
次に、そのディレクトリ内の ext ディレクトリに cd します:
lfly@PHPモジュールを動的にコンパイルして追加する、PHPモジュールをコンパイルする_PHPチュートリアル-oj9e:~/temp> cd php-5.5.18/ext
PHPモジュールを動的にコンパイルして追加する、PHPモジュールをコンパイルする_PHPチュートリアル

ls コマンドを使用してファイルを一覧表示すると、多くのフォルダーが表示されます:

PHPモジュールを動的にコンパイルして追加する、PHPモジュールをコンパイルする_PHPチュートリアル

これらは、コンパイルするモジュールのソース コード ディレクトリです。ここでは、コンパイルしたいのは mysql モジュールであると仮定し、mysql ディレクトリに移動します。他のモジュールをコンパイルしたい場合は、対応するモジュールに移動します。

PHPモジュールを動的にコンパイルして追加する、PHPモジュールをコンパイルする_PHPチュートリアル


lfly@PHPモジュールを動的にコンパイルして追加する、PHPモジュールをコンパイルする_PHPチュートリアル-oj9e:~/temp/php-5.5.18/ext/mysql>/php/bin/phpize
Cd を入力した後、上記の phpize スクリプトを呼び出します。

Phpize スクリプトとは何ですか?
ここで言及してください:
Phpize は偵察環境の役割として理解できます。 phpize ツールは、インストールした PHP の構成に基づいて、対応する構成ファイルを生成します。


このコマンドの実行後、autoconf プログラムがインストールされていないことを示すメッセージが表示される場合があります。その場合は、このコマンドを実行する前にソフトウェアをインストールする必要があります。

ここでは問題ありません:
PHPモジュールを動的にコンパイルして追加する、PHPモジュールをコンパイルする_PHPチュートリアル

Phpize が問題なく実行されたら、./configure –with-php-config=/php/bin/php-config を使用します
ここで、/php/bin/php-config は Php インストール ディレクトリに置き換える必要があります。たとえば、/usr/local/aaa の場合は、/usr/local/aaa/bin/php-config に設定できます

この手順を実行した後にエラーが報告されない場合は、make コマンドを実行します。

PHPモジュールを動的にコンパイルして追加する、PHPモジュールをコンパイルする_PHPチュートリアル

make コマンドの実行時にエラーが報告されない場合は、make install コマンドを実行します。
PHPモジュールを動的にコンパイルして追加する、PHPモジュールをコンパイルする_PHPチュートリアル

一般ユーザーにはコンパイル済みモジュールを PHP インストール ディレクトリにインストールする権限がないため、ここでインストールを行うときにエラーが発生しました。
PHPモジュールを動的にコンパイルして追加する、PHPモジュールをコンパイルする_PHPチュートリアル

現時点では、sudo を使用して make install コマンドを実行することも、root ユーザーに直接切り替えて実行することもできます。実行中にパスワードを入力する必要があります。

インストールを行う インストールが成功したら、次の 2 つのことを行う必要があります:

1 つは、php.ini 設定ファイルに次の文を追加することです:
PHPモジュールを動的にコンパイルして追加する、PHPモジュールをコンパイルする_PHPチュートリアル0

拡張子=mysql.so
ここでは、mysql モジュールがコンパイルされていることを前提としています。その他の場合は、他のモジュール名を使用してください。 例:

PHPモジュールを動的にコンパイルして追加する、PHPモジュールをコンパイルする_PHPチュートリアル1

コンパイルしたモジュールの名前がわからない場合は、php:

のモジュールディレクトリで確認できます。
PHPモジュールを動的にコンパイルして追加する、PHPモジュールをコンパイルする_PHPチュートリアル2

ここで4つのモジュールをコンパイルしてインストールしました。

注: 転載する場合は出典を明記してください: http://www.programfish.com/blog/?p=85

2 番目のことは、Apache を再起動することです。 (Webサービスを提供するためにApacheをインストールする場合)

http://www.bkjia.com/PHPjc/911074.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/911074.html技術記事 php モジュールを動的にコンパイルして追加します。 php モジュールをコンパイルするときの注意: 転載する場合はソースを示してください: http://www.programfish.com/blog/?p=85 Linux で Web サーバーを構築する場合、多くの場合、 、必要です...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。