web-dev-qa-db-ja.com

PHPでmysqlndを有効にする方法は?

PHPをインストールして実行中(バージョン:5.3.17)で、mysqlndに切り替えたい(phpinfoではmysqlndはまったく存在しない)。

設定するには、./configureコマンドを更新する必要があることを読みました。

./configure --with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \

yum install php-mysqlndでインストールしようとすると、エラーが発生します。

---> Package php-mysqlnd.x86_64 0:5.3.17-1.26.amzn1 will be installed
--> Processing Conflict: php-mysql-5.3.17-1.26.amzn1.x86_64 conflicts php-mysqlnd
--> Finished Dependency Resolution
Error: php-mysql conflicts with php-mysqlnd
44
SimonW

./configureコマンドは、ソースコードからのコンパイルプロセスの一部です。

ソースからコンパイルするか、パッケージマネージャー経由でインストールできます。あなたの場合、パッケージマネージャーが望ましいと思います。

パッケージマネージャーからの苦情により、両方を使用することはできませんphp-mysqlおよびphp-mysqlndインストール済み。

だからあなたはできる

yum remove php-mysql

yum install php-mysqlnd

次に、成功を確認します

php -m | grep mysqlnd

または

php -i | grep mysqlnd
51
yum swap php-mysql php-mysqlnd
5
iamarobot

yum install php-mysqlndはCentALTでのみ利用でき、おそらくレミレポジトリがあります。 Webtaticには、優れたphpリポジトリもあります。デフォルトのものではありません(私はCentOSを使用していました)。

3
John61590

私はこれに遅れるかもしれませんが、他の人の助けになるかもしれません。フォーラムの別の場所ですでに述べたように、get_resultのような関数の呼び出しが未定義であると不平を言う場合、php-mysqlndをインストールする必要があります(この質問)。 yum install(centos)を実行すると、php-mysqlとphpmyadminを削除する必要があることが自動的に報告されることに気付きました。 phpmyadminが動作しない可能性があるため、これを受け入れないでください。代わりに、yum Shellを使用します。これは、コマンドを一度に受け取り、変更を適切に処理します。コマンドラインでこれらを実行します。

# yum Shell
> remove  php-mysql
> install php-mysqlnd
> run
> quit

ここで、mariadb(ほとんどの場合)サービスとhttpdサービスの両方を再起動する必要があります。

2
Ajowi

PHP 5.4の時点で、mysqlndライブラリはphp.netコンパイル時のデフォルトですべてPHP MySQL拡張機能です。-参照: dev.mysql .com

Linux 1.8.1のXAMPP (PHP 5.4.7)が付属している場合は、ソースからコンパイルするのが少し簡単になります。

0
000

私があなたを正しく理解しているかどうかわからない.... phpのソース(php-5.x.x.tar.gz)をダウンロードし、ソースを解凍してそのディレクトリに移動するだけです

 bash:/dir/of/your/source # ./configure --with-mysql=... and your other config params

その後でちょうどそれを作る

 bash:/dir/of/your/source # Sudo make && make install
0
donald123