CentOS での PHP7 のコンパイルとインストール、MySQL のサポート、およびいくつかの問題の解決策
私は最近 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 を含む最小限のサポートを使用します。
カールcurl と gd を例として使用する理由は、これらのサードパーティ ライブラリを PHP をコンパイルする前にインストールする必要があることを明確にするためです。yum を直接使用してデフォルトの場所にインストールすることも、コンパイルしてインストールすることもできます。 yum をインストールしたら、ライブラリのインストール場所を指定する必要はありません。これらのライブラリのインストールについては、いろいろ検索できます。基本的な設定を見てみましょうgd
fpm
mysqlnd
リーリー
PHP-FPMfpm については、PHP をサポートするためにこれを使用するのがより良い選択であることは言うまでもないと思います。PHP5.3.3 には php-fpm が組み込まれているため、もちろん、--enable- するだけで済みます。
php-fpmパラメータ:
--開始 開始MySQL サポート--強制終了を停止します
--スムーズな終了を終了します
--再起動 再起動
--reload は php の php.ini をスムーズにリロードします
--logrotate ログファイルを再度有効化します
これに少し時間を費やしましたが、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です
--with-mysql-sock=/var/lib/mysql/mysql.sock
それでも機能しない場合は、/tmp ディレクトリに mysql.sock へのソフト リンクを作成できます。 リーリー
php-fpm を再度再起動します。正常に実行されていると思います。 PHP でサポートされるライブラリがさらに必要な場合は、再度コンパイルして、構成時に必要なサポート (--with-xxx) を追加できます。サードパーティのライブラリの場合は、最初にこれらのライブラリをインストールする必要があります。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











MySQL クエリのパフォーマンスは、検索時間を線形の複雑さから対数の複雑さまで短縮するインデックスを構築することで最適化できます。 PreparedStatement を使用して SQL インジェクションを防止し、クエリのパフォーマンスを向上させます。クエリ結果を制限し、サーバーによって処理されるデータ量を削減します。適切な結合タイプの使用、インデックスの作成、サブクエリの使用の検討など、結合クエリを最適化します。クエリを分析してボトルネックを特定し、キャッシュを使用してデータベースの負荷を軽減し、オーバーヘッドを最小限に抑えます。

PHP で MySQL データベースをバックアップおよび復元するには、次の手順を実行します。 データベースをバックアップします。 mysqldump コマンドを使用して、データベースを SQL ファイルにダンプします。データベースの復元: mysql コマンドを使用して、SQL ファイルからデータベースを復元します。

MySQLテーブルにデータを挿入するにはどうすればよいですか?データベースに接続する: mysqli を使用してデータベースへの接続を確立します。 SQL クエリを準備します。挿入する列と値を指定する INSERT ステートメントを作成します。クエリの実行: query() メソッドを使用して挿入クエリを実行します。成功すると、確認メッセージが出力されます。

MySQL 8.4 (2024 年時点の最新の LTS リリース) で導入された主な変更の 1 つは、「MySQL Native Password」プラグインがデフォルトで有効ではなくなったことです。さらに、MySQL 9.0 ではこのプラグインが完全に削除されています。 この変更は PHP および他のアプリに影響します

PHP で MySQL ストアド プロシージャを使用するには: PDO または MySQLi 拡張機能を使用して、MySQL データベースに接続します。ストアド プロシージャを呼び出すステートメントを準備します。ストアド プロシージャを実行します。結果セットを処理します (ストアド プロシージャが結果を返す場合)。データベース接続を閉じます。

PHP を使用して MySQL テーブルを作成するには、次の手順が必要です。 データベースに接続します。データベースが存在しない場合は作成します。データベースを選択します。テーブルを作成します。クエリを実行します。接続を閉じます。

Oracle データベースと MySQL はどちらもリレーショナル モデルに基づいたデータベースですが、Oracle は互換性、スケーラビリティ、データ型、セキュリティの点で優れており、MySQL は速度と柔軟性に重点を置いており、小規模から中規模のデータ セットに適しています。 ① Oracle は幅広いデータ型を提供し、② 高度なセキュリティ機能を提供し、③ エンタープライズレベルのアプリケーションに適しています。① MySQL は NoSQL データ型をサポートし、② セキュリティ対策が少なく、③ 小規模から中規模のアプリケーションに適しています。

PHP には、MySQL テーブル内のデータを削除する次のメソッドが用意されています。 DELETE ステートメント: テーブルから条件に一致する行を削除するために使用されます。 TRUNCATETABLE ステートメント: 自動インクリメントされる ID を含む、テーブル内のすべてのデータをクリアするために使用されます。実際のケース: HTML フォームと PHP コードを使用して、データベースからユーザーを削除できます。フォームはユーザー ID を送信し、PHP コードは DELETE ステートメントを使用して ID に一致するレコードを users テーブルから削除します。
