注: 転載する場合は出典を明記してください: 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 ファイルの場所を見つけることができます。
lfly@PHPモジュールを動的にコンパイルして追加する、PHPモジュールをコンパイルする_PHPチュートリアル-oj9e:~> sudo find / -name phpize
ここで、php が /php にインストールされていることがわかります。
それでは、php-5.5.18.tar.gz のソース コード パッケージをダウンロードします。
ダウンロード後、tar -zxvf を使用して解凍します。 (.tar.gz圧縮パッケージのみ)
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
ls コマンドを使用してファイルを一覧表示すると、多くのフォルダーが表示されます:
これらは、コンパイルするモジュールのソース コード ディレクトリです。ここでは、コンパイルしたいのは mysql モジュールであると仮定し、mysql ディレクトリに移動します。他のモジュールをコンパイルしたい場合は、対応するモジュールに移動します。
lfly@PHPモジュールを動的にコンパイルして追加する、PHPモジュールをコンパイルする_PHPチュートリアル-oj9e:~/temp/php-5.5.18/ext/mysql>/php/bin/phpize
Cd を入力した後、上記の phpize スクリプトを呼び出します。
Phpize スクリプトとは何ですか?
ここで言及してください:
Phpize は偵察環境の役割として理解できます。 phpize ツールは、インストールした PHP の構成に基づいて、対応する構成ファイルを生成します。
このコマンドの実行後、autoconf プログラムがインストールされていないことを示すメッセージが表示される場合があります。その場合は、このコマンドを実行する前にソフトウェアをインストールする必要があります。
ここでは問題ありません:
Phpize が問題なく実行されたら、./configure –with-php-config=/php/bin/php-config を使用します
ここで、/php/bin/php-config は Php インストール ディレクトリに置き換える必要があります。たとえば、/usr/local/aaa の場合は、/usr/local/aaa/bin/php-config に設定できます
この手順を実行した後にエラーが報告されない場合は、make コマンドを実行します。
make コマンドの実行時にエラーが報告されない場合は、make install コマンドを実行します。
一般ユーザーにはコンパイル済みモジュールを PHP インストール ディレクトリにインストールする権限がないため、ここでインストールを行うときにエラーが発生しました。
現時点では、sudo を使用して make install コマンドを実行することも、root ユーザーに直接切り替えて実行することもできます。実行中にパスワードを入力する必要があります。
インストールを行う インストールが成功したら、次の 2 つのことを行う必要があります:
1 つは、php.ini 設定ファイルに次の文を追加することです:
拡張子=mysql.so
ここでは、mysql モジュールがコンパイルされていることを前提としています。その他の場合は、他のモジュール名を使用してください。
例:
コンパイルしたモジュールの名前がわからない場合は、php:
のモジュールディレクトリで確認できます。
注: 転載する場合は出典を明記してください: http://www.programfish.com/blog/?p=85
2 番目のことは、Apache を再起動することです。 (Webサービスを提供するためにApacheをインストールする場合)