1

先週、Raspberry Pi B に PHP 7.0.0RC2 をインストールしました。PHP ページは表示できますが、問題は、mysqli を使用してデータベースに接続できないことです (mysql は PHP v7 でサポートされなくなったことを知っています)。

./configureでコマンドを実行しました--with-mysqli=shared。しかし、php -mコマンドを使用してどのモジュールがインストールされているかを確認すると、mysqli が表示されません。

extension=mysqli.sophp.ini ファイルに追加してみました。最初に mysqli.so ファイルが見つからないと不平を言ったので、私の php5 バージョンの mysqli.so を extensions フォルダーにコピーしようとしました。ただし、これで問題は解決せず、次のエラー メッセージが表示されました。

PHP 警告: PHP の起動: 動的ライブラリ '/usr/local/lib/php/extensions/no-debug-non-zts-20141001/mysqli.so' を読み込めません - /usr/local/lib/php/extensions/no -debug-non-zts-20141001/mysqli.so: 未定義のシンボル: 行 0 の不明な zval_used_for_init

Raspberry Pi にインストールした PHP7 で mysqli を動作させる方法について何か提案はありますか?

4

1 に答える 1

1

出力に詳細な情報が表示される場合がありますconfigureが、キャッチするのはかなり難しく、致命的なエラーでない場合は、make.

MySQLi の推奨される (読み取り: まともな) ドライバーは、MySQL ネイティブ ドライバー (mysqlnd) です。

MySQLi を共有でビルドする場合は、mysqlnd を共有してビルドし、それに依存するすべてのもの (PDO MySQL など) もビルドする必要があります。

configure オプションを使用して、ネイティブ ドライバーを静的にビルドする方が簡単です。

--with-mysqli=mysqlnd

これにより、mysqlnd と mysqli の静的ビルドが有効になります。

なんらかの理由で共有を本当にビルドしたい場合は、次のようにまったく同じではない場合でも、非常によく似た構成オプションが必要になります。

--enable-mysqlnd=shared
--with-mysqli=shared,mysqlnd

これにより、mysqlnd と mysqli の共有ビルドが作成され、適切な場所に適切な順序で (後者は前者に依存します) 追加する必要がありextension=mysqlnd.soますextension=mysqli.so

make distcleanビルドを再構成する前に、そうしないと驚くべきことが起こることを忘れないでください ;)

于 2015-09-30T16:19:00.227 に答える