ホームページ >php教程 >php手册 >CentOS での PHP7 のコンパイルとインストール、MySQL のサポート、およびいくつかの問題の解決策

CentOS での PHP7 のコンパイルとインストール、MySQL のサポート、およびいくつかの問題の解決策

WBOY
WBOYオリジナル
2016-07-06 13:30:351027ブラウズ

私は最近 php7 を試しましたが、MySQL のコンパイルとサポートでいくつかの問題に遭遇しました。多くの学生が同じ問題に遭遇していると思うので、ここでそのプロセスについて話します。簡単に言うと、PHP7 をコンパイルするには 3 つのステップしかありません: 1. ./buildconf --force 2. ./configure 3. make make install ステップ 1 と 3 は、コンパイルの鍵であり、心配する必要はありません。

私は最近 php7 を試しましたが、MySQL のコンパイルとサポートでいくつかの問題に遭遇しました。多くの学生が同じ問題に遭遇していると思うので、ここでそのプロセスについて話します。簡単に言えば、PHP7 のコンパイルに必要なステップは 3 つだけです:

1. ./buildconf --force

2、./configure

3. 作成&&インストール

ステップ 1 と 3 は心配する必要はありません。設定はコンパイルの鍵であり、いくつかのライブラリに対する PHP のサポートが含まれます。ここでは、MySQL を含む最小限のサポートを使用します。

カール

gd

fpm

mysqlnd

curl と gd を例として使用する理由は、これらのサードパーティ ライブラリを PHP をコンパイルする前にインストールする必要があることを明確にするためです。yum を直接使用してデフォルトの場所にインストールすることも、コンパイルしてインストールすることもできます。 yum をインストールしたら、ライブラリのインストール場所を指定する必要はありません。これらのライブラリのインストールについては、いろいろ検索できます。基本的な設定を見てみましょう

リーリー

PHP-FPM

fpm については、PHP をサポートするためにこれを使用するのがより良い選択であることは言うまでもないと思います。PHP5.3.3 には php-fpm が組み込まれているため、もちろん、--enable- するだけで済みます。

php-fpmパラメータ:

--開始 開始

--強制終了を停止します

--スムーズな終了を終了します

--再起動 再起動

--reload は php の php.ini をスムーズにリロードします

--logrotate ログファイルを再度有効化します

MySQL サポート

これに少し時間を費やしましたが、PHP は mysql 接続をサポートするために mysql ライブラリを使用しなくなり、mysqlnd がそれをサポートできるようになったそうです。 PHP5.x では libmysql も使用できますが、コンパイルには --with-mysql パラメータがありません。これは、configure パラメータを見ることでわかります。 リーリー

ご覧のとおり、PHP は MySQL をサポートするために mysqlnd を使用したいと考えているため、パラメーターは次のように記述できます:

--enable-mysqlnd

--with-mysqli=mysqlnd

--with-pdo-mysql=mysqlnd

mysqlnd は mysql のサポートを必要としないため、最初に mysql をインストールしなくてもコンパイルして渡すことができます。php-fpm を起動して phpinfo を確認すると、php が既に mysql をサポートしていることがわかります (ここでは pdo と mysqli が使用されています)。同じ理由)

いくつかの質問

コンパイルの問題: cc: 内部エラー: 強制終了されました (プログラム cc1)

この問題に遭遇したのは初めてで、Alibaba Cloud サーバーがスワップをオフにしており、メモリが不足していることが判明したため、このエラーを報告しました。 解決策は非常に簡単で、設定時に --disable-fileinfo パラメータを追加するだけです。

PHP は、mysql サービスが見つからないことを報告しました

おっしゃるとおり、phpinfo の pdo_mysql.default_socket 項目を見てください。

mysql.sock はどこですか? mysql.sock の実際の場所を見てみましょう: ps -ef|grep mysql を使用してください:

明らかに同じ場所ではありません。私の正しい場所は/var/lib/mysql/mysql.sockです

したがって、php.ini を変更し、pdo_mysql.default_socket を見つけて実際の場所に変更し、php-fpm を再起動します。残念ながら、php.ini はこの構成になっていますが、変更後は機能しません。 . 、mysql.socket の場所を指定します:

--with-mysql-sock=/var/lib/mysql/mysql.sock

それでも機能しない場合は、/tmp ディレクトリに mysql.sock へのソフト リンクを作成できます。 リーリー

php-fpm を再度再起動します。正常に実行されていると思います。 PHP でサポートされるライブラリがさらに必要な場合は、再度コンパイルして、構成時に必要なサポート (--with-xxx) を追加できます。サードパーティのライブラリの場合は、最初にこれらのライブラリをインストールする必要があります。

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