この記事はXiu Yilin Fengのご厚意により後援されており、最初にMud Xingtianxiaに掲載されました。
apache の php サポートは、nginx とは異なり、Apache の mod_php5 モジュールを通じてサポートされています。 nginx は、サードパーティの fastcgi プロセッサを通じて PHP を解析できます。nginx と PHP の統合については、「Mud: php5.6 ソース コードのインストールと php-fpm 構成と nginx の統合」を参照してください。
ソース コードから php をコンパイルしてインストールする場合は、コンパイル中に --with-apxs2=/usr/local/apache2/bin/apxs を指定して、Apache の mod_php5 モジュールを通じて php の解析を行うようにコンパイラーに指示する必要があります。
同時に、PHP インストールの最後のステップで install を実行すると、ダイナミック リンク ライブラリ libphp5.so が Apache2 インストール ディレクトリの modules ディレクトリにコピーされ、LoadModule ステートメントを次のようにする必要があることがわかります。 httpd.conf 設定ファイルに追加された libphp5.so モジュールを動的にロードして、Apache の php サポートを実現します。
php と apache を統合するには、次の手順が必要です:
1. libiconv ライブラリをインストールします
2. PHP ソース コードをインストールします
3. php をサポートするように apache を設定します
4. php をテストする
1. libiconv ライブラリをインストールします
libiconv ライブラリは、ある文字エンコーディングを別の文字エンコーディングに変換する必要があるアプリケーションに iconv コマンドを提供します。たとえば、UTF8 エンコーディングを GB18030 エンコーディングに変換できます。およびその逆。
php を Apache と統合するときは必ず libiconv ライブラリをインストールしてください。そうしないと、make 中にシステムがエラーを報告します。エラーメッセージは次のとおりです:
make: *** [sapi/cli/php] Error 1
/usr/bin/ld:Cannot find -liconv
collect2: ld returns 1 exit status
make: *** [sapi/cli/php] Error 1
次に、libiconv ライブラリの正式なインストールを開始し、最初に次のように libiconv ライブラリをダウンロードします。 wget
http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz libiconv-1.14.tar.gz
libiconv ライブラリをインストールし、最初にインストールのヘルプ情報を確認します。以下のように:
./configure --help
上の図のヘルプを使用すると、libiconv ライブラリのデフォルトのインストール パスが /usr/local であることがわかります。次に、次のように libiconv ライブラリのインストールを開始します:
./configure --prefix=/usr/local
make && make install
リビ 会話後ライブラリがインストールされている場合は、/usr/local/lib ライブラリを /etc/ld.so.conf ファイルに追加し、/sbin/ldconfig を使用して有効にすることをお勧めします。次のように:
echo "/usr/local/lib">>/etc/ld.so.conf
/sbin/ldconfig
このステップが実行されない場合その場合、php のインストール時に make install を実行すると、システムがエラーを報告します。エラーメッセージは次のとおりです:
/root/php-5.6.2/sapi/cli/php: 共有ライブラリのロード中にエラーが発生しました: libiconv.so.2: 共有オブジェクト ファイルを開けません: そのようなファイルまたはディレクトリはありません
2. PHP ソース コードのインストール
php ソース コードのインストールについては、記事「Mud: php5.6 ソース コードのインストールと php-fpm の構成と nginx の統合 」を参照してください。 次のように php コマンドをダウンロードしてコンパイルします。 wget
http://mirrors.sohu.com/php/php-5.6.2.tar.gz ./configure --enable-fpm --enable-mbstring --with-mysql=/usr /local/mysql --with- iconv-dir=/usr/local --with-apxs2=/usr/local/apache2/bin/apxs
関数上記コマンドの --enable-fpm の部分はphpのfastcgi機能をonにする、つまりphp-fpm機能をonにすることです。
--with-mysql=/usr/local/mysql は、PHP が mysql をサポートできるようにするもので、/usr/local/mysql は mysql データベースのインストール パスです。
--enable-mbstring は、mbstring モジュールを有効にすることを意味します。mbstring モジュールの主な機能は、エンコーディングを検出して変換し、マルチバイト操作に対応する文字列関数を提供することです。現在、PHP の内部エンコーディングは ISO-8859-*、EUC-JP、UTF-8 のみをサポートしています。他のエンコーディング言語は PHP プログラム上で正しく表示できないため、mbstring モジュールを有効にする必要があります。
--with-iconv-dir=/usr/local は、php が libiconv ライブラリを保存する場所を指定します。
--with-apxs2=/usr/local/apache2/bin/apxs は、php が Apache を検索する場所を指定します。
コンパイルが完了したら、もう一度作りましょう。作成する際に注意するのは、-liconvパラメータを追加することです。 -liconv パラメータが追加されていない場合、システムは make コンパイル中にエラーを報告します。エラー メッセージは次のとおりです。
phar.php の生成
php-5.3.16/sapi/cli/php: 共有ライブラリのロード中にエラーが発生しました: libiconv.so.2: 共有オブジェクト ファイルを開けません: いいえ
コマンドは次のとおりです:
make ZEND_EXTRA_LIBS='-liconv'
Makefile を変更して、ZEND_EXTRA_LIBS 行に -liconv を追加することもできます。以下のように:
vi Makefile
make install
上の図では、httpd が有効になっていることがはっきりとわかります。 Apache 設定ファイル php サポートを追加し、libphp5.so ファイルを Apache のモジュール ディレクトリにコピーします。
3. php をサポートするように Apache を設定します
php がインストールされたら、php をサポートするように Apache の設定ファイル httpd.conf を変更できます。
httpd.conf ファイルに次の 2 行のコードを追加するだけです:
LoadModule php5_module modules/libphp5.so
AddType application/x-httpd-php .php
その中には LoadModule php5_module modules/libphp5.so 行があることに注意してください。 httpd.conf ファイルを確認すると、この行がすでに存在していることがわかります。これはphpのインストール時に追加されたものであるためです。ここで、AddType application/x-httpd-php .php 行を追加するだけです。
vi /usr/local/apache2/conf/httpd.conf
さらに、Apache のデフォルトのホームページ ファイルを変更し、index.php を追加する必要もあります。内容は以下の通りです:
echo "">/usr/local/apache2/htdocs/index.php
cat /usr/local/apache2/htdocs/index.php
四、测试php
以上の修正完了後、我再起動apache、次のコマンドを使用します:
/etc/init.d/httpdraceful
このコマンドは Apache を正常に再起動できることに注意してください。
次のようにサイトを開きます:
上の図から、Apache がすでに php をサポートしていることがはっきりとわかります。
上記では、泥: php5.6 のソース コードのインストールと Apache の統合について説明しました。内容の側面も含めて、PHP チュートリアルに興味のある友人に役立つことを願っています。