68

PHP 7 RC3+NginxをオンにしてWebサーバーをセットアップしようとしていますUbuntu 14.04(テスト目的のため)。

ubuntu/trusty64Ondřej Surý ( https://launchpad.net/~ondrej/+archive/ubuntu/php-7.0 ) の PHP 7 RC 3を使用して Vagrant に Ubuntu をインストールしました。

インストール方法がわかりませんMySQL PDO(PHP はPDOクラスを認識しますが、MySQL に関連するものは何も認識しませんPDO::MYSQL_ATTR_DIRECT_QUERY)。

libがないように見えます( Ondřejの標準などとのphp7.0-mysql類推による)php5-mysqlndphp7.0-fpm

PDOのセクションphpinfo():

PDO support      enabled
PDO drivers      no value

どうすれば入手できますか?

4

12 に答える 12

5

まず、php.ini で「php_pdo_mysql」と「php_mysqli」の拡張機能が有効になっているかどうか、「extension_dir」のパスが正しいかどうかを確認します。上記の設定のいずれかが必要な場合は、php-fpm を再起動して変更を適用する必要があります。

私の場合 (会社で Windows OS を使用している場合、私は OSX または Linux を本当に好みます)、この値を php.ini に入れることで問題を解決しました。

; ...

extension_dir = "ext"

; ... 

extension=php_mysqli.dll
extension=php_pdo_mysql.dll

; ...

これが役立つことを願っています。

于 2015-12-04T20:30:36.740 に答える
4

egyalは、コメントで適切なアドバイスをした後、コメントを回答として提供しなかったため、ここに投稿しています。私の場合、 module をインストールする必要がありましたphp-mysql。詳細については、質問の下のコメントを参照してください。

于 2015-11-30T05:44:22.797 に答える
1

答えから始めて、コンテキストから始めます。この修正は上に記録されていることに注意してください。

  1. php 7 のソースコードをダウンロードして解凍します。
  2. ターミナルを開きます
  3. ext/pdo_mysql ディレクトリに移動します
  4. コマンドを使用します。

    phpize

    。/構成、設定

    作る

    make install (root として)

  5. php.ini ファイルで extension=mysqli.so を有効にします

これはここからの回答として記録されます (それがあなたにも役立った場合は、賛成してください): https://stackoverflow.com/a/39277373/3912517

コンテキスト: 標準の WordPress Docker に LimeSurvey を追加しようとしています。私を妨げている単一のポイントは、「見つかりません」である「PHP PDOドライバーライブラリ」です

php -i | grep PDO                                                                                  
PHP Warning:  PHP Startup: Unable to load dynamic library 'pdo_odbc' (tried: /usr/local/lib/php/extensions/no-debug-non-zts-20170718/pdo_odbc (/usr/local/lib/php/extensions/no-debug-non-zts-20170718/pdo_odbc: cannot open shared object file: No such file or directory), /usr/local/lib/php/extensions/no-debug-non-zts-20170718/pdo_odbc.so (/usr/local/lib/php/extensions/no-debug-non-zts-20170718/pdo_odbc.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
PHP Warning:  Module 'mysqli' already loaded in Unknown on line 0
PDO
PDO support => enabled
PDO drivers => sqlite
PDO Driver for SQLite 3.x => enabled

Ubuntu 16 (Ubuntu 7.3.0)

apt-get install php7.0-mysql

結果:

Package 'php7.0-mysql' has no installation candidate

私がしなければならないことはこれを実行することだけであるという指示を受けてください:

add-apt-repository -y ppa:ondrej/apache2

しかし、私はこれを得る:

UnicodeDecodeError: 'ascii' codec can't decode byte 0xc5 in position 223: ordinal not in range(128)

そこで、ある種の UTF を強制しようとしました: LC_ALL=C.UTF-8 add-apt-repository -y ppa:ondrej/apache2 を実行すると、有効な OpenPGP データが見つかりませんでした。

これを実行するには、他の指示に従ってください: apt-get update すると、次のようになります: Err:14 http://ppa.launchpad.net/ondrej/apache2/ubuntu cosmic/main amd64 Packages 404 Not Found Err:15 http:// ppa.launchpad.net/ondrej/php/ubuntu cosmic/main amd64 Packages 404 Not Found と-そのためだと思います-その後、次のようになります:

The repository 'http://ppa.launchpad.net/ondrej/apache2/ubuntu cosmic Release' does not have a Release file.

この段階までに、私はまだ apt-get update でこれを取得しています:

Package 'php7.0-mysql' has no installation candidate.

私はphpライブラリを追加しようとし始め、Unicodeの問題が発生し、それを回避しようとしました....あなたはアイデアを得る...モグラたたき。私はあきらめて、それをコンパイルできるかどうかを調べたところ、私が始めた答えを見つけました。

なぜ私がそんなに多くのことを書いたのか不思議に思うかもしれません。誰でもグーグルでこの解決策を見つけることができるように(私を含めて!)。

于 2018-09-28T09:05:20.447 に答える